mysql第一次启动时的密码错误_MySQL错误日志(一)(忘记密码,无法启动的错误)...

MySQL错误日志(修改密码,无法启动)

额外准备工作(可能对于这篇文章没有实际作用,只是为了学习linux命令):

cat /etc/passwd 可以查看所有用户的列表

w #可以查看当前活跃的用户列表

cat /etc/group 查看用户组

rpm -qa|grep mysql # 查看系统是否有自带的mysql;

yum remove 软件名 # 移除软件;

find / -name mysql #查看是否还有残留的文件 可以查找出所有的含有mysql的路径名;

netstat -tunpl #centos 查看所有运行中的服务的详细信息命令,centos 查看所有运行中的服务ip和端口信息

导致mysql出现错误的可能原因:

1.我修改过mysql的配置文件 /etc/my.cnf 在其中加入:skip-grant-tables

2.其他未知原因;

这是/etc/my.cnf的配置文件信息:

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]

#skip-grant-tables是我为了改密码而添加的

#skip-grant-tables

#

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

#

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

#

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

错误发生:

#输入启动,重启命令错误出现:

/etc/init.d/mysqld start

service mysqld restart

#停止mysql无错误信息提示

/bin/systemctl stop mysqld.service

#错误内容为:

Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

[FAILED]

日志显示为:

# 使用 命令:cd /var/log/mysqld.log 进入查看日志;

#日志内容取最后的错误信息,其他没用的省略;

2018-01-15T04:08:48.427325Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)

2018-01-15T04:08:48.427392Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory

错误分析(摘自csdn博主笔记):

鉴于很多童鞋反应,mysql5.7安装后出现无法启动,建立/var/run/mysqld 并赋权mysql用户解决了启动的问题,但是重启系统后又出现无法启动的问题,导致/var/run/mysqld 目录每次重启后都需要手动去创建并赋权mysql用户才能起到mysql,可以说,这是mysql5.7的一个小BUG,经过探索实践,现给出终极解决方案:

首先申明,修改my.cnf没有用。

之所以/var/run/mysqld 目录每次重启后都需要手动去创建,是因为/var/run/目录下建立文件夹是在内存中,故每次重启后内存被清空导致/var/run/mysqld 也被清除,从而导致无法启动mysql。

vim /etc/init.d/mysqld

解决方法之一(没有试过):

首先申明,修改my.cnf没有用。

之所以/var/run/mysqld 目录每次重启后都需要手动去创建,是因为/var/run/目录下建立文件夹是在内存中,故每次重启后内存被清空导致/var/run/mysqld 也被清除,从而导致无法启动mysql。

vim /etc/init.d/mysqld

找到下面字段

get_mysql_option mysqld datadir "/var/lib/mysql"

datadir="$result"

get_mysql_option mysqld socket "$datadir/mysql.sock"

socketfile="$result"

get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"

errlogfile="$result"

get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"

mypidfile="$result"

修改为

get_mysql_option mysqld datadir "/var/lib/mysql"

datadir="$result"

get_mysql_option mysqld socket "$datadir/mysql.sock"

socketfile="$result"

get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"

errlogfile="$result"

get_mysql_option mysqld_safe pid-file "/var/lib/mysql/mysqld.pid"

mypidfile="$result"

保存后退出,执行下面命令:

systemctl daemon-reload

#重构进程

service mysqld start

#启动mysql

chkconfig mysqld on

#加入随系统启动启动

解决方法之二(此方法通过实际运用):

#建立/var/run/mysqld 并赋权mysql用户解决了启动的问题

mkdir -p /var/run/mysqld/

# 创建了/var/run/mysqld/目录,重启MySQL服务

/etc/init.d/mysqld start

还是报错:

Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

[FAILED]

#依旧报错,重新查看告警日志,有以下输出

2018-01-15T04:22:25.845831Z 0 [ERROR] Can't start server: can't createPIDfile: Permission denied

#原来,/var/run/mysqld/的属主和属组还是root,mysql并不能在其中创建文件,后修改该目录的属主和属组,启动OK。

chown mysql.mysql /var/run/mysqld/

/etc/init.d/mysqld start

#Starting mysqld (via systemctl): [ OK ]

修改密码

vi /etc/my.cnf

#在[mysqld]中添加

skip-grant-tables

#重启mysql

service mysql restart

#用户无密码登录

mysql -uroot -p (直接点击回车,密码为空)

#选择数据库

use mysql;

#修改root密码

update user set authentication_string=password('123456') where user='root';

执行

flush privileges;

#退出

exit;

#删除

skip-grant-tables

#重启mysql

service mysqld restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值