mysql無法連線問題有以下可能,
1.查詢mysql.user表的host和user列,是否輸帳的帳號及IP有對應。
如下顯示,使用者rosalie使用非
10.23.25.18 就會造成無法連線登入到DB
mysql> select user,host from mysql.user;
+------------------+----------------+
+------------------+----------------+
| user | host |
+------------------+----------------+
| root | 192.168.1.1 |
| rosalie | 10.23.25.18 |
| root | localhost |
+------------------+----------------+
2.密碼錯誤,一般報1045錯誤,代碼可用(perror 代碼)查詢
[root@rosalie-mysql01 mysql]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查詢其他代碼
[root@rosalie-mysql01 mysql]# perror 1045
MySQL error code 1045 (ER_ACCESS_DENIED_ERROR): Access denied for user '%-.48s'@'%-.64s' (using password: %s)
3.是否設定了禁用dns解析,即設定了skip_name_resolve卻還是用主機名稱連線
※用反解析,簡單的說,就是HOST只能用IP登入,不能用名稱登入
4.是否設定了限制ip訪問(白名單),即設定了bind-address卻還是用其他ip連線
5.確認是否是網路問題,一般直接ping ip的方式確定,這時先解決網路問題
6.檢查磁碟空間是否已經滿了,即磁碟不足
[root@rosalie-mysql01 mysql]# df -h
7. 檢查mysqld程序是否存活
[root@rosalie-mysql01 mysql]# service mysqld status
或
[root@rosalie-mysql01 mysql]# systemctl status mysqld
8.檢查防火牆,是否開通了對應的db port
[root@rosalie-mysql01 mysql]# netstat -antp | grep 3306
tcp 0 0 ::3306 :::* LISTEN 26370/mysqld
9.確認是否連線數打滿了,一般報
MySQL: ERROR 1040: Too many connections
Max_used_connections
伺服器響應的最大連線數 大於
max_connections最大連接數
以下例是沒有超過
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show global status like 'Max_used_connections';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 6 |
+----------------------+-------+
1 row in set (0.00 sec)
沒有留言:
張貼留言