简单记录

备份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  正常访问. 问题解决.

本文采用 知识共享署名 4.0 国际许可协议(CC-BY 4.0)进行许可。转载请注明来源: https://snowfrs.com/Backup-and-Restore-MYSQL-Database-using-mysqldump 欢迎对文中引用进行考证,欢迎指出任何不准确和模糊之处。