2.1 使用 mysqldump 的 前提:需要开启 binlog 日志功能
# 1. 修改mysql的配置文件
vim /etc/my.cnf
[mysqld]
# binlog
# 配置log-bin后,必须配置server-id,MySQL才能启动;
# server-id在所有的主从服务之间要保证唯一;
log-bin=mysql-bin
server-id=1
# 2.配置完毕之后,重启mysql服务
service mysqld restart
2.2 导出 mysql 中的所有数据库的 表结构 以及 表数据
[root@server01 opt]# mysqldump --all-databases --master-data -uroot -p > dbdump.db
Enter password:
2.3 导出 mysql 中某个单独数据库的 表结构 以及 表数据
[root@server01 opt]# mysqldump -uroot -p -h127.0.0.1 -P3306 test > test.sql
Enter password:
2.4 导出 mysql 中的数据库 表结构,不包含 表数据
[root@server01 opt]# mysqldump -uroot -p -h127.0.0.1 -P3306 --add-locks -q -d test > test.sql
Enter password:
3. source命令备份与还原
#还原格式:
SOURCE 导入文件的路径;
2. 还原
要先登录
create database db1;
use db1;
source 路径/备份.sql;
执行这个sql脚本文件
4. 备份、还原db1
数据库中的数据
4.1 备份 db1
数据库
[root@server01 opt]# mysqldump -uroot -p -h127.0.0.1 -P3306 db1 > db1.sql
Enter password:
[root@server01 opt]#
[root@server01 opt]# ls -ll -h db1.sql
-rw-r--r-- 1 root root 3.3K Feb 8 15:12 db1.sql
[root@server01 opt]#
4.2 删除db1
数据库中所有的内容
mysql> drop database db1;
Query OK, 2 rows affected (0.02 sec)
4.3 创建一个新的db1
数据库
导入数据之前,需要创建数据库。
mysql> create database db1 charset utf8;
Query OK, 1 row affected (0.01 sec)
4.4 选中数据库
mysql> use db1; -- 使用db1数据库
Database changed
mysql>
mysql> select database(); -- 查看当前使用的数据库
+------------+
| database() |
+------------+
| db1 |
+------------+
1 row in set (0.00 sec)
mysql>
mysql> show tables; -- 查看数据库中的表,当前没有表
Empty set (0.00 sec)
mysql>
4.5 使用SOURCE命令还原数据
-- 使用 source 命令导入数据
mysql> source /opt/db1.sql;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
...
-- 查看当前使用的数据库为 db1
mysql> select database();
+------------+
| database() |
+------------+
| db1 |
+------------+
1 row in set (0.00 sec)
mysql>
-- 查看当前db1中的数据库表,可以看到已经成功导入
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| product |
| stu3 |
+---------------+
2 rows in set (0.00 sec)
mysql>
5. mysql 命令导入数据
在上面我们使用 source 命令来还原数据,但是这个缺陷是要先进行 mysql 登录。这个命令如果写在 shell 脚本中还没那么方便。
那么我们可以使用 mysql 命令来直接导入数据。
格式如下:
mysql -u用户名 -p密码 数据库名称 < 备份文件
执行示例如下:
[root@server01 opt]# mysql -uroot -p db1 < db1.sql
Enter password:
[root@server01 opt]#
本文分享自微信公众号 - 海洋的渔夫(DevOpsCommunity)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。