侧边栏壁纸
博主头像
小麦味气泡水博主等级

Be a gentle and powerful person.

  • 累计撰写 26 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Mysql数据库备份还原(教程版)

小麦味气泡水
2023-11-03 / 0 评论 / 1 点赞 / 30 阅读 / 3058 字

Mysql数据库备份恢复

1、务必确保数据库版本为5.7或者8.0(这两个版本数据可跨版本恢复)

2、确保源数据库和目标数据库必要参数已被修改,可参考必要参数修改说明

一、mysql数据库命令备份恢复

1、mysql数据库备份:

mysqldump -h127.0.0.1 -uecology -p -R  ecology > /data/ecology_test_1103.sql

2、将备份的数据库文件传输至目标端(跨服务器可参考 Oracle备份还原

3、mysql数据库恢复:

mysql -h127.0.0.1 -uecology --default-character-set=utf8  -p  ecology < /data/ecology_test_1103.sql

参数说明:

参数说明:

-h      数据库地址

-u      用户名(备份和恢复的环境用户名要保持一致)

-p      密码

-R     备份存储过程和函数

--default-character-set=utf8 设置备份存储编码

ecology    备份恢复的数据库名

4、备份恢复过程中注意点:

1、注意:如果备份准备用来做主从恢复,需加上 --master-data参数,形如:

mysqldump -uroot -p -R --triggers --master-data --default-character-set=utf8 ecology > ecology_test_20231103.sql

2、有时因为字符集问题(常见的是windows环境导出的sql文件中包含有'/'字符,导入到linux环境该字符被标识为目录标识),恢复是需要指明字符集,命令如下

mysql -uroot -p --default-character-set=utf8 ecology < ecology_test_20231103.sql

3、如果数据准备恢复至其他用户(原用户与目标用户名不一致),需在目标库建一个相同权限的同名用户即可,或者在备份完成后对备份文件进行处理,在linux下执行如下命令 

 [root@localhost ~]# sed -i "s/DEFINER=\`[^\`]\+\`@\`[^\`]\+\`//g" ecology_test_20231103.sql

 [root@localhost ~]# sed -i "s/DEFINER = '[^']\+'@'[^']\+'//g" ecology_test_20231103.sql

4、如果数据准备恢复至其他用户(原用户与目标用户名不一致)执行3以后依旧报错,修改恢复语句,并加上 -f 参数,会有18行和24行报错,可以忽略直至恢复完成(阿里云RDS中会遇到)

mysql -h127.0.0.1 -uecology --default-character-set=utf8 -f -p  ecology < /data/ecology_test_1103.sql

1

评论区