MariaDB 拒绝远程连接

MariaDB 拒绝远程连接

我已经看过很多教程,回答过很多问题,但仍然无法让它发挥作用。

我使用了以下很好的例子:MariaDB 拒绝远程连接 但仍然没有连接...不过谢谢删除感谢所有的步骤和这个完美的模板!XD

我在 CentOS 7 上安装了 MariaDB,所以不像其他大多数系统那样是 Ubuntu。然后设置两个用户,其中一个用于本地主机使用,另一个用于 phpMyAdmin,该用户可以通过 phpMyAdmin 和 SSH @ localhost 登录。然后我添加了另一个用户作为我的连接服务器的登录名。

用户添加如下:

CREATE USER 'clust3r1ogin'@'%' IDENTIFIED BY '';  And GRANT all permissions. 

本地连接可以正常工作吗?

不,我无法以用户身份通过​​ ssh 连接服务器:

[root@zeus ~]# mysql -u clust3r1ogin -p
Enter password:
ERROR 1045 (28000): Access denied for user 'clust3r1ogin'@'localhost' (using password: YES)

其他本地主机用户工作正常......

您是否已验证用户已被正确添加?

我想是这样:

MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
+--------------+-----------+
| User         | Host      |
+--------------+-----------+
| clust3r1ogin | %         |
| root         | 127.0.0.1 |
| root         | ::1       |
+--------------+-----------+
3 rows in set (0.00 sec)

您解除防火墙的封锁了吗?

是的,否则我会得到另一个错误?但我确实运行了:firewall-cmd --zone=public --add-port=3306/tcp --permanent

我确实对其进行了一些修改,使其只允许特定的 IP 地址连接到该端口。

您是否检查过 my.cnf 文件的设置是否正确?

my.cnf 中的错误设置(/etc/my.cnf)可能会导致其拒绝连接。这些是 skip-networking 和 bind-address。我的文件如下所示:

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

您检查过其他配置文件吗?

是的。他们也没有冒犯的台词。

telnet 能工作吗?

是的。

[root@titan ~]# telnet zeus.xxx.xxx 3306
Trying xxx.xxx.xxx.xxx...
Connected to zeus.mairel.com.
Escape character is '^]'.
Y
5.5.5-10.1.22-MariaDBAYm9rS)q?�QQ%`98N_q<tVmysql_native_passwordConnection closed by foreign host.

服务器使用什么接口?

似乎仅限于本地:

[root@zeus ~]# netstat -ntlup | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      1198/mysqld

您记得重新启动吗?是的。我在所有尝试之间重新开始使用它:

service mariadb restart

我不明白到底出了什么问题。我敢打赌这是一些配置问题,但目前还没有找到解决办法……

作为删除建议我添加

[mysqld]
bind-address = ::

提交my.cnf但没有运气...

当我使用我的其他本地主机登录进行远程访问时,将HOST参数更改为%Wildcard 后仍然出现相同的错误:

Unable to connect to the MySQL host “zeus”. Connection failed with error: Access denied for user 'local_user'@'titan' (using password: YES)

答案1

问题如下。用户是使用该SSL Required选项创建的。关闭该选项可解决所有连接问题!

答案2

为了测试目的,我需要设置远程 MySQL。

我正在使用 ubuntu,我必须改变

bind-address = 0.0.0.0

代替

bind-address = 127.0.0.1

我的在/etc/mysql/mariadb.conf.d/50-server.conf文件中。

我确实通过以下方式找到了它:

$ cd /etc/mysql
$ grep bind-address *
$ grep bind-address */*
$ grep bind-address */*/*

按照这个方法查找。它可能在,也可能不在/etc/mysql。也请查看顶层目录下面。

另外搜索grepskip-network,如果找到,请将其注释掉或删除。如果您必须添加bind-address,则很可能它有

skip-networking 

配置文件中的行。再次使用grep来找到它。

然后,为了检查,登录到另一台机器并运行命令

$ mysql -u user-name -h server-ip-address -p

看看它是否允许您通过这种方式连接。

答案3

禁用 selinux,解决所有连接问题

相关内容