码迷,mamicode.com
首页 > 数据库 > 详细

mysql root 忘记密码

时间:2018-01-13 18:58:42      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:shutdown   style   databases   art   init.d   多用户   用户数   password   null   

前提:客户端服务器端必须在同一台机器上面才能修改
 
如果mysql库里面没有其他用户数据,可以直接初始化mysql库。
 
但是如果mysql库创建了很多用户就不能进行初始化了。只能从新找回密码
要想找回管理员密码必须停止mysql服务
service mysqld stop
 
然后手动启动mysql。编辑/etc/init.d/mysqld
 
找到 有个 $bindir/mysqld_safe --datadir="$datadir" --pid-file="mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
 
修改为:
$bindir/mysqld_safe --skip--grant-tables --skip-networking --datadir="$datadir" --pid-file="mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
 
再启动mysql服务。
 
然后登陆上去后再设置密码注意这里再修改密码时候只能去改mysql.user表里面的password 字段了
update user set Password=password(‘设置的新密码‘); where user=‘root‘;
 
然后在退出mysql,停止mysql服务,重新编辑/etc/init.d/mysqld  把刚才改的字段再改回去。
再重新启动mysql服务即可
 
 
方法2:
 
使用mysqld_safe  命令加上一些参数,登陆时候不使用授权表
 
首先停止mysql服务
 
然后:
mysqld_safe --skip-grant-tables --user=mysql &
直接新开一个shell输入mysql即可进入
 
如果无法进入,提示
mysqld_safe Starting mysqld daemon with databases from /mydata/data
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
 
请查看/var/log/mysqld.log
我查看到日志显示这样:
160412  6:21:04 [ERROR] /usr/local/mysql/bin/mysqld: Can‘t create/write to file ‘/var/run/mysqld/mysqld.pid‘ (Errcode: 2)
160412  6:21:04 [ERROR] Can‘t start server: can‘t create PID file: No such file or directory
160412 06:21:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
应该是/var/run/mysqld目录不存在,系统无法在此目录找到pid文件
 
解决:新建目录,在目录下面建立pid文件
 mkdir /var/run/mysqld
在目录下面新建mysqld.pid文件,并授权该目录下面的所有文件为mysql用户,mysql组
 
[root@Centos log]# cd /var/run/mysqld
[root@Centos mysqld]# touch mysqld.pid
[root@Centos run]# chown -R mysql.mysql  mysqld
 
 
接着去修改mysqlku里面user表
update mysql.user set password = password(‘your pwd‘);
 
最后刷新权限
flush privileges;
 
最后再启动mysql服务
 
之前你使用免密码登陆之后,mysql服务已经被启动了,是以无授权表方式启动的,当你update改完密码之后,需要重启mysql服务,你会这样
/etc/init.d/mysqld stop
 
此时他会提示你PID文件不存在。因为你之前启动不是使用/etc/init.d/mysqld  start 启动的因此就不会生成pid文件
所以不能通过这样重启。
 
正确重启方式:
mysqladmin -u root -p shutdown
/etc/init.d/mysqld start

mysql root 忘记密码

标签:shutdown   style   databases   art   init.d   多用户   用户数   password   null   

原文地址:https://www.cnblogs.com/SunshineLittleCat/p/8279680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!