MySQL出现Can't create database XXX (errno: 2)错误

今天在开发的时候使用下面的JDBC连接数据库进行测试:

jdbc:mysql://localhost:3306/lsf_test?createDatabaseIfNotExist=true

后面的createDatabaseIfNotExist参数会自动创建数据库,但启动的时候出现下面的错误提示:

Can't create database XXX (errno: 2)

刚开始以为是JDBC的问题,后来直接连接到数据库上创建数据库依然出现上述的提示,并且只能看到 information_schema 这个数据库,像 mysqlperformance_schema等数据库都无法显示。

登录数据库的用户使用的是root账号,检查了一下用户的权限都是最高的。

执行 select @@datadir; ,找到数据库的数据目录,然后执行 sudo chown -R <current_user> /your/mysql/data 命令(其中current_user是当前登录的用户,后面的目录是MySQL的数据目录,执行完成之后依然出错。

考虑到我使用的是用于单元测试的embedded mysql,因此删除了整个数据库文件之后,重试依然出错。

在近乎绝望的情况下,偶然在MySQL官方论坛上发现了这个帖子 https://forums.mysql.com/read.php?10,229941,229995#msg-229995,尝试重启了一下电脑,之后竟然就正常了。


参考资料:
ERROR 1006 (HY000) Can't create database (errno: 13) MySQL 5.6.12
mysql> create database test; ERROR 1006 (HY000): Can't create database 'test' (errno: 2)
ERROR 1006 (HY000): Can't create database XXX (errno: 2)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注