Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql命令行登录更改我的主机_Mysql - Fatal编程技术网

Mysql命令行登录更改我的主机

Mysql命令行登录更改我的主机,mysql,Mysql,我在尝试使用此连接到位于192.168.1.152的mysql数据库服务器时遇到问题 In our DNS server; mysql.domain.local = 192.168.1.152 kyle.domain.local = 192.168.1.153 Doing this command from the 192.168.1.153 system mysql -h 192.168.1.152 -D mydb -u dbuser -p****** mysql -h mysql.doma

我在尝试使用此连接到位于192.168.1.152的mysql数据库服务器时遇到问题

In our DNS server;
mysql.domain.local = 192.168.1.152
kyle.domain.local = 192.168.1.153

Doing this command from the 192.168.1.153 system
mysql -h 192.168.1.152 -D mydb -u dbuser -p******
mysql -h mysql.domain.local -D mydb -u dbuser -p******
当我运行这些命令时,两者都会返回以下内容:

Access denied for user 'dbuser'@'kyle.domain.local' (using password: YES)

为什么这个一直这样?我可以ping上面列出的每个主机,并为它们获取相关的IP,但mysql命令仍然可以做到这一点。发生了什么事?

如果您的密码包含特殊字符(如“!”),则unix shell可能会对此进行解释

您可以尝试将密码括在单引号中,以防止shell对其进行解释

mysql -h mysql.domain.local -D mydb -u dbuser -p'******'
                                                ^      ^

此外,MySQL正在对IP地址进行反向查找,并将其解析为主机名

拒绝访问是因为MySQL找不到匹配的主机/用户/密码条目(MySQL.user表中的行)

可以使用IP地址而不是主机名,但是在mysql.user、mysql.db等表的主机列中必须有IP地址而不是主机名

为了避免从IP地址反向查找主机名,请在my.cnf的[mysqld]部分下添加
跳过名称解析

[mysqld]
skip-name-resolve

请注意,使用此选项,MySQL将忽略MySQL.user中具有主机名的所有条目;所有用户都需要定义一个IP地址。“%”作为所有主机名和IP地址的通配符匹配仍然有效。)

好吧,您可能使用了错误的密码。好吧……这太疯狂了!我刚刚能够成功登录,但最奇怪的是,允许它工作的是从命令行-p参数中删除密码,并在提示时提供密码。我所做的只是在打印时复制它,然后在提示下粘贴它。这到底是怎么回事?!