我使用MySQL已经有几年了,MySQL 5.x版本之前创建新用户的命令如下:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

最近我安装了MySQL8,这个命令不起作用.

触发上述命令时抛出以下错误:

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 'password'' at line 1

MySQL8中的语法有什么变化吗?在MySQL8中创建新用户命令的正确语法是什么?

注意:我在MySQL5.x版本中try 了此语法.它在这方面工作正常.

推荐答案

试试这个:

use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;

Database相关问答推荐

在Neo 4 j中,为什么Match(a)--(b)--(c)允许a=c,但(a)--(b)--(c)不允许?

包含接受Cassandra中多个数据的语句

如果我想支持我的工作负载,我需要多少个 node ?

哪个本地数据库适合 Windows 8 应用store 应用?

为什么null不等于null false

如何验证 SQLAlchemy ORM 中的列数据类型?

如何设计 SaaS 数据库?

如何从表列中删除唯一约束?

B+ 树相对于 BST 的优势?

在 Slick 3 的事务中执行非数据库操作

mySQL 复制是否具有即时数据一致性?

执行语句还是运行脚本?

在哪里可以找到 neo4j 快速教程?

数据库与微服务的一致性

在mysql中 Select 不同的2列组合

传递依赖有什么问题?

由多个用户编辑数据库记录

复制没有 LOCK 权限的 postgres 数据库

使用 Django 的复合/复合主/唯一键

使用 liquibase 更新表中的一行