这应该很简单,但我不能让它为我的一生工作。我只是想远程连接到我的MySQL服务器。

连接方式:mysql-u根-h本地主机-p工作正常,但尝试:mysql-uroot-h'这里的任何ip地址'-p失败,错误为:错误1130(00000):主机“xxx.xx.xxx.xxx”不允许连接到此MySQL服务器

在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户完全相同。

我束手无策,不知道该怎么办。欢迎提出任何想法。


当前回答

如果这是最近的mysql安装,那么在更改任何其他内容之前,只需执行以下命令,然后重试:

flush privileges;

这就为我修复了Ubuntu 16.04、mysql 5.7.20上的问题。YMMV。

其他回答

1.从终端将您连接到MySQL运行容器

docker exec -it your_container_name_or_id bash

2.在容器中,将您连接到MySQL数据库

mysql -u your_user -p

输入密码以连接到数据库。

3.执行此SQL脚本以列出所有现有数据库用户:

SELECT host, user FROM mysql.user;

结果如下:

host user
127.0.0.1 root
::1 root
localhost mysql.sys
localhost root

您应该添加新行:

host user
% root
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

那么,您可以做的就是打开mysql.cfg文件,然后将Bind地址更改为

绑定地址=127.0.0.1

然后重新启动mysql,您将能够将该服务器连接到此服务器。

看这个,你可以从那个里得到想法。

这是真的溶胶

您需要从任何主机名授予用户访问权限。

这是如何从phpmyadmin添加新权限的

转到权限>添加新用户

为所需用户名选择任意主机

问题:root@localhost无法连接到openSUSE 42.2-1.150.x86_64上新安装的mysql社区服务器。Mysql拒绝连接-期间。

解决方案:

$ ls -l /var/lib/mysql/mysql/user.*
-rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
-rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
-rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

文件user.MYD的大小为0(真的?!)。我从另一个工作系统复制了所有3个文件。

$ /usr/sbin/rcmysql stop
$ cd /var/lib/mysql/mysql/
$ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
$ /usr/sbin/rcmysql start
$ cd -
$ mysql -u root -p

我能够登录。然后,这只是重新应用所有模式特权的问题。此外,如果禁用了IPv6,请重新启用它,以便root@::1帐户也可以工作。

只需使用MySql的GUI工具(SQLyog)提供的界面:

单击用户管理器:

现在,如果您想授予任何其他远程PC的访问权限,只需确保,正如下图所示,主机字段值为%(这是通配符)