--问题描述
在创建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@'%';