为什么,为什么我不能连接到mysql?
mysql -u root -ptest101 -h xxx.xxx.xxx.xxx
ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
在my.cnf中,我有以下内容
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
我还运行了下面的代码...
'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root';
FLUSH PRIVILEGES;
我可以使用mysql -u根-ptest101在主机上访问,但不能使用mysql -u根-ptest101 -h xxx.xxx进行访问。
Wow...why这是怎么回事?我是12.04
mysql> SELECT host FROM mysql.user WHERE User = 'root';
+---------------------------------------------+
| host |
+---------------------------------------------+
| % |
| 127.0.0.1 |
| ::1 | |
| localhost |
+---------------------------------------------+
5 rows in set (0.00 sec)
发布于 2013-10-01 02:37:16
您的root
帐户(此语句适用于任何帐户)可能只添加了本地主机访问权限(推荐)。
您可以使用以下命令进行检查:
SELECT host FROM mysql.user WHERE User = 'root';
如果您只看到localhost
和127.0.0.1
的结果,则不能从外部源连接。如果您看到其他IP地址,但不是您正在连接的IP地址-这也是一个指示。
您需要添加要授予访问权限的每个系统的IP地址,然后授予权限:
CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';
如果你看到%
,那就完全有另一个问题了,因为它是“任何远程源”。但是,如果您希望任何/所有系统都通过根目录连接,请使用%
通配符授予访问权限:
CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
最后,重新加载权限,您应该能够进行远程访问:
FLUSH PRIVILEGES;
发布于 2016-04-28 14:26:58
$mysql -u root --host=127.0.0.1 -p
mysql>use mysql
mysql>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'redhat@123';
mysql>FLUSH PRIVILEGES;
mysql> SELECT host FROM mysql.user WHERE User = 'root';
发布于 2014-07-22 19:03:13
转到PhpMyAdmin,单击所需的数据库,转到特权选项卡并创建新用户"remote",然后为其提供所有特权,并在主机字段中设置"Any host“选项(%)。
https://stackoverflow.com/questions/19101243
复制相似问题