MariaDB不允许主机连接或拒绝用户访问

时间:2018-06-19 16:23:00

标签: mysql linux apache mariadb

我有一个Laravel项目可以在本地计算机上正常运行,但是无法连接到另一台Linux服务器上的数据库。

我得到的错误是:

SQLSTATE[HY000] [1045] Access denied for user 'cpanel1_thewatcher'@'localhost' (using password: YES)

这些是我正在使用的设置:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbnamehere
DB_USERNAME=cpanel1_thewatcher
DB_PASSWORD=passwordhere

我已检查确保cpanel1_thewatcher在此数据库上具有ALL PRIVILEGES,并且密码正确。

这是在VPS上,我具有root访问权限,并且具有两个专用于它的IP。主IP我们将称为xxx.xxx.xx.165,第二个IP为xxx.xxx.xx.166。如果我更改上述设置以将DB_HOST设置为xxx.xxx.xx.166,则会收到其他错误:

SQLSTATE[HY000] [1130] Host 'xxx.xxx.xx.166' is not allowed to connect to this MariaDB server 

如果我将DB_HOST设置为xxx.xxx.xx.165,则会出现另一个错误:

SQLSTATE[HY000] [1045] Access denied for user 'cpanel1_thewatcher'@'server1.domain.com'

如果将DB_HOST设置为domain.com(服务器上的主域),则会收到与DB_HOST = xxx.xxx.xx.166相同的错误。

我检查了服务器上的mysql.user表,发现以下内容:

+-------------------+----------------------+
| User              | Host                 |
+-------------------+----------------------+
| root              | 127.0.0.1            |
| cpanel1            | xxx.xxx.xx.165       |
| cpanel1_thewatcher | xxx.xxx.xx.165       |
| root              | ::1                  |
| cpanel1            | localhost            |
| cpanel1_thewatcher | localhost            |
| nagios            | localhost            |
| root              | localhost            |
| cpanel1            | server1.domain.com |
| cpanel1_thewatcher | server1.domain.com |
| root              | server1.domain.com |
+-------------------+----------------------+
  • 其中cpanel1是服务器上唯一的cPanel帐户的用户名。

我尝试在上表中创建一个条目,其中用户为cpanel1_thewatcher,主机为%,但没有任何效果。我还尝试将DB_USERNAME设置为thewatcher,但错误消息中没有任何变化。

我已经看到了关于我列出的第二条错误消息的一些问题,但是根据那里的一些答案的建议,我一直无法在服务器上的任何位置找到MariaDB配置文件。

GRANT ALL PRIVILEGES ON dbnamehere.* TO 'cpanel1_thewatcher'@'localhost';会得到

Query OK, 0 rows affected (0.00 sec)

谁能告诉我该怎么做,我对这里的2个IP和3个不同的错误消息感到困惑,不知道还要尝试什么。我想消除一切麻烦,然后再求助于托管公司并等待一周的时间来解决问题。

1 个答案:

答案 0 :(得分:1)

您需要按照以下步骤连接到远程数据库:

  

在数据库服务器中,在mariadb控制台中运行以下命令:

CREATE USER 'cpanel1_thewatcher'@'xxx.xxx.xx.166';
  

其次:

GRANT ALL PRIVILEGES ON dbnamehere.* TO 'cpanel1_thewatcher'@'xxx.xxx.xx.166';
FLUSH PRIVILEGES;
  

xxx.xxx.xx.166是您要连接的计算机的ip(您的laravel项目所在的地方)