http://blog.sina.com.cn/s/blog_a338027c0101esbs.html
http://niutuku.com/tech/Mysql/237638.shtml
http://www.jb51.net/LINUXjishu/454409.html
********************************************
本機可以登陸了。但是其他機器的客戶端登陸報錯。
ERROR 1130 (00000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQ
L server
首先查看了iptables的設置,添加開放了3306端口
iptables -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart
還是其他機器不能訪問,估計是MYSQL權限問題。
在本機登陸
mysql -h localhost -u root -pkaishi
show databases;
use mysql;
select Host, User, Password from user;
+-----------------------+------+-------------------------------------------+
| Host | User | Password |
+-----------------------+------+-------------------------------------------+
| localhost | root | *18F54215F48E644FC4E0F05EC2D39F88D7244B1A |
| localhost.localdomain | root | |
| localhost.localdomain | | |
| localhost | | |
+-----------------------+------+-------------------------------------------+
可以看到如上結果,只有localhost才設置了訪問的權限
進入mysql,創建一個新用戶user:
格式:grant 權限 on 數據庫名.表名 用戶@登錄主機 identified by "用戶密碼"; 查看結果,執行:
use mysql;
select host,user,password from user;
可以看到在user表中已有剛才創建的user用戶。host字段表示登錄的主機,其值可以用IP,也可用主機名,將host字段的值改為%就表示在任何客戶端機器上能以user用戶登錄到mysql服務器,建議在開發時設為%。
update user set host = '%' where user = 'sillycat';
flush privileges;
修改了權限后需要執行以上語句生效
********************************
vi /etc/sysconfig/iptables
在后面添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
發現還是不行
最終發現記錄要添加在
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT 這一條前面 再次重啟 OK
****************************************
1、問題及異常
ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@75d634ea -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
2、查找原因
費勁周知,確定是MySQL權限的問題
3、解決過程
1》 mysql -uroot -proot mydbName
2》 grant all privileges on *.* to wangs@‘%’ identified by ‘123456’;
3》 flush privileges;
4》 exit;
5》 /etc/init.d/mysql restart
4、命令的說明
進入 mysql ,用戶為 root,密碼為 root,數據庫為 mydbName,-u 意為用戶,-p 意為密碼,
增加用戶 wangs,所有權限,數據庫為 *,后面的 .* 不可少,% 代表對所有遠程的 IP 地址,如果要限定 IP 地址的話,單獨寫上 IP 地址,
密碼是 123456,注意引號 ‘ 不可少,用來表示是字符串。
以上就是Linux系統下無法訪問mysql的解決辦法,用戶在遇到同樣故障時可根據問題的異常狀況來找出原因,然后再對症下葯的解決問題。