当前情况:已知linux root密码,mysql密码不知道,有程序运行不可更改root密码,想导出mysql的数据。
具体方法如下:
1,登录到服务器,修改mysql配置文件/etc/my.cnf,在[mysqld]段下增加skip-grant-tables,并重启mysql。
2,此时访问mysql不需要验证,使用mysql -uroot即可连接。
3,导出数据,这里以使用mysqldump导出data库到/mnt为例,linux命令为mysqldump -uroot data > /mnt/data.sql
4,导出数据后修改mysql配置文件/etc/my.cnf,删除或注释skip-grant-tables配置,并重启服务器,此时mysql恢复需要验证的状态。
这种方法涉及重启mysql,可能会造成程序运行异常。如果需要修改mysql密码,可在第2步后执行下列操作,序号接第2步:
3,进入mysql库,修改密码为123456,下面命令适用于5.7+版本。
use mysql;
update mysql.user set authentication_string=password(‘123456′) where user=’root’ and Host = ‘localhost’;
低于5.7版本可用下面命令:
use mysql;
UPDATE user SET password=PASSWORD(‘123456′) WHERE user=’root’;
4,导出数据后修改mysql配置文件/etc/my.cnf,删除或注释skip-grant-tables配置,并重启服务器,此时mysql恢复需要验证的状态。