MySQL导出导入

导出整个数据库:

mysqldump -h [host] -P [port] -u [user] -p [dbname] > [dbfile].sql

导出数据库结构(没有数据)

mysqldump -h [host] -P [port] -u [user] -p -d [dbname] > [dbfile].sql

导出一张表

mysqldump -h [host] -P [port] -u [user] -p [dbname] [tablename1] [tablename2] > [db_tablefile].sql

导出一张表结构

mysqldump -h [host] -P [port] -u [user] -p -d [dbname] [tablename1] [tablename2] > [db_tablefile].sql

删除数据库:

DROP DATABASE IF EXISTS [dbname];

创建数据库

CREATE DATABASE [dbname] DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CHARACTER SET可以用utf8或者utf8mb4,后者是标准4字节utf8,支持emoji。建议使用后者。

对应的COLLATE可以使用utf8_general_ci或者utf8_bin(对应的utf8mb4_general_ci和utf8mb4_bin),其中general_ci不区分字段内容大小写,bin区分。建议使用前者,在创建密码表的时候可以对表单独设置COLLATE。

导入数据库

SOURCE [path]/[dbname].sql

在实际使用过程中,默认导出的数据库文件会很大,我们可以在导出的过程中进行压缩,这里采用主流的gzip和xz对备份文件进行压缩。

mysqldump -h [host] -P [port] -u [user] -p [dbname] | gzip > [dbfile].sql.gz
mysqldump -h [host] -P [port] -u [user] -p [dbname] | xz > [dbfile].sql.xz

相对应的导入

gzip -dc < [dbfile].sql.gz | mysql -h [host] -u [user] -P [port] -p [dbname]
xz -dc < [dbfile].sql.xz | mysql -h [host] -u [user] -P [port] -p [dbname]

此条目发表在数据库分类目录,贴了标签。将固定链接加入收藏夹。