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)