Я установил докер mysql/mysql-server:5.7
и создал контейнер со следующей командой на моем Ubuntu 18.04
:
docker run -t -i -v /etc/localtime:/etc/localtime:ro -h 172.17.0.50 -p 50001:3306 --name=testmysql_dock -d mysql/mysql-server:5.7
Я создал нового пользователя с помощью следующей команды:
CREATE USER 'connector'@'localhost' IDENTIFIED BY 'connector';
Предоставляя ему следующие привилегии:
GRANT SELECT,INSERT,UPDATE,CREATE,DROP ON `db_%`.* TO 'connector'@'localhost';
При подключении к базе данных mysql через mysql-connector-python
я использовал следующую команду:
conn = mysql.connector.connect(port=50001,user='connector',password='connector')
Но я получаю следующую ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 94, in __init__
self.connect(**kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/abstracts.py", line 722, in connect
self._open_connection()
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 208, in _open_connection
self._do_handshake()
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 100, in _do_handshake
raise errors.get_exception(packet)
mysql.connector.errors.DatabaseError: 1130: Host '172.17.0.1' is not allowed to connect to this MySQL server
Я не хочу создавать пользователя с хостом как "%" по соображениям безопасности.
Есть ли способ привязать статический IP-адрес к докеру или наоборот?this?
Я могу успешно подключиться к базе данных, если создаю пользователя с запросом: CREATE USER 'connector'@'%' IDENTIFIED BY 'connector';