备份MySQL数据库并恢复
备份的方法很多, 官方文档 http://dev.mysql.com/doc/
本文主要讲如何使用mysqldump备份并恢复MySQL. mysqldump是一个高效的备份MySQL数据库的工具.它创建一个*.sql文件,该文件带有原数据库的DROP table, CREATE table 和INSERT into sql-statements. 使用mysqldump,你可以用一条命令备份本地数据库并且同时恢复到远端服务器.
基本用法:
backup # mysqldump -u root -p[password] [database_name] > dumpfilename.sql
restore # mysqldump -u root -p[password] [database_name] < dumpfilename.sql
注意 -u 后面有空格 -p没有空格直接跟密码 restore数据库时 目标数据库必须存在 也就是先要创建一个数据库 才能做restore的动作
下面开始举例子:
1.备份单个数据库
# mysqldump -u root -p[password] store > store.sql
将数据库sotre备份至当前目录并且命名为store.sql. store.sql将包含store的drop table, create table and insert命令的所有tables.
2.备份多个数据库
如果你想备份多个数据库,首先请指定你想备份的数据库的名字
#mysql -u root -p[password] 进入数据库
mysql> show database;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bugs |
| mysql |
| store |
+--------------------+
4 rows in set (0.00 sec)
你想备份数据库store和bugs, 执行命令
#mysqldump -u root -p[password] --databases bugs store > bugs_store.sql
验证bugs_store.sql包含两个数据库
# grep -i "Current database:" /tmp/bus_store.sql
-- Current Database: `mysql`
-- Current Database: `store`
3.备份所有数据库
#mysqldump -u root -p[password] --all-databases > /tmp/all-databases.sql
4.备份指定table
备份数据库store中的accounts_contacts到目录/tmp/store_accounts_contacts.sql
# mysqldump -u root -p[password] store accounts_contacts \
> /tmp/store_accounts_contacts.sql
如何恢复数据库
1.恢复数据库store.sql到数据库store. 首先,数据库store必须存在,创建数据库store如下
#mysql -u root -p[password]
mysql> create database store;
mysql> quit;
恢复数据库命令
# mysql -u root -p[password] store < /tmp/store.sql
2.备份本地数据库的同时恢复数据库到远端服务器
备份本地数据库store 恢复store到远端服务器并且重命名为store1
请注意必须先在远端服务器创建数据库store1
# mysqldump -u root -p[password] store | mysql -u root -p[password] --host=remote-server -C store1
好了,问题来了:
备份多个数据库到一个文件bugs_store.sql后, 如何只恢复其中一个数据库store呢?
操作过程中出现的问题:
备份后 在远端恢复数据之后 打开网站 显示报错
Call to undefined function: mysqli_connect(). Please install the MySQL Connector for PHP
于是打开info.php页面, 发现Additional.ini files parsed一项比原来少了很多, 一项一项安装添加比较 始终还是报同样的错误
重新配置php5-mysql好了,执行命令
apt-get purge php5-mysql
apt-get autoremove
apt-get install php5-mysql
输出以下信息
Selecting previously unselected package php5-mysql.
(Reading database ... 331424 files and directories currently installed.)
Preparing to unpack .../php5-mysql_5.6.14+dfsg-0+deb8u1_amd64.deb ...
Unpacking php5-mysql (5.6.14+dfsg-0+deb8u1) ...
Processing triggers for php5-fpm (5.6.14+dfsg-0+deb8u1) ...
Setting up php5-mysql (5.6.14+dfsg-0+deb8u1) ...
Creating config file /etc/php5/mods-available/mysql.ini with new version
php5_invoke: Enable module mysql for fpm SAPI
php5_invoke: Enable module mysql for cli SAPI
Creating config file /etc/php5/mods-available/mysqli.ini with new version
php5_invoke: Enable module mysqli for fpm SAPI
php5_invoke: Enable module mysqli for cli SAPI
Creating config file /etc/php5/mods-available/pdo_mysql.ini with new version
php5_invoke: Enable module pdo_mysql for fpm SAPI
php5_invoke: Enable module pdo_mysql for cli SAPI
Processing triggers for php5-fpm (5.6.14+dfsg-0+deb8u1) ...
重新配置完毕, 打开info.php页面,发现好多配置瞬间有了. 再次访问server_ip 正常访问. 问题解决.
No comments:
Post a Comment