起步
| 备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用 xtrabackup 工具来进行物理备份。 |
| 对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具为 mysqldump。逻辑备份就是备份sql语句, |
| 在恢复的时候执行备份的sql语句实现数据库数据的重现 |
逻辑备份
| mysqldump –u 用户名称 –h 主机名称 –p密码 待备份的数据库名称[tbname, [tbname...]]> 备份文件名称.sql |
| |
| mysqldump -uroot -p atguigudb1 > /var/lib/mysql/atguigu.sql |
| mysqldump -uroot -pxxxxxx --all-databases > all_database.sql |
| mysqldump -uroot -pxxxxxx -A > all_database.sql |
| mysqldump –u user –h host –p --databases [数据库的名称1 [数据库的名称2...]] > 备份文件名称.sql |
| |
| mysqldump -uroot -p --databases atguigu atguigu12 >two_database.sql |
| mysqldump -uroot -p -B atguigu atguigu12 > two_database.sql |
| mysqldump –u user –h host –p 数据库的名称 [表名1 [表名2...]] > 备份文件名称.sql |
| |
| |
| mysqldump -uroot -p atguigu book> book.sql |
| |
| |
| mysqldump -uroot -p atguigu book account > 2_tables_bak.sql |
| |
| mysqldump -uroot -p atguigu student --where="id < 10 " > student_part_id10_low_bak.sql |
| mysqldump -uroot -p atguigu |
| # 只备份结构的话可以使用 --no-data 简写为 -d 选项 |
| mysqldump -uroot -p atguigu --no-data > atguigu_no_data_bak.sql |
| # 只备份数据可以使用 --no-create-info 简写为 -t 选项 |
| mysqldump -uroot -p atguigu --no-create-info > atguigu_no_create_info_bak.sql |
| # mysqldump备份默认是不包含存储过程,自定义函数及事件的。可以使用 --routines 或 -R 选项来备份存储过程及函数,使用 --events 或 -E 参数来备份事件 |
| mysqldump -uroot -p -R -E --databases atguigu > fun_atguigu_bak.sql |
| --add-drop-database:在每个CREATE DATABASE语句前添加DROP DATABASE语句。 |
| --add-drop-tables:在每个CREATE TABLE语句前添加DROP TABLE语句。 |
| --add-locking:用LOCK TABLES和UNLOCK TABLES语句引用每个表转储。重载转储文件时插入得更快。 |
| --all-database, -A:转储所有数据库中的所有表。与使用--database选项相同,在命令行中命名所有数据库。 |
| --comment[=0|1]:如果设置为0,禁止转储文件中的其他信息,例如程序版本、服务器版本和主机。--skipcomments与--comments=0的结果相同。默认值为1,即包括额外信息。 |
| --compact:产生少量输出。该选项禁用注释并启用--skip-add-drop-tables、--no-set-names、--skipdisable-keys和--skip-add-locking选项。 |
| --compatible=name:产生与其他数据库系统或旧的MySQL服务器更兼容的输出,值可以为ansi、MySQL323、MySQL40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options或者no_field_options。 |
| --complete_insert, -c:使用包括列名的完整的INSERT语句。 |
| --debug[=debug_options], -#[debug_options]:写调试日志。 |
| --delete,-D:导入文本文件前清空表。 |
| --default-character-set=charset:使用charsets默认字符集。如果没有指定,就使用utf8。 |
| --delete--master-logs:在主复制服务器上,完成转储操作后删除二进制日志。该选项自动启用-masterdata。 |
| --extended-insert,-e:使用包括几个VALUES列表的多行INSERT语法。这样使得转储文件更小,重载文件时可以加速插入。 |
| --flush-logs,-F:开始转储前刷新MySQL服务器日志文件。该选项要求RELOAD权限。 |
| --force,-f:在表转储过程中,即使出现SQL错误也继续。 |
| --lock-all-tables,-x:对所有数据库中的所有表加锁。在整体转储过程中通过全局锁定来实现。该选项自动关闭--single-transaction和--lock-tables。 |
| --lock-tables,-l:开始转储前锁定所有表。用READ LOCAL锁定表以允许并行插入MyISAM表。对于事务表(例如InnoDB和BDB),--single-transaction是一个更好的选项,因为它根本不需要锁定表。 |
| --no-create-db,-n:该选项禁用CREATE DATABASE /*!32312 IF NOT EXIST*/db_name语句,如果给出--database或--all-database选项,就包含到输出中。 |
| --no-create-info,-t:只导出数据,而不添加CREATE TABLE语句。 |
| --no-data,-d:不写表的任何行信息,只转储表的结构。 |
| --opt:该选项是速记,它可以快速进行转储操作并产生一个能很快装入MySQL服务器的转储文件。该选项默认开启,但可以用--skip-opt禁用。 |
| --password[=password],-p[password]:当连接服务器时使用的密码。 |
| -port=port_num,-P port_num:用于连接的TCP/IP端口号。 |
| --protocol={TCP|SOCKET|PIPE|MEMORY}:使用的连接协议。 |
| --replace,-r –replace和--ignore:控制替换或复制唯一键值已有记录的输入记录的处理。如果指定--replace,新行替换有相同的唯一键值的已有行;如果指定--ignore,复制已有的唯一键值的输入行被跳过。如果不指定这两个选项,当发现一个复制键值时会出现一个错误,并且忽视文本文件的剩余部分。 |
| --silent,-s:沉默模式。只有出现错误时才输出。 |
| --socket=path,-S path:当连接localhost时使用的套接字文件(为默认主机)。 |
| --user=user_name,-u user_name:当连接服务器时MySQL使用的用户名。 |
| --verbose,-v:冗长模式,打印出程序操作的详细信息。 |
| --xml,-X:产生XML输出。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了