MariaDB 10.9执行GRANT命令遇ERROR 1064(42000)语法错误求助
解决MariaDB创建备份用户的SQL语法错误
你的SQL命令报错的核心原因是数据库标识符的引号使用错误:
- 在MariaDB/MySQL中,单引号
'仅用于包裹字符串(比如密码'password'); - 库名、表名这类标识符需要用**反引号(`)**包裹,或者在名称不含特殊字符时直接省略引号。
修正后的授权命令如下:
GRANT SELECT, RELOAD, FILE, SUPER, LOCK TABLES, SHOW VIEW ON `db_prod`.* TO 'backup'@'localhost' IDENTIFIED BY 'password';
如果db_prod名称没有特殊字符,也可以省略反引号:
GRANT SELECT, RELOAD, FILE, SUPER, LOCK TABLES, SHOW VIEW ON db_prod.* TO 'backup'@'localhost' IDENTIFIED BY 'password';
额外提示(针对MariaDB 10.4+版本)
从MariaDB 10.4开始,GRANT语句中使用IDENTIFIED BY创建用户的语法已被废弃,推荐先创建用户再授权:
CREATE USER 'backup'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, RELOAD, FILE, SUPER, LOCK TABLES, SHOW VIEW ON `db_prod`.* TO 'backup'@'localhost';
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

