最近迁站(关于迁站的详细操作可以查看WordPress网站搬迁站操作教程(日志)),在备份网站mysql数据库的时候发现数据很大,未导出的数据库文件总大小1.8G左右,尝试了用最常用的phpMyAdmin面板导入导出,发现导出mysql数据库可以,但是导入到新服务器的phpMyAdmin不成功,总是导入几分钟后就提示502超时。
后来试过数据库Navicat for MySQL客户端、帝国备份王,都是出现各种错误。后来通过咨询阿里客服,找到一个非常简单、不易出错、执行效率高的mysql数据库导入导出方法,最主要的是对于超大mysql数据库导入导出非常友好。现总结分享给有需要的站长。
一、直接用mysql客户端备份和还原大数据库文件(推荐)
推荐mysql备份文件超过1G大小的使用此方法,亲测1.8G数据库备份文件,使用此方法几分钟就导入并恢复成功了。而且使用此方法不会报错,也不会超时,使用简单方便。注意操作前一定要备份数据库!!!
mysql导入数据库,首先两个方法都需要登录到服务器。登陆到服务器执行:
mysql -u用户名 -p密码
(1)导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
或
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
- mysqldump -uroot -p abc_com > /data/wwwroot/huaiyinjie.sql
回车后提示输入用户密码,导出成功,文件在/data/wwwroot/目录下,huaiyinjie.sql是导出之后的文件的名字。
注意:如果只导出表结构,在-p后面加上-d即可。
(2)、导入数据库
方法1:直接导入
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
- # mysql -uroot -ppassword XXX < /data/wwwroot/huaiyinjie.sql
上面这行命令会使用 root 身份,把当前目录下的 huaiyinjiie.sql 恢复到 XXX 这个数据库里面。
方法2:进入数据库先建空数据库,再导入数据:
- MariaDB [(none)]> create database XXX; //建立空数据库XXX
- MariaDB [(none)]> use XXX; //选择数据库XXX
- MariaDB [(none)]> set names utf8; //设置数据库导入编码
- MariaDB [(none)]> source /data/wwwroot/huaiyinjie.sql; //导入数据(注意sql文件的路径)
操作截图:
数据库导入编码和phpMyAdmin面板导入工具界面使用的编码相同即可,即默认设置为utf8。
二、常用mysql数据库导入和导出方法:phpMyAdmin面板工具
在总结备份和导入超大mysql数据库方法之前,先介绍一下我常用的phpMyAdmin面板导入导出方法,对于500M以内的数据库,用此方法操作还是很不错的,但是超过这个大小的数据库文件就不行了。
登录phpMyAdmin面板,输入账号和密码,选择要操作的数据库,然后操作导入和导出,非常简单。
我一般都会选择格式为“SQL”,并将备份的数据库直接保存到服务器的save/
文件夹中。导入操作也是非常简单,这里不再复述,只是对于大数据库(500M以内),有时候需要修改以下参数:
php.ini文件中修改大小限制,要比数据库文件大,可根据实际情况调整:
- upload_max_filesize = 50M
- memory_limit = 192M
- post_max_size = 100M
可修改成:
- upload_max_filesize = 200M
- memory_limit = 192M
- post_max_size= 200M
修改php.ini文件中超时时间:
max_execution_time = 600
改为 max_execution_time = 6000
需要重新启动php,新的设置才会生效!
重启php服务命令:/bin/systemctl restart php-fpm.service
在新服务器phpMyAdmin中新建同数据库名的数据库,导入备份的数据库到新服务器;如果数据库文件超过50M,需要修改php.ini文件中上传文件大小限制。
三、使用帝国备份王
这个方法是备选方案,如果其他方法行不通的时候,可以考虑使用。不过我在操作使用的过程中,出现导入数据库出错,原因可能是我原来的数据库编码规则比较稀烂,导致使用帝国备份王工具导入和导出后,出现编码规则也稀烂的问题。
如果对这款软件使用比较熟练的朋友,可以考虑用一下,工具地址:http://ebak.phome.net/
至此,通过第三种方法,可以又快又不出错的导入和导出超1G大小的mysql文件。理论上还可以备份和还原更大的数据库文件,非常简单实用。
本文部分执行命令参考自:https://www.cnblogs.com/sung1024/p/11437223.html