mysql数据库认证的时候和别的服务器不一样,即使mysqld数据库服务器没有启动,使用mysql这种客户端
程序去连接,也要先输入密码,从而使人有一种错觉,以会服务器已经正常启动了.是不是密码或是主机被数据
库服务器本身没有授权.
碰到只能用localhost(127.0.0.1)作为访问地址的情况,用ip地址访问就会connectio refused
[root@localhost ~]# ps -eaf | grep mysqld
root 27011 25197 0 14:11 pts/1 00:00:00 grep mysqld
mysqld服务器没有启动
使用mysql去连接,报错
[root@localhost ~]# mysql -u root -p -h 172.28.10.145
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '172.28.10.145' (111)
找到/etc/mysql/mysql.conf.d 下面的mysqld.cnf
查看自己绑定的端口port 和bind-address分别是多少,修改修改这两个值。然后重启mysqld服务(kill -9 mysqld进程号也可以)
111的解答为
OS error code 111: Connection refused
一般这种问题有四个原因:
1,服务器是否真的启动
2,端口是多少.如我改成了3910
[root@localhost ~]# netstat -nltp | grep mysqld
tcp 0 0 :::3910 :::* LISTEN 27300/mysqld
3,是否有防火墙阻止,可以通过telnet来测试.
4,在OS是否定义了变量MYSQL_TCP_PORT.
真正的密码或是没有授权,错误应该是这样的
[root@localhost ~]# mysql -u root -p -h 172.28.10.145 --port 3910
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'172.28.10.145' (using password: YES)