遠端電腦開啟 mysql 伺服器:
#/etc/init.d/mysql.server start
本機電腦串連遠程 mysql伺服器:
./mysql -h "192.168.1.244" -u root -p
發生錯誤:
ERROR 1130 (HY000): Host '192.168.1.100' is not allowed to connect to this MySQL server
原因分析:
因為mysql伺服器出於安全考慮,預設只允許本地登入資料庫伺服器。
解決辦法
1、在控制台執行 mysql -u root -p mysql,系統提示輸入資料庫root使用者的密碼,輸入完成後即進入mysql控制台,這個命令的第一個mysql是執行命令,第二個mysql是系統資料名稱,不一樣的。
2、在mysql控制台執行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3、在mysql控制台執行命令中的 'root'@'%' 可以這樣理解: root是使用者名稱,%是主機名稱或IP地址,這裡的%代表任意主機或IP地址,你也可替換成任意其它使用者名稱或指定唯一的IP地址;'MyPassword'是給授權使用者指定的登入資料庫的密碼;另外需要說明一點的是我這裡的都是授權所有許可權,可以指定部分許可權,
4、不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下使用者表裡的內容
到此還是在用戶端還是串連不上
此時檢查下防火牆是否開啟:
/etc/init.d/iptables status
會得到一系列資訊,說明防火牆開著。則關閉:
/etc/init.d/iptables stop
另外直接在/etc/sysconfig/iptables中增加一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
永久關閉:
chkconfig --level 35 iptables off
記住防火牆一定要開啟你指定的遠程連接埠哦,如果是3306就要把它加入到防火牆,如
#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
然後儲存:
#/etc/rc.d/init.d/iptables save
查看開啟的連接埠:
# /etc/init.d/iptables status