导出整个数据库:
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]