服務(wù)開啟
使用 safe_mysqld 啟動:sudo safe_mysqld &
服務(wù)關(guān)閉
mysqladmin shutdown
開啟遠(yuǎn)程連接
1. 創(chuàng)建開啟 MySQL 的遠(yuǎn)程登陸帳號
首先 需要有允許遠(yuǎn)程登錄的賬號矛双,找到mysql數(shù)據(jù)庫的user表。在user表中新建一條數(shù)據(jù)蟆豫,設(shè)置User(username)和Host(開放訪問MySQL的IP:例如123.118.17.201)以及登錄密碼议忽。這樣就設(shè)置了允許訪問的用戶名和IP地址(若想所有IP都可以訪問,則可將Host設(shè)置為‘%’十减,但是這樣很危險栈幸,一般不建議)愤估。
通過grant命令創(chuàng)建
若想admin賬戶使用admin_password從任何主機(jī)連接到mysql服務(wù)器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
若想僅允許用戶admin從ip為235.97.20.51 的主機(jī)連接到mysql服務(wù)器,并使用admin_password作為密碼
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'235.97.20.51' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
通過insert + update語句創(chuàng)建
刷新權(quán)限
修改完user表后執(zhí)行 flush privileges
刷新權(quán)限速址。
2. 配置文件開啟遠(yuǎn)程訪問
mysql中的配置文件可能會限制遠(yuǎn)程訪問玩焰,可以通過ss命令查看mysql的連接端口情況:
使用 ss -tlnp 命令查看網(wǎng)絡(luò)接口開啟狀態(tài)
若如上圖所示,或者沒有開啟3306端口芍锚。則mysql僅允許服務(wù)器本地訪問昔园。
打開 MySQL 配置文件 my.cnf(/etc/mysql/my.cnf)
找到
bind-address = 127.0.0.1
或者
skip-networking
直接注釋掉,然后重啟mysql并炮。
skip-networking : 開啟 skip-networking 選項可以徹底關(guān)閉MySQL的TCP/IP連接方式默刚。
bind-address = 127.0.0.1 : 若bind-address=127.0.0.1則表示mysql實例只能被本機(jī)連接,若bind-address=0.0.0.0或者不設(shè)置逃魄,則mysql可以被遠(yuǎn)程訪問
注意:mysql的啟動配置文件可能在/etc/mysql/mysql.conf.d/mysqld.cnf中荤西,請更改那里的bind參數(shù)
iptables防火墻設(shè)置
通過iptables可以更細(xì)粒度地實現(xiàn)控制哪些可以訪問,哪些不可以訪問
阻止外部訪問mysql:
iptables -A INPUT -p tcp --dport 3306 -j DROP
允許某個ip(替換xxx.xxx.xxx.xxx)訪問伍俘,但是拒絕其他ip的訪問
iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
注意:需要在
DROP
前添加那個ACCEPT
命令
參考文章
https://blog.csdn.net/qq_16885135/article/details/53096451
https://www.a2hosting.com/kb/developer-corner/mysql/restricting-mysql-port-access