OneinStack如何配置MySQL遠端連線並授權

152910000發表於2020-04-05

為了安全考慮,OneinStack僅允許雲主機本機(localhost)連線資料庫,如果需要遠端連線資料庫,需要如下操作(缺一不可):

1. 雲主機安全組埠開放3306埠
參考文件:《雲主機安全組埠開放教程》

2. 開啟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. 資料庫授權
注意⚠️:遠端連線新建一個帳號(帳號名不能為root)。
如:新增一個使用者名稱為db_user,密碼為db_pass,授權為% (%表示所有IP能連線)對db_name資料庫所有許可權,命令如下:

1)MySQL8.0版本

# 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; #退出資料庫控制檯,特別注意有分號

2)其餘MySQL版本

# 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; #退出資料庫控制檯,特別注意有分號

如下圖:
在這裡插入圖片描述

相關文章