如何利用MySQL命令高效备份数据库?

avatar
作者
猴君
阅读量:0
使用以下MySQL命令可以备份名为_Doris的数据库:,``sql,mysqldump -u 用户名 -p _Doris > backup.sql,``

MySQL命令简介

如何利用MySQL命令高效备份数据库?

常见备份命令介绍

备份命令备份速度恢复速度介绍功能一般用于
cp 物理备份、灵活性低 很弱 少量数据备份
mysqldump 逻辑备份、适用所有存储引擎 一般 中小型数据量备份
xtrabackup 较快 较快 实现InnoDB热备、对存储引擎有要求 强大 较大规模的备份

备份类型

1、热备份:当数据库进行备份时,数据库的读写操作均不受影响。

2、温备份:当数据库进行备份时,数据库的读操作可以执行,但不能执行写操作。

3、冷备份:当数据库进行备份时,数据库不能进行读写操作,即数据库要下线。

mysqldump备份

1、mysqldump命令介绍

 [root@]> mysqldump -help Usage: mysqldump [OPTIONS] database_name [tables] OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR     mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help

2、登录选项

 -u user:指定用户 -h host:指定主机 -p:表示要使用密码 -E, --events: 备份事件调度器 -R, --routines: 备份存储过程和存储函数

3、备份选项

 --all-databases:备份所有数据库 --databases db1 db2:备份指定的数据库 --single-transaction:对事务引擎执行热备 --flush-logs:更新二进制日志文件 --master-data=2         1:每备份一个库就生成一个新的二进制文件(默认)         2:只生成一个新的二进制文件 --quick:在备份大表时指定该选项

4、查看所属数据库、用户的权限

 -查看mysql数据库中的所有用户: SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; -查看数据库中具体某个用户的权限: SHOW GRANTS FOR 'user'@'localhost';  或 SELECT * FROM mysql.user WHERE user='root'\G;  -修改用户权限: GRANT ALL ON *.* TOuser@localhost; FLUSH PRIVILEGES;

5、向数据库施加读锁

 FLUSH TABLES WITH READ LOCK;

6、导出命令大全

 导出education数据库里面的users表的表数据和表结构 mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] education users > d:/user.sql 导出包括系统数据库在内的所有数据库(all.sql默认保存在bin文件夹下面) mysqldump -uroot -proot --all-databases > all.sql 导出多张表: mysqldump -uroot -proot --databases test --tables t1 t2 > two.sql 只导出表结构不导表数据,添加“-d”命令参数 mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education users > d:/user.sql 只导出表数据不导表结构,添加“-t”命令参数 mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education users > d:/user.sql 只导出test数据库的表结构 mysqldump -uroot -proot --no-data --databases test > s1.sql

7、导入命令大全

 格式:mysql -h[ip] -P(大写)端口 -u[用户名] -p[密码] [数据库名] < d:XX.sql(路径)  mysql -uroot -proot -h127.0.0.1 -P3306 education < d:/database.sql mysql -uroot -proot -h127.0.0.1 -P3306 < d:/all_database.sql  命令行导入 mysql> use test; mysql> source /home/test/database.sql

8、脚本备份示例

 #!/bin/bash #NAME:数据库备份 #DATE:*/*/* #USER:*** #设置本机数据库登录信息 mysql_user="user" mysql_password="passwd" mysql_host="localhost" mysql_port="3306" mysql_charset="utf8mb4" date_time=date +%Y-%m-%d-%H-%M #保存目录中的文件个数 count=10 #备份路径 path=/***/

相关问题与解答

1、问题一:如何定期自动备份MySQL数据库?

答:可以使用cron定时任务来实现定期自动备份,首先编写一个shell脚本,包含备份命令,然后通过crontab命令编辑定时任务配置文件,设置备份的时间和频率,每天凌晨2点执行备份脚本,脚本示例如下:

 #!/bin/bash mysqldump -u root -p password --all-databases > /path/to/backup/directory/alldb_$(date +%Y%m%d).sql

在crontab中添加以下内容:

 0 2 * * * /path/to/script/backup.sh

2、问题二:如何只导出MySQL数据库中的表结构而不包含数据?

答:使用mysqldump命令并添加--no-data参数即可只导出表结构。

 mysqldump -u root -p --no-data --databases your_database > /path/to/output/file.sql

以上就是关于“mysql 命令 备份数据库_Doris MySQL命令简介”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!