即使mysqld在端口3306上运行,也无法连接到“ localhost:3306”上的MySQL服务器

时间:2019-04-22 06:31:45

标签: mysql mysql-connector mysql-connector-python

尝试使用mysql-connector通过python连接到mysql,但出现此错误:

 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 个答案:

答案 0 :(得分:1)

Localhost是ip 127.0.0.1。
您的mysql实例是在该IP上还是在一个外部IP上监听的?

答案 1 :(得分:0)

即使在安装过程中也遇到了相同的错误。因此,如果您已经安装了它,请先将其卸载并删除文件夹C:\ ProgramData \ MySQL。 完成后,下载文件并安装。

注意:安装时,将端口号更改为3307或3308,并通过跟随一些youtube视频正常安装。唯一的更改应该是将端口号3306⚠️(表明该端口已在使用中)更改为3307或3308或任何其他名称其他。 ⚠️出现的任何地方,请更改目录或端口号。

最后,通过mysqlworkbench启动新数据库时,就像安装时所做的那样,将端口更改为3307或3308。

如果连接已经以root身份存在,请右键单击并按编辑连接并将端口更改为3307并按测试连接。它将起作用。 如果您遇到任何错误,请回复