為 MariaDB 配置遠端訪問許可權

2021-10-06 17:53:30 字數 1933 閱讀 8974

最近在配置mysql遠端連線的時候發現我的mysql資料庫採用的是 mariadb 引擎,與普通的資料庫配置有點不同

經過查詢資料終於完成了,特此記錄方便以後查詢

mariadb 在/etc/mysql/my.cnf內容如下:

實際阿里源的mariadb目錄裡沒有/mysql/這一級目錄

1. /etc/mysql/mariadb.cnf 預設配置檔案,

2. /etc/mysql/conf.d/*.cnf 設定全域性項的檔案

3. 「/etc/mysql/mariadb.conf.d/*.cnf」 設定與mariadb相關的資訊

4. 「~/.my.cnf」 設定該賬戶對應的資訊

這也就是為什麼我們在my.cnf做相關設定有的時候不起作用(可能在其他配置檔案中有相同的項,mysql最終採用的是另外乙個檔案中的設定)。

根據官方的說法, mariadb為了提高安全性,預設只監聽127.0.0.1中的3306埠並且禁止了遠端的tcp鏈結,我們可以通過下面兩步來開啟mysql的遠端服務

1. 注釋掉skip-networking選項來開啟遠端訪問.

2. 注釋bind-address項,該項表示執行哪些ip位址的機器連線,允許所有遠端的機器連線

但是配置檔案這麼多,這兩選項究竟在哪呢?這個時候使用grep在/etc/mysql/目錄中的所有檔案中遞迴查詢,看哪個檔案中含有這個字串

我們輸入:

grep -rn "skip-networking" *
,結果如下:

十分幸運的是這兩項都在同一檔案中(我自己的是沒有skip-networking項)

我們開啟檔案/etc/mysql/mariadb.conf.d/50-server.cnf,注釋掉bind-address項,如下:

只有這些仍然不夠,我們只是開啟了mysql監聽遠端連線的選項,接下來需要給對應的mysql賬戶分配許可權,允許使用該賬戶遠端連線到mysql

輸入

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項是%,這個時候說明配置成功了,我們可以用該賬號進行遠端訪問了

輸入shell

service mysql restart

重啟遠端伺服器,測試一下: 

mariadb配置允許遠端訪問方式

mariadb配置允許遠端訪 首先配置允許訪問的使用者,採用授權的方式給使用者許可權 1grantallprivilegeson to root identifiedby 123456 withgrantoption 說明 root是登陸資料庫的使用者,123456是登陸資料庫的密碼,就是意味著任何...

MariaDB遠端訪問設定

mariadb是mysql的乙個分支,這是mysql的創始人在mysql被oracle收購後fork出的乙個版本,這個版本國內用的比較少,最近自己使用到這個但是在建立遠端連線的過程中遇到乙個很奇怪的問題就是按基本的mysql的方式 skip grant tables繞過預設登陸,在資料庫修改了roo...

MariaDB 設定遠端訪問

首先,第一次登陸 mysql uroot p建立乙個資料庫,例如為了安裝wordpress我先創乙個庫 create database wordpress然後我想要建立乙個新的使用者叫fan,然後密碼是123456,並授權訪問wordpress庫 當然root也一樣 grant all on wor...