您好,登錄后才能下訂單哦!
說明:當別的機子(IP )通過客戶端的方式在沒有授權的情況下是無法連接 MySQL 數據庫的,如果需要遠程連接 Linux 系統上的 MySQL 時,必須為其 IP 和 具體用戶 進行 授權 。一般 root 用戶不會提供給開發者。如:使用 Windows 上的 SQLyog 圖形化管理工具連接 Linux 上的 MySQL 數據庫,必須先對其進行授權。
1、在虛擬機中使用 root 用戶登錄 mysql 數據庫
mysql -u root -p
說明:root 用戶密碼一般設置為 root
2、使用 mysql 命令為 root 用戶授權 mysql 遠程連接服務
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
說明:此命令是為密碼為 root 、IP(%)任意的 root 用戶授權。(%:模糊查詢,所有 IP 都可以,,可指定其他主機 IP;BY 后的 'root' 為密碼)
3、將配置寫入 mysql 授權表中
mysql> flush privileges;
修改mysql庫的user表,將host項,從localhost改為%。%這里表示的是允許任意host訪問,如果只允許某一個ip訪問,則可改為相應的ip,比如可以將localhost改為192.168.1.123,這表示只允許局域網的192.168.1.123這個ip遠程訪問mysql。
mysql>use mysql; mysql>update user set host = '%' where user ='root'; mysql>select host,user from user; mysql> flush privileges;
補充:防火墻開放3306端口
1、打開防火墻配置文件
vi /etc/sysconfig/iptables
2、增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3、重啟防火墻
service iptables restart
注意:增加的開放3306端口的語句一定要在icmp-host-prohibited之前
附:個人配置
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i eth0 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -p icmp -j ACCEPT -A FORWARD -i lo -j ACCEPT -A FORWARD -i eth0 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。