MySQL在grant时报错ERROR 1064 (42000)如何解决

MySQL在grant时报错ERROR 1064 (42000)如何解决

网上查到的grant方式大多会报错,主要原因是MySQL版本8.0后不能再使用原来的方式

查询MySQL版本

SELECT version();

在8.0版本下

grant all privileges on test.* to test@'%' identified by '123456';

报错

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘123456” at line 1

正确的grant方式

create user test@'localhost' identified by '123456';
grant all privileges on test.* to test@'localhost';
flush privileges;

MySQL8.0密码登录不上

alter user test@'localhost' identified with mysql_native_password by '123456';

补充:MySQL ERROR 1064 (42000)——不管怎样grant总是报错,怎么回事?

用过MySQL的朋友都知道,经常会有一些grant(授权)操作,不知道你有没有遇到过这样的问题。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘123456’’ at line 1

MySQL grant的SQL

粘贴到终端执行,报错!
每个字母敲后执行,又报错!
反复确认很多遍执行,又又报错!

都要疯了,怎么办。别急,接着看文章。

版本的不同导致

首先,你先检查一下你的MySQL版本, 大多数执行报错的MySQL版本是8.0的,通过记忆甚至盲打命令都不层报错的,估计通常都是用的非常多的5.7了。信不信呢?

用真实数据测试

1.先用MySQL 8.0试一下

mysql> grant all privileges on test.* to test@'%' identified by '123456';  ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1

报错了

2.再用MySQL 5.7试一下

mysql> grant all privileges on test.* to test@'%' identified by '123456';    Query OK, 0 rows affected, 1 warning (0.08 sec)mysql> flush privileges;

成功。

细心的朋友有没有注意到返回结果里有一个信息:1 warning,是什么内容呢?

mysql> show warnings;+---------+------+------------------------------------------------------------------------------------------------------------------------------------+| Level   | Code | Message                                                                                                                            |+---------+------+------------------------------------------------------------------------------------------------------------------------------------+| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |+---------+------+------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

原来在MySQL5.7的时候,官方就提示了,这个语法SQL将要被弃用了。

正确的执行赋权

那么在MySQL8.0版本及以后,我们如何正确执行grant呢?

先创建用户,再赋予授权。

mysql> create user test@'localhost' identified by '123456';Query OK, 0 rows affected (0.10 sec)mysql> grant all privileges on test.* to test@'localhost';Query OK, 0 rows affected (0.17 sec)mysql> flush privileges;Query OK, 0 rows affected (0.18 sec)

这个方法也适用MySQL5.7版本,所以建议大家以后使用这种方式赋权,一键建用户加赋权官方已经弃用了。

读到这里,这篇“MySQL在grant时报错ERROR 1064 (42000)如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

文章标题:MySQL在grant时报错ERROR 1064 (42000)如何解决,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/20895

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云亿速云认证作者
上一篇 2022年8月26日 下午3:37
下一篇 2022年8月27日 下午4:41

相关推荐

  • mysql的case when如何用

    在mysql中,“case when”用于计算条件列表并返回多个可能结果表达式之一;“case when”具有两种语法格式:1、简单函数“CASE[col_name]WHEN[value1]THEN[result1]…ELSE[default]END”;2、搜索函数“CASE WHEN[expr]T…

    2022年9月6日
    38900
  • JavaScript单线程和任务队列是什么

    本文章是对以往“JavaScript单线程和任务队列是什么”知识点的总结与梳理,不仅内容丰富、详细,而且知识点逻辑十分清晰。相信多数人读完本文后,会对“JavaScript单线程和任务队列是什么”的知识内容,有更为深入的理解和认识。 一、JavaScript为什么设计为单线程? JavaScript…

    2022年6月27日
    19300
  • python解析之namedtuple函数怎么使用

    源码解释: def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None): “””Returns a new subclass of tuple with named fields. >&g…

    2022年9月1日
    20600
  • torrent文件有什么作用

    torrent是BT种子文件,其本质是文本文件;torrent文件中包含Tracker信息和文件信息两部分,Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则…

    2022年9月8日
    34300
  • word怎么添加页码

    word加页码的方法: 1、说先进入word文档,然后点击菜单中的“插入”选项。 2、然后在下拉的菜单中选择”页码“选项。 3、然后就会出现页码的设置框,可以点击“格式”来进行编辑。 4、然后你就可以在数字格式的模式进行格式选择,然后点击确定。 5、当你全部设置完成之后可以直接点击确定来完成设置。 …

    2022年9月20日
    18100
  • vue项目打包后怎么部署到服务器

    一 ,打包项目 1 , vscode打开你的vue项目 — > 点终端- > 新终端- >输入npm run build 按回车 , 显示正在打包..稍等一会 2 , 打包成功 , 生成了dist文件夹, 打包好的文件存放在里面 二 , 用一个工具, 把打包好的文件上传…

    2022年9月20日
    1.3K00
  • windows nvidia驱动缓存如何清理

    nvidia驱动缓存能清理吗 答:nvidia驱动缓存能清理, 驱动缓存是驱动更新安装时留下的。 如果我们已经完成更新,就没有用了。 nvidia驱动缓存清理教程: 1、首先进入我的电脑“C:Program Files”位置。 2、在其中找到“NVIDIA corporation”文件夹,将它删除。…

    2022年8月29日
    70200
  • Word尾注和交叉引用的区别是什么

    尾注和交叉引用的区别: 答:尾注是给选中的文字添加注释,存在于文章的结尾。 而交叉引用则是把脚注和尾注以及题注全部都交叉在一起使用。 一个是针对标题和结尾,一个仅仅是存在于文章的结尾。 尾注和交叉引用更多介绍: 1、尾注是可以放在文章页面的最下面的,可以对一些元素加以说明。 2、还可以将引用文章的出…

    2022年8月31日
    33800
  • cad字体如何添加进去

    cad字体添加进去的方法 1、首先右键CAD的图标,找到属性点击。 2、然后切换到快捷方式栏目。 3、然后打开文件所在的位置。 4、找到Fonts文件夹。 5、Fonts文件夹就是CAD的字体库了; 如果需要添加字体,只需要把下载下来的字体文件复制进这个文件夹就可以了。 到此,相信大家对“cad字体…

    2022年9月15日
    92800
  • windows谷歌浏览器怎么禁用js

    谷歌浏览器禁用js的方法: 1、点击左上角的三个点然后点击“设置”。 2、进入后下滑点击最下方的“高级”。 3、之后点击“内容管理”。 4、点击开关即可禁用js插件。 以上就是“windows谷歌浏览器怎么禁用js”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都…

    2022年9月8日
    17600
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部