Mysql复制还原后root帐号权限丢失问题

问题如下:从一台机器复制mysql数据库文件到另一台机上后,mysql的root@localhost突然间权限全无, show databases发现只有两个db:test和information_schema,连mysql数据库都没有。赋予root@localhost权限时提示没有权限。花费了大量时间查找,终于找到:http://stackoverflow.com/questions/1709078/how-can-i-restore-the-mysql-root-users-full-privileges

解决过程简列如下:

1. 以skip-grant-tables参数登录数据库

a.记录当前运行的mysqld的参数,使用命令ps aux | grep mysqld 找到参数

b.停止当前运行的mysql,使用命令 rc.d stop mysqld(archlinux特有,其他Linux分发版使用相应命令停止mysqld)

c. 在找到的参数后面添加 --skip-grant-tables,例如我这里使用参数:

 

  • /usr/bin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/mysql/.err --pid-file=/var/lib/mysql/.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --skip-grant-tables

 

来启动mysqld,注意启动后程序不会退出停止,可另开一个ssh登录到服务器。

d. 以mysql命令进入数据库,不加任何参数

2. 赋予root grant权限和super权限,再刷新一下,最后即可赋予root@localhost全部权限;

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';

 

转载于:https://www.cnblogs.com/friedwm/archive/2012/06/11/2544915.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值