0

我在执行命令时遇到问题

grant select, insert, delete, update on dbname.* to username identified by 'password';

从我的远程连接到我的服务器。它回应

ERROR 1044 (42000): Access denied for user 'root'@'xxx.xxx.x.xx1' to database 'dbname'.

我的服务器地址是xxx.xxx.x.xx1,我的远程机器地址是xxx.xxx.x.xx2.

我使用命令从我的远程机器登录到 MySQL 服务器

sudo mysql -h xxx.xxx.x.xx1 -u root -p

当我select current_user()从远程连接运行命令时,它返回root@'xxx.xxx.x.xx1'. 它不应该返回root@xxx.xxx.x.xx2'吗?

我将所有权限添加到root@'xxx.xxx.x.xx1' 和root@'xxx.xxx.x.xx2'.

当我为远程连接的 ip 地址授予 root 访问权限时,为什么我不能从远程计算机执行命令?select current_user()从远程机器登录时应该返回我的远程机器的 IP 地址或我的服务器的 IP 地址吗?

4

1 回答 1

0

解决了这个问题。

首先,我将 /etc/mysql/my.cnf 中的绑定地址行从 127.0.0.1 更改为我的服务器地址。

其次,我在我的服务器上以 root 身份登录到本地 mysql 并使用以下命令创建了另一个用户:

grant select, insert, update, delete on databasename.* to newuser@my_remote_desktop_address identified by 'password';

然后我可以在我的桌面上以新用户登录 mysql 并执行我的命令。

于 2012-12-27T11:31:50.933 回答