Centos mysql5.7物理文件目录导出数据
何为:由于服务器中毒,只能从云盘拷贝数据文件,然后用于恢复数据库数据
Step1. centos几个基本的数据库路径
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
数据文件: /var/lib/mysql
Step2. 关闭数据库
systemctl stop mysqld
Step3. 修改mysql配置文件,切换数据目录
vi /etc/my.cnf
# 将datadir参数设置为需要切换的数据目录
Step4. 设置切换后目录的权限
chown -R mysql:mysql 文件夹
# 其实就是给这个目录执行和读写的权限,我直接用winscp可视化可是可以实现,命令应该也可以
Step5. 重启数据库
systemctl restart mysqld #重启mysql
systemctl restart mysqld # 启动mysql
Step6. 导出sql
# 导出表结构和数据 mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
[root@izuf61zeijykedih7rprodz /]# mysqldump -uroot -p project > project.sql
Enter password:
Step7.导出的时候报了一个错,主要原因是之前数据库是5.5,现在是5.7
mysqldump: Couldn’t execute ‘SHOW VARIABLES LIKE ‘gtid_mode’’: Table ‘performance_schema.session_variables’ doesn’t exist (1146)
原因:这是mysql服务器升级的结果,我之前由5.5升级到了5.7了
解决办法:
1、mysql_upgrade -u root -p --force #更新
2、systemctl restart mysqld #重启mysql
# 重启成功后再次执行导出命令即可