1. 程式人生 > 資料庫 >Linux中 MySQL 授權遠端連線的方法步驟

Linux中 MySQL 授權遠端連線的方法步驟

說明:當別的機子(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

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對我們的支援。