MySQL命令行功能非常强大,甚至可以进行数据库的备份,学习一下如何用命令行备份数据库。
假设
数据库地址:127.0.0.1
数据库用户名:root
数据库密码:pwd
数据库1名称:blog
数据库1有表:post,word,photo
数据库2名称:web
备份
:one:备份整个数据库到指定目录
:star:格式:mysqldump -u 数据库用户名 -p 数据库密码 数据库名称 > /输出路径/文件名字.sql
mysqldump -uroot -ppwd blog > ./backup_database_blog.sql
即能备份出名为backup_database_blog.sql的数据库备份文件。
:two:备份一个表到指定目录
:star:格式:mysqldump -u 数据库用户名 -p 数据库密码 数据库名称 表名称 > /输出路径/文件名字.sql
mysqldump -uroot -ppwd blog word> ./backup_table_word.sql
即能备份出名为backup_table_word.sql的数据库单表的备份文件。
:three:备份多个表到指定目录
:star:格式:mysqldump -u 数据库用户名 -p 数据库密码 数据库名称 表名称 表名称 表名称 > /输出路径/文件名字.sql
mysqldump -uroot -ppwd blog post word photo > ./backup_table_post_word_photo.sql
即能备份出名为backup_table_post_word_photo.sql的数据库多表的备份文件。
:four:直接将MySQL数据库压缩备份到指定目录
:star:格式:mysqldump -u 数据库用户名 -p 数据库密码 数据库名称 | gzip > /输出路径/文件名字.sql.gz
mysqldump -uroot -ppwd blog | gzip > ./backup_database.sql.gz
即能备份出名为backup_database.sql.gz的数据库的压缩文件。
:five:备份MySQL数据库为带删除表的格式到指定目录
:information_source:带删除表能够让该备份覆盖原有数据库而不需要手动删除原有数据库。
:star:格式:mysqldump --add-drop-table -u 数据库用户名 -p 数据库密码 数据库名称 > /输出路径/文件名字.sql
mysqldump --add-drop-table -uroot -ppwd blog > ./backup_database_blog.sql
即能备份出带删除表名为backup_database_blog.sql的数据库的备份文件。
:six:同时备份多个MySQL数据库到指定目录
:star:格式:mysqldump -h 数据库地址 -u 数据库用户名 -p 数据库密码 --databases 数据库1名称 数据库2名称 > /输出路径/文件名字.sql
mysqldump -h127.0.0.1 -uroot -ppwd --databases blog web > ./backup_blog_and_web.sql
即能备份出名为backup_blog_and_web.sql的数据库的备份文件。
:seven:仅备份MySQL数据库结构到指定目录
:star:格式:mysqldump --no-data -h 数据库地址 -u 数据库用户名 -p 数据库密码 --databases 数据库1名称 数据库2名称 > /输出路径/文件名字.sql
mysqldump --no-data -h127.0.0.1 -uroot -ppwd --databases blog web > ./backup_no-data_blog_and_web.sql
即能备份出名为backup_no-data_blog_and_web.sql的数据库的备份文件。
:eight:备份服务器上的所有MySQL数据库到指定目录
:star:格式:mysqldump --all-databases -h 数据库地址 -u 数据库用户名 -p 数据库密码 > /输出路径/文件名字.sql
mysqldump --all-databases -h127.0.0.1 -uroot -ppwd > ./backup_all_database.sql
即能备份出名为backup_all_database.sql的数据库的备份文件。
还原
:one:还原MySQL数据库从数据库sql文件
:star:格式:mysql -h 数据库地址 -u 数据库用户名 -p 数据库密码 数据库名称 < /路径/文件名字.sql
mysql -h127.0.0.1 -uroot -ppwd blog < ./backup_database_blog.sql
即能还原出名为backup_database_blog.sql的数据库。
:two:还原压缩的MySQL数据库从压缩文件
:star:格式:gunzip < 压缩备份文件名.sql.gz | mysql -h 数据库地址 -u 数据库用户名 -p 数据库密码 数据库名称
gunzip < backup_database.sql.gz | mysql -h127.0.0.1 -uroot -ppwd blog
即能还原出名为backup_database.sql.gz的数据库。
:three:远程拷贝本地数据库至远程数据库
:information_source:此例为将本地数据库LocBlog复制到远程数据库名为SerBlog中。前提:远程数据库必须有名为SerBlog的数据库
:star:格式:mysqldump -h 本地数据库地址 -u 本地数据库用户名 -p 本地数据库密码 本地数据库名称 | mysql --host=远程数据库IP地址 -u 远程数据库用户名 -p 远程数据库密码 -C 远程数据库名称
mysqldump -h127.0.0.1 -uroot -ppwd LocBlog | mysql --host=***.***.***.*** -u 远程数据库用户名 -p 远程数据库密码 -C SerBlog
即远程拷贝本地数据库至远程数据库。