Не удается подключиться к серверу MySQL на «localhost: 3306», хотя mysqld работает на порту 3306 - PullRequest
1 голос
/ 22 апреля 2019

Пытаюсь подключиться к 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, то он работает нормально. Есть что-то, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Localhost это ip 127.0.0.1.
Ваш экземпляр mysql прослушивает именно этот ip или внешний?

0 голосов
/ 05 мая 2019

Даже при установке я столкнулся с той же ошибкой. Так что, если вы уже установили ее, сначала удалите ее и удалите папку C: \ ProgramData \ MySQL. После этого скачайте файл и установите его.

Примечание: при установке измените номер порта на 3307 или 3308 и установите его, как обычно, следуя видео на YouTube. Единственным изменением должен быть номер порта 3306⚠️ (показывает, что порт уже используется) на 3307 или 3308 или любой другой. остальное. везде, где появляется change, измените каталог или номер порта.

Наконец, при запуске новой базы данных через mysqlworkbench измените порт на 3307 или 3308, как вы делали при установке.

, если соединение уже существует, как корневой пользователь, щелкните правой кнопкой мыши и нажмите, измените соединение, измените порт на 3307 и нажмите тестовое соединение. Это будет работать. Если вы столкнулись с какой-либо ошибкой, пожалуйста, ответьте

...