Centos7如何配置MySQL遠程連接


在鏡像市場中,有很多基礎鏡像都對centos做了優化,以提高性能及安全性。因此會限制了商品,數據庫等的訪問。下面介紹如何把限制都打開,配置MySQL遠程訪問連接。
1. 設置主機安全組
阿里雲,騰訊雲等主機都會有安全組。安全組就是允許可以通過規則進行訪問,比如來源ip,端口等。
如果設置安全組,請查看我的另一文章:
阿里雲/騰訊雲/華為雲安全組配置開放端口

2. 打開iptables 3306端口
有些去主機默認打開了iptables 3306端口,有些則沒有。下面是介紹開開端口的方法

如果您的操作系統為CentOS系列:

$ iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

$ service iptables save #保存iptables規則

如下圖:

如果您的操作系統為Ubuntu/Debian系列:

$ iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

$ iptables-save > /etc/iptables.up.rules #保存iptables規則

3. 數據庫授權
這是最后一步,前面的都是對主機進行訪問權限的配置。
這一步才是授權用戶能遠程訪問Mysql。
注意⚠️:遠程連接新建一個帳號(建議新建賬號,不建議直接使用root用戶)。

3.1 新建用戶並授權
添加一個用戶名為db_user,
密碼為db_pass,
授權為% (%表示所有IP能連接)
對db_name數據庫所有權限,
命令如下:

MySQL8.0版本

mysql -uroot -p 回車后會提示輸入root的密碼

$ mysql -uroot -p
MySQL [(none)]> create user db_user@'%' identified by 'db_pass'; # 創建用戶
MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' with grant option; # 授權
MySQL [(none)]> exit; # 退出數據庫控制台,特別注意有分號

其余MySQL版本

mysql -uroot -p 回車后會提示輸入root的密碼

$ mysql -uroot -p
MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' identified by 'db_pass'; # 授權語句,特別注意有分號
MySQL [(none)]> flush privileges;
MySQL [(none)]> exit; # 退出數據庫控制台,特別注意有分號

圖示:

 

 


4. 關閉遠程
由於某種原因,需對所有用戶收回遠程權限。步驟如下:

關閉iptables 3306端口
mysql revoke收回權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM