Mysql库名中包含-等特殊符号报错:ERROR 1064 (42000): You have an error in your SQL syntax

--问题描述
在创建mysql数据库的时候出现报错:
mysql> CREATE DATABASE IF NOT EXISTS test-db1 default charset utf8 COLLATE utf8_general_ci;
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 '-db1 default charset utf8 COLLATE utf8_general_ci' at line 1

--问题分析
从报错可以看出,是语法拼写问题,检查了几遍发现确实没有问题

猜测可能是数据库名称中 -  字符的问题

--原因
mysql数据库直接创建是不能创建带特殊字符的库名的

--问题解决
需要使用 ` 符号进行转义处理,这个符号是esc下面的那个键,不是单引号

mysql> CREATE DATABASE IF NOT EXISTS `test-db1` default charset utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.03 sec)

--延伸,同理在授权以及其他处理该库的时候也要加上对应符号`

grant ALL PRIVILEGES on `test-db1`.*  to test@'%';
 

你可能感兴趣的:(mysql)