尝试
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
得到
错误1064(42000):您的sql语法有错误;检查与mysql服务器版本相对应的手册,以获得正确的语法,以便在第1行中使用“identified by‘root’with grant option”。
注意:在以前的版本中尝试时,也可以使用相同的方法。
也试过了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
得到
错误1410(42000):不允许使用grant创建用户
mysql(8.0.11.0)用户名/密码为root/root。
14条答案
按热度按时间svdrlsy41#
我在centos上也遇到同样的问题,这对我很有效(版本:8.0.11):
yrdbyhpb2#
您的mysql上不存在指定的用户(因此,mysql正在尝试使用grant创建它,就像在版本8之前一样,但是由于本版本中引入的限制而失败)。
mysql在这一点上是相当愚蠢的,所以如果您有“root”@“localhost”并试图授予“root”@“%”特权,它会将它们视为不同的用户,而不是任何主机(包括localhost)上的root用户的泛化概念。
这个错误信息也有误导性。
因此,如果您收到错误消息,请使用以下内容检查现有用户
然后创建缺少的用户(正如mike所建议的),或者将grant命令调整为实际存在的用户规范。
e4eetjau3#
我也有同样的问题。即使路由有“%”,也无法远程连接。现在,看看
my.ini
文件(windows中的配置文件)bind-address
声明被遗漏了。所以。。。我把这个
bind-address = *
之后[mysqld]
并重新启动了服务。现在成功了!34gzjxbg4#
从MySQL8开始,您不再能够(隐式地)使用
GRANT
命令。改用create user,后跟grant语句:注意安全风险
WITH GRANT OPTION
,请参见:授予数据库上的所有权限
nhhxz33t5#
检查您的用户名和域是否与以前创建的相同。mysql根据用户表中的两列来选择账号,如果不一样,mysql可能会认为您想通过授权创建一个新账号,这在8.0版本之后是不支持的。
owfi6suc6#
我的规格:
对我有用的是:
xnifntxz7#
这对我有用:
bis0qfac8#
我看到很多(错误的)答案,就这么简单:
注意:不是自创的
user
你可以用root
连接到数据库。但是,使用默认根帐户让应用程序连接到数据库并不是首选方法。其他特权(请注意并记住最小特权原则):
如果您遇到以下错误:
错误1130(hy000):不允许主机“1.2.3.4”连接到此mysql服务器
您需要在中添加/更改以下两行
/etc/mysql/my.cnf
重新启动mysql:hgtggwj09#
就我的2美分。我在尝试从mysql工作台连接时遇到了完全相同的问题。我正在运行一个bitnamimysql虚拟机来建立一个用于开发的本地沙盒。
bitnami的教程说要运行'grant all privileges'命令:
这显然不起作用,我终于用迈克·利施克的答案让它起作用了。
我认为发生的情况是root@%用户具有错误的与之相关联的凭据。因此,如果您试图修改用户的权限,但运气不好,请尝试:
正在删除用户。
再次创建用户。
确保在my.cnf配置文件上有正确的绑定。在我的例子中,我已经注解掉了这条线,因为它只是用于沙盒环境。
从mysql控制台:
列出用户(有助于查看所有用户):
删除所需用户:
创建用户并授予权限:
运行此命令:
找到mysql配置文件“my.cnf”,并查找一行如下所示:
并用“#”注解它:
然后重新启动mysql服务。
希望这能帮助有同样问题的人!
owfi6suc10#
1还需要在服务器上授权
mysql>授予上的所有特权。使用grant选项设置为“root”@“%”;
mysql>刷新权限
2检查用户表:
mysql>使用mysql
mysql>从用户中选择主机、用户
3.修改配置文件
mysql默认绑定ip:127.0.0.1,如果要远程访问服务,只需删除config即可
4.最后重启服务
brew服务重新启动mysql
de90aj5v11#
1) 这对我有用。首先,创建一个新用户。示例:用户
foo
带密码bar
```mysql> mysql -u foo -p
tzdcorbm12#
我的规格:
对我有用的是:
两个查询中的响应:
n、 b:我之前创建了一个数据库(db\u name),并且正在创建一个用户凭证,该凭证具有授予db中所有表的所有权限,而不是使用默认的根用户,我在某处读到的是一个最佳实践。
cx6n0qe313#
这可能适用于:
zc0qhyus14#
我也有同样的问题,所以才来到这里。特别是对于当地的发展,我希望能够做到
mysql -u root -p
没有sudo
. 我不想创建新用户。我想用root
从本地php web应用程序。错误消息具有误导性,因为默认值没有问题
'root'@'%'
用户权限。相反,正如一些人在其他答案中提到的那样,解决办法只是设置
bind-address=0.0.0.0
而不是bind-address=127.0.0.1
在我的/etc/mysql/mysql.conf.d/mysqld.cnf
配置。否则不需要任何更改。