暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql workbench 登陆mysql时出错及相应的解决方法

原创 quantumdb 2022-05-11
1327

 

 根据错误的类型,可按如下步骤解决:


1. 指定主机和端口号,或者在另一台Mysql服务器上,

bin/mysql -uroot -p123456 -h210.45.123.199 -port 3306

能否登陆?若不能,返回的error code是什么。例如:


ERROR 2061  

解决方法:

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

FLUSH PRIVILEGES;


2.  对于error2003 错误,使用perror定位详细信息



3. 对于os error code 110,连接超时问题,

select user, host from mysql.user;  检查host的范围

update user set host='%' where user ='root';

flush privileges;

 

4. 可能网络连接问,远程ping 210.45.123.199 ,能否ping通?


5. 可能由于my.cnf里配置了skip_networking只允许本地socket连接。

知识说明:

(1) skip_networking使MySQL只能通过本机Socket连接,放弃对TCP/IP的监听,致使本地java程序(Connector/J等只能通过TCP/IP来连接)不能连接MySQL。

(2) MySQL本地连接,如果不指 --protocol=tcp, 连接默认是socket方式连接的。MySQL socket连接是根据sokect文件来的,会忽略--port参数。如果是一机多实例,则需要用-S(或者--socket=name )来指定连接哪个实例。

 

6. 可能my.cnf里配置了 bind_address=127.0.0.1(也可以是其他ip)。

[mysqld]

bind_address=127.0.0.1

知识说明:这种情况可以TCP/IP连接

通过查看了my.cnf文件,以上两个都是没设置的,排除掉这两种情况。

 

6. 可能my.cnf里配置了  skip_name_resolve。

[mysqld]

skip_name_resolve

知识说明:这个参数加上后,不支持主机名的连接方式,不做DNS解析。

这个情况肯定不可能,因为上面用的是ip,不是主机名。

 

7. 排查用户和密码问题

用户和密码的错误类似

ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)

 

8. 排查--port问题,有可能 MySQL port不是默认3306。 远程连接时,没有指定--port,用的是默认值3306, 而服务器上没有对3306进行监听。

show global variables like 'port';

 

9. 检查防火墙配置,确定3306端口已经开放。

 

firewall-cmd --query-port=3306/tcp

若没有,则需要开启端口,

firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

firewall-cmd --query-port=3306/tcp


按照如上选项,可以解决大多数连接不上的问题。

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论