问题定义

数据库 mysql 远程连接时,出现下面的问题:

这里主要是使用 django 进行 python manage.py makemigrations

RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)")

此时是 /etc/mysql/my.cnf 文件夹中配置出问题了,登录mysql后, 使用下面的命令:

SHOW VARIABLES LIKE 'port';

发现端口号为 0

并不是默认的3306

为查询原因 使用下面的 命令 show variables like 'skip_networking';  可看出来 skip-networking 信息为 ON, 而 skip-networking为ON时,数据库无法进行 mysql 远程连接。造成此问题的原因是,在 /etc/mysql/my.cnf  或者 /etc/mysql/mysql.conf.d/mysqld.cnf 中配置了 skip-grant-tables(即默认mysql可以无密码登录,此时是默认开启了 skip-networking)

show variables like 'skip_networking';

 

解决方法

将 上述 cnf 文件中得  skip-grant-tables 注释即可 或者 skip-networking=OFF(如果显式设计skip-networking=ON的话)

此时再对mysql相关变量进行查阅

show variables like 'skip_networking';

SHOW VARIABLES WHERE Variable_name = 'port';

此时 mysql 即可通过 3306 端口访问。

更多推荐