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开头的配置文件,和现在这个版本的配置文件/路径完全不一样。

哎,这些配置真头疼,变过来变过去的。

posted @ 2021-06-10 11:00  靛蓝代码  阅读(509)  评论(0编辑  收藏  举报