如何恢复mysql数据库的root账户权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何恢复mysql数据库的root账户权限相关的知识,希望对你有一定的参考价值。
参考技术A 一、用SET PASSWORD命令
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
二、
用mysqladmin
mysqladmin -u root password "newpass"
如果root已经设置过密码,采用如下方法
mysqladmin -u root password oldpass "newpass"
三、
用UPDATE直接编辑user表
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
四、导出数据,重装,导入数据
/var下权限批量处理错误,chown -R root:root /var 导致mysql无法访问,mysql中数据很重要,如何能够恢复!
我做了相关处理:
1、我对比其他ubuntu11.04的/var/lib和/var/run下的所有mysql相关,恢复了正确的权限,但是依然没有解决,访问mysql提示'/var/run/mysqld/mysqld.sock' (111);
2、root@mail:~# ps -ef |grep mysql
root 30563 30253 0 23:38 pts/9 00:00:00 grep --color=auto mysql
root@mail:~# /etc/init.d/mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
3、root@mail:/var/run/mysqld# ll
总用量 0
drwxr-xr-x 2 mysql root 60 2012-03-20 11:46 ./
drwxr-xr-x 19 root root 760 2012-05-18 23:37 ../
srwxrwxrwx 1 mysql mysql 0 2012-03-20 11:46 mysqld.sock=
情况就是这样,那位高手指点一下,一个哥们本来拿我服务器做邮件服务,付权限的时候悲剧了,系统重做好办,但是我数据库里的东东很重要啊,希望大家帮帮忙,能够恢复mysql就行。
chown mysql:mysql 目录
应可恢复正常
注意下次不要随便修改不清楚权限的目录权限了。 参考技术A 首先, 保证/var和/var/lib可以让mysql进入, e.g. /var和/var/lib是755
然后, 给回权限/var/lib/mysql/
chown mysql:mysql /var/lib/mysql
chmod 755 /var/lib/mysql
最后, 检查/etc/my.cnf
[mysqld]
...
socket=/var/lib/mysql/mysqld.sock
以上是关于如何恢复mysql数据库的root账户权限的主要内容,如果未能解决你的问题,请参考以下文章
mysql中的root账户不小心删除了,怎么恢复root用户
/var下权限批量处理错误,chown -R root:root /var 导致mysql无法访问,mysql中数据很重要,如何能够恢复!