MySQL – 解决root用户下仍然泛起权限问题

用代码实现 WordPress 评论模块登录可见

WordPress正常可以设置登录发表评论,但不登录也可以正常看到留言评论内容,我们可以简单修改一下模板,让主题评论模块只有在登录的状态下可见。 这里我们要用到WordPress判断是否登录的函数:is_user_logged_in(),用判断函数把评论模块包裹起来就行了。 以WordPress默认主题TwentySeventeen为例,打开主题正文模板文件single.php,找到类似的: if...

要害词(Key Words)

ERROR 1006 (HY000): Can’t create databaseStartingMySQL. The server quit without updating PID fileMySQL 数据库目录权限问题

开发环境

系 统: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数据目录可能存在权限问题。在你看完解决方案之后,也许你也就明了了。

解决方案

打开/etc/my.cnf

[mysqld]中找到两个信息:

datadir—— 这是你的数据库存取数据的地方 , 例如我的是datadir = /www/server/data,/www/server/data就是我的数据目录;log-bin—— 这是存在日志的地方,不外有可能只看到log-bin=mysql-bin,这里默认没有修改的话,mysql-bin是在上面的datadir。

先看错误日志

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

下面是要害的两步,也是导致泛起上面两个问题的缘故原由:

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

修改的 datadir 的所有者

[免费源码]jQuery随机点名抽奖代码

源码简介 简单的jQuery随机点名抽奖代码,设置好参与抽奖人员的名字,点击“开始”进行随机抽奖,抽取出一个人的名字。

**注重:**记得把 YOUR_DATADIR 就是我们适才找到datadir

1 $sudochown–Rmysql:mysqlYOUR_DATADIR

修改 datadir 内里文件以及文件夹的权限:

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

文件夹权限修改为700 :

1 $sudofindYOUR_DATADIR–typed–execchmod700{};

文件权限修改为660 :

1 $sudofindYOUR_DATADIR–typef–execchmod660{};

重启MySQL服务

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

1 $sudo/etc/init.d/mysqldrestart

若是泛起 [OK] ,就快大功告成啦!!

重新上岸 MySQL

1

2

3

mysql>createdatabase

57EN;QueryOK,

1rowaffectedTime:0.001s

终于跳出坑啦,虽然折腾了这么久,然则这让我对 MySQL 有了更深的熟悉,从之前只知道若何使用 MySQL,到现在明了原来数据库从服务最先它确立一个.pid 文件(MySQL 服务的历程),原来它存放的数据和日志都在它的DATADIR中。我想接下来有需要深入领会的日志,遇到问题时,可以透过日志去发现问题,解决问题。

[1] 文件夹权限 755:

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

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

7=4+2+1

统一操作工具的权限的数字相加,例如:

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

【个人第三方免签免挂机支付系统 FastPay】专供码商使用专用个人第三方免签免挂机支付系统 FastPay支持个人支付宝收款码、个人微信收款码

个人第三方免签免挂机支付系统FastPay 1.支持个人支付宝收款码、个人微信收款码, 2.个人支付宝、个人微信无需资质无需签约 3.多用户、多收款码轮询收款 4.个人支付宝转账方式无需输入金额 5.个人支付宝支持H5方式 支持多个二维码轮训支付避免一个二维码重复使用被封 支付宝H5可直接唤醒手机支付宝进行支付 微信免挂机(只需要挂一个微信绑定一下其他的的店员就行) 有码商盘口商户代理系统亲测完美...

转载请说明出处内容投诉
八爷源码网 » MySQL – 解决root用户下仍然泛起权限问题