centos8 mariadb 允許遠程訪問


centos8,先后裝了mysql-server又卸載了,裝了mariadb-server又卸載了。

最后又裝了mariadb-server,看了下版本,10.3.28

但是始終只能本機登錄,無法遠程登錄。

常用的那些方法都懂,都檢查了,木有問題。

但是,就是無法遠程登錄。

(本段落發個牢騷)有個現象挺煩人的:不少人,碰到問題時,就知道想辦法把問題給弄沒了,而不是真正的找到原因,

從根上解決問題。比如,這個不能遠程的問題,不少人看到是selinux阻止了mysql的端口,就直接把selinux給關掉了。問題

是沒了,但就沒想到為什么要有selinux,就不考慮到安全問題嘛。而在一個外文論壇上,看到了個回復,才是比較正確的方式:

用semanage 命令添加一個規則,允許mysql的端口。

 

我碰到的問題,開始和反復安裝,卸載不干凈有關系。最后一次安裝后,/etc下沒有my.cnf文件,只有my.cnf.d這個目錄

修改了目錄里的mariadb-server.cnf,先加了個bind-address=0.0.0.0,但是貌似沒起作用。

執行netstat -pan | grep 3306 顯示只監聽了本機地址。

經過n次嘗試后,還是在/etc下建了個my.cnf文件,里面只加了兩行:

   [mysqld]

  bind-address=0.0.0.0

然后重啟了mariadb服務,顯示監聽的地址沒問題了,但是還是無法遠程訪問。

因為之前用過ufw這個工具,比較簡單,就裝上了ufw:

ufw allow 3306  #執行這個命令添加例外

ufw status #查看結果,顯示已經允許3306端口了

但是。。。。。。。。。。還是無法遠程連接,客戶端報錯到時很明顯,直接無法連接,而不是需要密碼(密碼不對)

但是通過ufw取消之前添加的80端口,和啟用80端口,試了幾次,都起作用啊,為啥呢。。。

無意中又試了下firewall-cmd ,

firwall-cmd --list-all #結果顯示,允許的端口有80,但是沒有3306,這就奇怪了。。。。。

:::前段時間安裝80端口的相關應用時,還沒安裝ufw,都是通過firewall-cmd命令或iptalbes命令添加的例外

於是,通過firewall-cmd --add-port=3306/tcp --permanent 執行了下

再看firewall-cmd --list-all的結果,有3306了。再用遠程客戶端連接,一下就成功了。。。。

 

現在的問題是:ufw控制的結果為啥和firewall-cmd 控制的結果不一致呢。。。

解決問題期間,還碰到了個問題,更改mysql監聽端口為其它端口(3306以外的),啟動mysql時就直接報錯(permission denied)

后查明原因,通過semanage添加端口允許后,就可以了。

記得之前再ubuntu-server上安裝mariadb,配置文件是50開頭的配置文件,和現在這個版本的配置文件/路徑完全不一樣。

哎,這些配置真頭疼,變過來變過去的。


免責聲明!

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



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