博客
关于我
mysql的root用户无法建库的问题
阅读量:789 次
发布时间:2023-02-13

本文共 1220 字,大约阅读时间需要 4 分钟。

解决方案

当你在使用MySQL时遇到启动时出现错错513或无法创建数据库等问题时,以下是一些常见的解决方法。这些问题往往与数据目录的权限设置有关。

1.1 查看MySQL配置

首先,打开/etc/my.cnf文件。在[mysqld]配置段中查找以下两个关键参数:

  • datadir:这是你的数据库数据存储目录。例如,在我的环境中,datadir = /www/server/data,因此我的数据目录位于/www/server/data
  • log-bin:这是用于存储日志的目录,默认情况下,如果没有进行过修改,日志文件会放在数据目录的子目录mysql-bin中。

1.2 查看错误日志

打开到你数据目录对应的文件夹位置。在这个文件夹中,你会找到一个带有***.err的文件。这是MySQL的错误日志。使用vim等工具查看日志内容,看是否有相关的错误信息。

1.3 探索问题根源

通过查看错误日志,我发现了两个主要问题:

  • MySQL无法创建PID文件:每次启动MySQL时,系统会尝试在数据目录中创建一个***.pid文件以记录进程ID。当上次使用时,不小心将整个文件夹(包括文件夹中的内容)的所有者修改为root时,MySQL就无法再创建新的PID文件。这导致了错误信息中提到的“错错513”问题。

  • 权限不足:最初我可以正常登录MySQL,但在以root用户身份尝试创建新数据库时却遇到权限不足的问题。这可能是因为数据目录的权限设置为755,文件的权限设置为644。这种情况下,虽然用户组和公共组都有读取权限,但没有写入权限,这也会导致数据库无法正常运行。

  • 1.4 修改数据目录权限

    为了解决这些问题,我们需要对数据目录进行权限调整。具体步骤如下:

  • 修改数据目录所有者

    sudo chown -R mysql:mysql YOUR_DATADIR

    YOUR_DATADIR替换为你的实际数据目录路径。

  • 调整文件和目录权限:数据库数据目录的权限建议设置为700,文件的权限建议设置为660。可以使用以下命令进行调整:

    sudo find YOUR_DATADIR -type d -exec chmod 700 {} \;sudo find YOUR_DATADIR -type f -exec chmod 660 {} \;
  • 1.5 重启MySQL服务

    完成上述权限调整后,尝试重新启动MySQL服务:

    sudo /etc/init.d/mysqld restart

    如果看到输出[OK],说明问题已经解决。

    1.6 重新登录MySQL

    登录MySQL后,确保权限问题已经解决,可以正常创建数据库和执行其他操作。

    注意事项

    • 确保在修改数据目录权限之前,已经备份了重要数据。
    • 如果遇到PID文件无法创建的问题,可以尝试手动删除***.pid文件,然后重新启动MySQL服务。
    • 建议定期检查数据目录权限,确保其符合数据库运行所需的安全要求。

    转载地址:http://yvdfk.baihongyu.com/

    你可能感兴趣的文章