MySQL – 解决root用户下仍然出现权限问题-无法建库

MySQL – 解决root用户下仍然出现权限问题-无法建库 最后编辑:2021-05-30
增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

关键词(Key Words)

  • ERROR 1006 (HY000): Can’t create database
  • Starting MySQL. The server quit without updating PID file
  • MySQL 数据库目录权限问题

开发环境

  • 系 统:CentOS Linux release 7.5.1804 (Core)
  • MySQL版本:MySQL 5.6

问题场景描述

在某次操作中,我作死用 find 和 chown 命令行修改文件/文件夹的权限和所有者,后来简单粗暴地把 www 文件夹的权限改回755[1],把文件的权限改为644;所有者全部改为root,就在这个时候,一个隐形的大地雷就被我亲手埋下了。。

当我第二天再数据库中建立一个新的数据库的时候,我发现,无论我是使用数据库的普通用户,还是使用 root 用户登录,他都好像开玩笑地告诉我:

ERROR 1006 (HY000): Can't create database

我立马觉得这不对劲,一定是自己埋下的深坑。。我把 ERROR 复制到搜索引擎上一搜索,发现大多数说的是权限,于是想起自己干起的好事,就开始寻找起恢复默认权限的方法(可惜没有备份),这折腾着折腾着我重启了 mysqld 服务,并且令人惊讶的是,shutdown OK,Start failed,又报了一个错误:

Starting MySQL.The server quit without updating PID file

[捂脸][捂脸] 我就开始找 MySQL 的日志,发现没有报错,并且接下来的每次重启都没有记录在日志中,

这让我有种刚掉一个坑还没出来,发现不小心又掉进另外一个坑的感觉。。

但是还好坚持了一个上午,直到下午才发现,原来是同一个问题的导致的:MySQL数据目录可能存在权限问题。在你看完解决方案之后,也许你也就明白了。

解决方案

  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 的所有者

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

    $ sudo chown -R mysql:mysql YOUR_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

    mysql > create database
    57EN; Query OK,
    1 row affected Time: 0.001s

     

终于跳出坑啦,虽然折腾了这么久,但是这让我对 MySQL 有了更深的认识,从之前只知道如何使用 MySQL,到现在明白原来数据库从服务开始它创建一个.pid 文件(MySQL 服务的进程),原来它存放的数据和日志都在它的 DATADIR 中。我想接下来有必要深入了解的日志,遇到问题时,可以透过日志去发现问题,解决问题。

[1] 文件夹权限 755:

在 Linux 系统中,关于文件/文件夹权限,有三类操作对象(所有者、用户组、公共组)各自有3个权限(读、写、执行),Linux 系统希望通过以下数字规则就能快速知道三类操作对象的对应的权限。

其中,4读取的权限,2写入的权限,1执行的权限;

7=4+2+1

同一操作对象的权限的数字相加,例如:

755 的权限,所有者的权限有读写、执行;用户组的权限有读取、执行;公共组的权限有读取、执行。

猜你在找

1、本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长,3093421469@qq.com
2、分享目的仅供大家学习和交流,请不要用于商业用途!
3、本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
4、如有链接无法下载、失效或广告,请联系管理员处理!
5、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

蜀山号 » MySQL – 解决root用户下仍然出现权限问题-无法建库

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片?
对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
蜀山号
全网资源免费分享
  • 2021-05-30Hi,初次和大家见面了,请多关照!

发表评论

售后服务:

  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥300-800)服务答疑仅限SVIP用户
    3、单价超过200元的模板免费一次安装,需提供服务器信息。
    付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
    2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
    3、服务器环境配置(一般 ¥200-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 3093421469@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系作者
  • © 2018 蜀山号 声明;资源源码来源于网络,如有侵权请加QQ:3093421469,第一时间删除,蜀山号不承担由来源收集于网络的虚拟资源的任何法律纠纷。 豫ICP备2022009764号-3

  • XML地图 | 站长导航