作为站点或服务器运维人员,网站数据备份与还原操作是必须熟练的。MySQL 数据库的导出和导入操作是必不可少的,对于一般的用户,可能使用的比较多的是 phpMyAdmin 这样的可视化操作界面,但是这种界面操作在数据库比较大的情况下,经常出错。
如果你对Linux下的命令比较熟悉,并且自己使用的是 vps 或云服务器的话,可以使用 MySQL 相关命令来导出和导入数据库,非常方便高效!
导入/导出
1、导出数据库
导出数据库为 db_wp.sql.gz 文件
mysqldump -u 数据库用户名 -p 数据库密码 --add-drop-table --complete-insert 数据库名 | gzip > db_wp.sql.gz
请注意根据自己的实际情况,修改上面的“数据库用户名”、“数据库密码”、“数据库名”为具体的值,一般来说,“数据库用户名”应该使用最高权限的 root,数据库密码应该为 root 用户的密码
2、导入数据库
因为我们刚才导出的数据库是 gz 压缩的,所以导入前我们需要解压:
gzip -d db_wp.sql.gz
解压出来的文件为 db_wp.sql,然后导入到数据库:
mysql -u 数据库用户名 -p 数据库密码 数据库名 < db_wp.sql --default-character-set=utf8
常见报错
在操作过程中,可能会出现 mysql server has gone away
的错误,这是数据库太大,缓存不够或操作超时导致的,可以修改下 mysql 的配置来解决:
1、打开配置文件(这里演示的是军哥的 lnmp 下的配置文件,如果你的路径不是这个,自己找到)
vi /etc/my.cnf
2、找到 wait_timeout
、interactive_timeout
两个变量,设置值为:
wait_timeout=2880000
interactive_timeout = 2880000
如果没有这两个参数,直接添加即可
3、再找到max_allowed_packet
,增加这个变量的值,比如 100M (也可以设置自己需要的大小)
max_allowed_packet = 100M
max_allowed_packet
参数的作用是,用来控制其通信缓冲区的最大长度。其他参数可以根据自己需要进行调整。
4、重启 mysql 服务即可
/etc/init.d/mysql restart
相关推荐
- Duplicacy CLI 快速入门指南
- Duplicity:企业级的增量备份与数据恢复工具
- LNMP 编译安装 ngx_pagespeed 模块给网站提速!
- LNMP编译Nginx启用Brotli压缩算法
- My-BookMark:自建多用户的在线书签管理系统
- 手动开启typecho对Emoji表情的支持
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/464.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。