mysql的root用户无法建库的问题

Posted mezhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的root用户无法建库的问题相关的知识,希望对你有一定的参考价值。

解决方案

  1. 打开/etc/my.cnf

    [mysqld] 中找到两个信息:

    1. datadir —— 这是你的数据库存取数据的地方 , 例如我的是 datadir = /www/server/data/www/server/data 就是我的数据目录;

    2. log-bin —— 这是存在日志的地方,不过有可能只看到 log-bin=mysql-bin ,这里默认没有修改的话,mysql-bin 是在上面的 datadir

  2. 先看错误日志

    打开到你的 datadir 文件夹位置 , 有一个 ***.err 的文件,这是 MySQL 的一个错误日志,你可以使用 vim 打开查看是否有什么错误的信息;

下面是关键的两步,也是导致出现上面两个问题的原因:

  • MySQL每次开始服务的时候要先在 DATADIR 中创建一个 ****.pid 文件,关闭服务的时候就会删除它;因为上次这里面整个文件夹(包括文件夹中的内容)的所有者被我不小心修改为root了,因此 MySQL 没有权限往其中新建一个 ****.pid 文件 ,因此报了第二个的错误;
  • 另外,为什么我一开始可以登陆 MySQL ,却在root用户的时候居然无法进行新建数据库的操作呢?我猜想可能是因为,我之前的文件夹的权限是755,文件的是644的原因;也就是用户组和公共组都可以读取,但无法写入,所以才会报第一个错误!
  1. 修改的 datadir 的所有者

    $ sudo chown -R mysql:mysql YOUR_DATADIR
    复制代码

    **注意:**记得把 YOUR_DATADIR 就是我们刚才找到 datadir

  2. 修改 datadir 里面文件以及文件夹的权限:

    建议数据库数据目录的权限为 700 ,文件的为660

  • 文件夹权限修改为700 :

    $ sudo find YOUR_DATADIR -type d -exec chmod 700  \;
    复制代码
  • 文件权限修改为660 :

    $ sudo find YOUR_DATADIR -type f -exec chmod 660  \;
    复制代码
  1. 重启MySQL服务

    到这里,我们就可以重新再试试

    $ sudo /etc/init.d/mysqld restart
    复制代码

    如果出现 [OK] ,就快大功告成啦!!

  2. 重新登陆 MySQL

参考:https://juejin.im/post/5c237ebd518825741e7c32f0

 

以上是关于mysql的root用户无法建库的问题的主要内容,如果未能解决你的问题,请参考以下文章

操作mysql(图形界面) 建库建表

mysql root无法修改用户权限,root无法操作数据库

mysql的root用户无法给普通用户授权问题处理

无法以 root linux 用户身份运行 mysql 命令

无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)

Linux下MySQL无法在本地以非root用户身份连接数据库