Mysql默認root用戶只能本地訪問,不能遠程鏈接管理mysql數據庫,Linux如何開啓mysql遠程鏈接?設置步驟以下:
一、GRANT命令建立遠程鏈接mysql受權用戶itlogger
mysql -u root -p
mysql>GRANT ALL PRIVILEGES ON *.* TO itlogger@localhost IDENTIFIED BY ‘www.itlogger.com’ WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO itlogger@」%」 IDENTIFIED BY ‘www.itlogger.com’ WITH GRANT OPTION;html
第一句增長itlogger用戶受權經過本地機(localhost)訪問,密碼「www.itlogger.com」。第二句則是授與itlogger用戶從任何其它主機發起的訪問(通配符%)。
二、設置防火牆容許3306端口
vi /etc/sysconfig/IPtables
添加-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
(注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited以前,不然可能致使規則不生效)
重啓防火牆service iptables restart
三、附:Mysql沒法遠程鏈接的常見問題mysql
1)查看Mysql的端口是否正確,經過netstat -ntlp查看端口占用狀況,通常狀況下端口是3306。linux
2)報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ’192.168.51.112′ (111)
查看/etc/my.cnf中,skip-networking 是否已被注掉,須要注掉。
3)報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ’192.168.51.112′ (113)
查看是否iptables沒有容許mysql鏈接,經過:service iptables stop臨時關閉測試是否能夠正常遠程訪問,若是能夠,按上面方面設置iptable容許3306端口
4)遠程訪問mysql速度很慢的解決方法
修改/etc/my.cnf或my.ini
[mysqld]下添加
skip-name-resolve
skip-grant-tablessql
**********************************************************************************************************************數據庫
mysql數據庫遠程訪問設置方法安全
一、修改localhost
更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改爲"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;服務器
二、指定受權
使用myuser/mypassword從任何主機鏈接到mysql服務器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;tcp
使用myuser/mypassword從ip爲192.168.225.166的主機鏈接到mysql服務器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 工具
三、泛受權
mysql -h localhost -u root
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //賦予任何主機上以root身份訪問數據的權限
mysql>FLUSH PRIVILEGES;測試
解決Mysql沒法遠程鏈接的問題
一、Mysql的端口是否正確
經過netstat -ntlp查看端口占用狀況,通常狀況下端口是3306。在用工具鏈接MySQl是要用到端口。例如My Admin\My Query Browser\MySQl Front等。
二、檢查用戶權限是否正確
mysql庫的user表裏有兩條記錄:host分別爲localhost和%(爲了安全,%能夠換成你須要外部鏈接的IP)。
三、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉
須要注掉
報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)
sudo gedit /etc/mysql/my.cnf
#skip-external-locking
#bind-address = 127.0.0.1
skip-name-resolve
四、查看iptables是否停掉,沒關的狀況下,沒法鏈接
經過:service iptables stop臨時關閉。
報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)
設置好之後須要重啓:sudo service mysql restart