Error number: MY-013276; Symbol: ER_CANT_SET_DATA_DIR; SQLSTATE: HY000
Message: Failed to set datadir to ’%s’ (OS errno: %d – %s)
错误说明
ER_CANT_SET_DATA_DIR,出现该错误是表明 MySQL 尝试更新数据库目录但没有成功。 该报错代码的官方描述为:
“Can’t set data dir to ‘%s’”,即「无法将数据目录设置为 ‘%s’」 。
该错误一般伴随着error number为 MY-013277 的错误,此错误提示 “Can’t create directory ‘%s’”,即「无法创建目录 ‘%s’」 。
常见案例
当MySQL使用非root用户运行时,遇到此错误很有可能是由于文件/文件夹权限没有设置正确引起的。
运行 chown root:root 或 chown mysql:mysql相关的文件和文件夹,能够改善此问题。
此外,如果MySQL不支持/datadir 设置 时也可能会出现此报错。
解决方法
如果MySQL不支持/datadir 设置 ,则需要先使用软件工具来检查/datadir设置以及检查是否能够读取MySQL文件作为特定用户。在特定情况下,可以使用新的MySQL用户(比如'mysqlroot’)的文件权限来解决。
重要的是要注意MySQL用户的文件权限设置。也可以使用命令行解决一些权限问题,例如:
$ sudo chown -R root:root /datadir
$ sudo chown -R mysql:mysql /datadir
最后,用户也可以使用 root 用户或新创建的用户启动MySQL服务,那么就可以正常使用MySQL了。