无法从本地主机登录 MySQL,主机设置为 %

无法从本地主机登录 MySQL,主机设置为 %

我安装了 XAMPP 5.5.24,并为我的应用程序创建了一个数据库,并创建了一个 MySQL 用户来连接它。但是,我面临以下问题:

在我明确授予访问权限之前,用户无法在表Host中的列设置为的情况下本地连接 MySQL 。mysql.user%localhost

mysql> select user, host from mysql.user order by user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
|                  | localhost |
|                  | linux     |
| myNewUser        | %         |
| myNewUser        | localhost |
| pma              | localhost |
| root             | localhost |
| root             | linux     |
+------------------+-----------+
7 rows in set (0,00 sec)

我以为列%Host应该允许所有内容,包括localhost。但是,如果没有该行| myNewUser | localhost |,MySQL 会拒绝任何本地连接(已尝试-h localhost127.0.0.1),直到指定 LAN IP 地址。

iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h localhost
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 127.0.0.1
Enter password: 
ERROR 1045 (28000): Access denied for user 'myNewUser'@'localhost' (using password: YES)
iMac:www Mirek$ /Applications/XAMPP/xamppfiles/bin/mysql -u myNewUser -p -h 10.0.1.2
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 133
Server version: 5.6.24 Source distribution

这是正常现象吗?还是我忽略了什么?

答案1

作为@wurtel提到过,到 的连接localhost使用 UNIX 套接字文件绕过 TCP,因此不匹配任何 TCP 地址(%)。

参考: MySQL 5.7 参考手册 — 5.2.2 连接到 MySQL 服务器

答案2

如果通过 TCP/IP 登录,则需要指定端口和协议

mysql -u myNewUser -p -h 10.0.1.2 -p3306 --protocol=tcp

然后它就可以工作了。

要验证,当您登录时,运行此

mysql> SELECT USER() AttemptedToLoginAs,CURRENT_USER() MySQLAllowedMeAs;

如果AttemptedToLoginAsMySQLAllowedMeAs两者都说myNewUser@%,那么您做对了。

相关内容