MySQL 远程连接 - 用户“用户名”@“本地主机”的访问被拒绝(使用密码:是)

bht*_*oan 6 mysql

我正在设置到 MySQL 服务器的远程连接,但无论我尝试什么,我都收到来自远程服务器的拒绝访问错误。

我通过以下方式添加了用户:

CREATE USER 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY '***';
Run Code Online (Sandbox Code Playgroud)

然后我给了权限:

GRANT ALL PRIVILEGES ON databasename.* to username@REMOTE_IP_ADDRESS;
Run Code Online (Sandbox Code Playgroud)

我在 MySQL 服务器上的用户表显示(除其他外):

+---------------+--------------------+
| user          | host               |
+---------------+--------------------+
| username      | REMOTE_IP_ADDRESS  |
+---------------+--------------------+
Run Code Online (Sandbox Code Playgroud)

如果我为用户显示赠款,我会得到:

+------------------------------------------------------------------------------------+
| Grants for username@REMOTE_IP_ADDRESS
+------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY PASSWORD '***'
| GRANT ALL PRIVILEGES ON `databasename`.* TO 'username'@'REMOTE_IP_ADDRESS'
+------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

在远程服务器上,我然后使用:

mysql -u username -p DB_SERVER_IP
Run Code Online (Sandbox Code Playgroud)

并获取错误消息:

ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

我已经完成了“刷新权限”,但仍然无法连接 - 我注意到错误是 username@localhost 并且我没有为 username@localhost 设置任何权限,但我以前从未这样做过。我在同一台服务器上还有其他一些远程帐户,但它们都没有 @localhost,因为它们只在本地连接。

我错过了什么?我是不是忘记做某事了,或者我还能检查什么?

Den*_*ker 6

错误消息表明您根本没有连接到远程 MySQL,而是连接到 localhost。确保您使用选项连接-h到远程服务器。

mysql -u username -h DB_SERVER_IP