Я пытаюсь разрешить подключения с помощью mysql.connector с определенного компьютера к MariaDB сервер в локальной сети.
В идеале я хотел бы создать учетную запись, ограниченную одним IP и БД.
Для простоты я попробовал следующий подход с использованием подстановочных знаков:
CREATE USER 'foo'@'%' IDENTIFIED BY 'foobar';
GRANT ALL PRIVILEGES ON *.* TO 'foo'@'%' WITH GRANT OPTION;
SELECT user,host FROM mysql.user WHERE user='foo';
+--------+-----------+
| user | host |
+--------+-----------+
| foo | % |
+--------+-----------+
Используя этот базовый тестовый скрипт Python:
import mysql.connector
class DBConnect:
def __init__(self):
config={
'user':'foo',
'password':'foobar',
'host':'192.168.x.xxx',
'port':3306,
'database':'foo',
'raise_on_warnings':True
}
self.__db=self.__connect(config)
def __connect(self,config):
try:
return mysql.connector.connect(**config)
except mysql.connector.Error as err:
print(str(err))
return False
db=DBConnect()
Я получаю следующую ошибку:
1130: Host '192.168.x.xxx' is not allowed to connect to this MariaDB server
Я читал о изменение адреса привязки и следовал различным руководствам по настройке, например, в Документация MySQL для добавления новых пользователей, но я все еще не могу установить соединение.
Адрес привязки можно найти в 50-server.cnf
файл. Он установлен на 127.0.0.1
но если изменить, например, на 0.0.0.0
перезапуск сервера не выполняется:
systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start MariaDB 10.1.37 database server
skip-networking
нет ни в одном из файлов конфигурации
С адресом привязки, установленным на 127.0.0.1
Бег netstat -anp | grep 3306
возвращает:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1790/mysqld
tcp 0 0 192.168.x.xxx:3306 0.0.0.0:* LISTEN 19490/mysqld
Это наводит меня на мысль, что сервер базы данных действительно прослушивает соединения в локальной сети?
Любая помощь высоко ценится!
Остановка обоих mysqld
процессы позволят 50-server.cnf
файл, который нужно изменить.
После этого процесс mysql можно успешно перезапустить. Удаленные подключения теперь будут приниматься.
Кредит MichaelHampton