我有一个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个不同的错误消息感到困惑,不知道还要尝试什么。我想消除一切麻烦,然后再求助于托管公司并等待一周的时间来解决问题。
答案 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
项目所在的地方)