Пытаюсь подключиться к mysql через python, используя mysql-connector, но я получаю эту ошибку:
Traceback (most recent call last):
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/network.py", line 509, in open_connection
self.sock.connect(sockaddr)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./get_stf_file_names.py", line 26, in update_aws_script_details
database="service_portal"
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/connection.py", line 95, in __init__
self.connect(**kwargs)
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/abstracts.py", line 716, in connect
self._open_connection()
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/connection.py", line 206, in _open_connection
self._socket.open_connection()
File "/var/www/html/cloudlab/env/lib/python3.6/site-packages/mysql/connector/network.py", line 512, in open_connection
errno=2003, values=(self.get_address(), _strioerror(err)))
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'localhost:3306' (111 Connection refused)
Я проверил, используется ли mysqld порт 3306, и он:
netstat -lnp | grep 3306
, который дал:
tcp 0 0 my-ip:3306 0.0.0.0:* LISTEN 12003/mysqld
Я также попробовал эту команду, и она отлично работает:
mysql -h localhost -u root -p
(Как я могу подключиться к базе данных, используя это)
Я пытаюсь получить доступ к базе данных следующим образом:
mydb = mysql.connector.connect(host="localhost",user="****",
passwd="****",
database="**********"
)
cursor = mydb.cursor(dictionary=True)
Если я изменил localhost в приведенной выше команде на my-ip, то он работает нормально. Есть что-то, что я делаю не так?