Linux MySQL 忘记密码 修改my.cnf后启动失败,报错误The server quit without updating PID file

Linux MySQL 忘记密码 修改my.cnf后启动失败,报错误The server quit without updating PID file


事情是这样的,公司内网之前某同事安装了一个数据库,但未曾提供root密码,想再进行建库等操作无法进行。于是登录数据库服务器查看,却发现每次登录服务器就会显示一长串的东西,完美主义的我当然不能容忍每次都报一长串东西,最后定位到/etc/profile文件居然有1G多的内容,复制同类服务器的profile相关文件替换后解决问题。

说回正题,root密码忘记百度加上以往经验就是修改my.cnf在[mysqld]配置下
增加skip-grant-tables后重新启动,无密码登录进入数据库修改root密码后再正常启动即可。坏就坏在我修改后重启居然提示The server quit without updating PID file,于是一通百度,什么关闭进程啦,什么删掉data下的数据了(我的是测试库删了没事,如果有重要数据千万不可删除里面的文件!!!否则你就得跑路了),什么文件授权等等操作,我都一一试过,仍发现不行,而且把skip-grant-tables命令注释后即可成功运行,甚是不解。

于是最后大招重新安装,想着这下总没什么问题了吧,但现实很残酷,却还是一样的问题。第二天上班后沿着昨天思路进行下去,决定不修改配置文件使用mysqld_safe命令启动mysql后,再免登录进去修改密码

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

但这个启动也失败了,但是这次我想到了查看log下的mysql-error日志文件,查看到

[ERROR] unknown variable 'rpl_semi_sync_master_enabled=1'
[ERROR] Aborting

断定启动失败的错误应该就在此,于是查看my.cnf确实有此参数配置,百度后发现是主从配置项,可能是由于使用压缩包安装,压缩包的来源不清楚,于是注释相关配置后再次启动,启动成功。直接输入

mysql

命令即可免登录进入数据库,接下来就是常规操作了

use mysql;

update user set authentication_string=password('要修改的密码') where user='root';

建库建用户如下,若数据库名为test_db,用户名为test_admin

-- 创建数据库
CREATE DATABASE IF NOT EXISTS test_db
DEFAULT CHARSET utf8mb4 
COLLATE utf8mb4_general_ci;

--创建用户
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

--给用户授权
GRANT ALL ON test_db.* TO 'test_admin'@'%';

--刷新权限
FLUSH PRIVILEGES;

最后我又试着在my.cnf添加skip-grant-tables,发现可以启动成功了,所以问题就在主从库的配置项那里,当时如果第一步先看日志再去百度,或许只需一小时内即可解决了。

所以,最重要的就是学会看日志。先想着自己解决,而不是上来就百度,否则浪费更多时间,给自己提个醒吧!

纯手打,若编辑有误还请见谅:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值