从远程主机登录到mysql服务器

从远程主机登录到mysql服务器,mysql,Mysql,我在执行命令时遇到问题 授权选择、插入、删除、更新 在dbname上* 输入由“密码”标识的用户名 从我的远程连接到我的服务器。它的反应是 错误1044(42000):拒绝用户'root'@'xxx.xxx.x.xx1'访问数据库'dbname' 我的服务器地址是xxx.xxx.x.xx1,我的远程机器地址是xxx.xxx.x.xx2 我使用以下命令从远程机器登录到MySQL服务器 sudomysql-hxxx.xxx.x.xx1-uroot-p 当我从远程连接运行命令select curren

我在执行命令时遇到问题

授权选择、插入、删除、更新
在dbname上*
输入由“密码”标识的用户名

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

错误1044(42000):拒绝用户'root'@'xxx.xxx.x.xx1'访问数据库'dbname'

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

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

sudomysql-hxxx.xxx.x.xx1-uroot-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\u user()
从远程计算机登录时是否应该返回我的远程计算机的ip地址或我的服务器的ip地址

解决了这个问题

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

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

授予数据库名称上的选择、插入、更新、删除。*以newuser@my_remote_desktop_address由“密码”标识


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

它应该返回远程机器的地址。您是否可能有一个代理正在拦截连接并通过隧道?作为警告,您确实不应该远程使用您的
root
用户帐户。您正在以明文形式传递根用户密码。@Barmar:我不相信我正在通过代理。您在使用SSL吗?检查root的
my.cnf
文件中的
sslxxx
选项。请参阅以了解另一种情况,其中服务器报告的连接来自其自己的IP而不是客户端。我检查了my.cnf文件,ssl XXX选项被注释掉。此外,我还执行了
mysql>show变量,比如“%ssl%”
结果显示
已禁用openssl
已禁用ssl