MySQL备份还原

备份数据库,备份表

  1. 导出数据库,表结构+数据

    1
    2
    # mysqldump -h数据库地址 -u用户名 -p密码 数据库名 > 导出的文件名
    > mysqldump -hlocalhost -uroot -p123456 db_name > ./db_name.sql
  2. 导出数据库,仅表结构。-d 不导出数据只导出结构,--add-drop-table 在每个create语句之前增加一个drop table

    1
    > mysqldump -hlocalhost -uroot -p123456 -d --add-drop-table db_name > ./db_name.sql
  3. 导出一个表,数据+表结构(不加-d参数)

    1
    2
    3
    4
    5
    mysqldump -h数据库地址 -u用户名 -p密码 数据库名 表名 > 导出的文件名
    # mysqldump -hlocalhost -uroot -p123456 db_name table_name > ./db_name_table_name.sql

    # 带where条件的mysqldump
    > mysqldump -hlocalhost -uroot -p123456 test auth_group --where="id>100" > ./test_auth_group.sql

还原,执行备份的SQL文件

  1. 在mysql命令行内使用source命令

    1
    2
    3
    4
    5
    #进入mysql数据库控制台
    > mysql -uroot -p123456
    mysql> use test
    # mysql> set names utf8; #先确认编码,如果不设置可能会出现乱码,注意不是UTF-8
    mysql> source /home/mysql/test.sql #使用source命令,后面参数为脚本文件
  2. 在Linux命令行使用 -e 参数

    1
    > cat /home/mysql/test.sql | mysql -uroot -p123456 -e