一 准备系统
为了保险起见,需要准备另一个CentOs操作系统,可以说服务器也可以是本机虚拟机上的。
二 备份数据库文件
首先 cat /etc/my.cnf
查看datadir所对应的目录 (如文件不在当前位置,可使用find / -name my.cnf 命令查询文件位置),此目录就说数据库数据所在文件夹, 一般为/var/lib/mysql
目录 把mysql整个文件夹拷贝下来到本地以作备份,我使用的是xFtp工具。
三 在另一个系统中配置MySql
这里可以参考我以前写的博客阿里云 CentOS 7配置Mysql详细教程
当然你也可以直接在本系统中卸载MySql在重新安装 可以参考这篇博客 CentOS彻底删除Mysql
四 关闭MySql服务,把备份好的数据库文件拷贝回去
关闭MySql服务service mysqld stop
把第二步拷贝的mysql文件放到/var/lib
目录下,把现有的mysql文件夹替换掉,更改mysql文件夹的所有者以及分组
// 更改所有者
chown -R mysql /var/lib/mysql
// 更改组
chgrp -R mysql /var/lib/mysql
然后再cat /etc/my.cnf
查看datadir所对应的目录是否为/var/lib/mysql
不是的话 vi /etc/my.cnf
, 按 i
键进入编辑模式进行修改,编辑完成后按ESC键,输入:wq
退出并保存。
最后再开启MySql服务service mysqld start
五 登录Mysql
输入
mysql -u root -p
后再输入密码,发现报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
于是乎 百度 发现是密码错误的原因,可以跳过密码后在修改。只需要在MySQL的配置文件中添加一句skip-grant-tables
在登陆不输入密码即可成功!详细过程请查看这篇博客CentOS免密登录Mysql
至此 结束。