02__mysql-数据库迁移
02__mysql-数据库迁移
1、mysqldump
1>备份/导出数据
1<命令语法
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -p123456 --database cmdb > /data/backup/cmdb.sql
2<压缩备份
导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz
例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
3<备份同个库多个表
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql
例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql
4<同时备份多个库
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql
例如:mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql
5<备份实例上所有的数据库
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --all-databases > 文件名.sql
例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql
6<备份数据出带删除数据库或者表的sql备份
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql
例如:mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql
7<备份数据库结构,不备份数据
格式:mysqldump -h主机ip -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql
例如:mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql
2>恢复/导入数据
1<命令语法
语法:
mysql -h主机ip -P端口 -u用户名 -p密码 数据库名 < /opt/mytest_bak.sql #库必须保留,空库也可
说明:指定dbname,相当于use <dbname>
2<使用 mysql 命令导入
使用 mysql 命令导入数据库格式如下:
mysql -u用户名 -p 数据库名 < 数据库名.sql
以下实例将备份的数据库 abc.sql 导入到数据库中:
# mysql -uroot -p123456 < abc.sql
3<恢复整个数据库
mysql -u b_user -h 101.3.20.33 -p'H_password' -P3306 < all_database.sql
3<使用 source 命令导入
使用 source 命令需要我们先登录到 mysql 中,并创建一个空的数据库:
导入数据表
mysql> create database abc; # 创建数据库
mysql> use abc; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /home/abc/abc.sql # 导入备份数据库
导入数据库
mysql> source /home/abc/abc.sql # 导入备份数据库