最近在配置MySQL遠程鏈接的時候發現個人MySQL數據庫採用的是 MariaDB 引擎,與普通的數據庫配置有點不一樣
通過查找資料終於完成了,特此記錄方便之後查詢
MariaDB 與普通的MySQL數據庫的一個不一樣在於它的配置文件不止一個,它將不一樣的數據放入到不一樣的配置文件中,以前的/etc/mysql/my.cnf內容以下:
從文件中的註釋上來看,它主要有這麼幾個配置文件mysql
這也就是爲何咱們在my.cnf作相關設置有的時候不起做用(可能在其餘配置文件中有相同的項,MySQL最終採用的是另一個文件中的設置)。
根據官方的說法, MariaDB爲了提升安全性,默認只監聽127.0.0.1中的3306端口而且禁止了遠程的TCP連接,咱們能夠經過下面兩步來開啓MySQL的遠程服務sql
grep -rn "skip-networking" *
,結果以下:
十分幸運的是這兩項都在同一文件中(我本身的是沒有skip-networking項)
咱們打開文件/etc/mysql/mariadb.conf.d/50-server.cnf,註釋掉bind-address項,以下:
只有這些仍然不夠,咱們只是開啓了MySQL監聽遠程鏈接的選項,接下來須要給對應的MySQL帳戶分配權限,容許使用該帳戶遠程鏈接到MySQL
輸入shell
select User, host from mysql.user;
查看用戶帳號信息:
root帳戶中的host項是localhost表示該帳號只能進行本地登陸,咱們須要修改權限,輸入命令:數據庫
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
修改權限。%表示針對全部IP,password表示將用這個密碼登陸root用戶,若是想只讓某個IP段的主機鏈接,能夠修改成安全
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
注意:此時遠程鏈接的密碼可能與你在本地登陸時的密碼不一樣了,主要看你在IDENTIFIED BY後面給了什麼密碼
具體的請參考GRANT命令
最後別忘了服務器
FLUSH PRIVILEGES;
保存更改。再看看用戶信息:
這個時候發現相比以前多了一項,它的host項是%,這個時候說明配置成功了,咱們能夠用該帳號進行遠程訪問了
輸入測試
service mysql restart ```重啓遠程服務器,測試一下: ![這裏寫圖片描述](http://img.blog.csdn.net/20171219200737267?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGFudWFnZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 若是這些都作完了,仍是不能鏈接,能夠看一下端口是否是被防火牆攔截了 參考地址:[官方文檔](https://mariadb.com/kb/zh-cn/configuring-mariadb-for-remote-client-access/)