MySQL 导入 / 导出数据
也可以叫作 MySQL 数据的备份与恢复。
导出
导出一整个数据库:
$ mysqldump -hhost -Pport -uuser -ppasswd database > database.sql
导出某个数据库里面的特定几张表
$ mysqldump -hhost -Pport -uuser -ppasswd --single-transaction --verbose database table1 table2 > database.sql
对于 InnoDB 作为引擎的数据表,需要加 --single-transaction
参数。不然你需要锁表,并且需要有 LOCK TABLE
权限。
注意:即使用了 --single-transaction
,也不能在 dump 过程中修改表结构,比如 ALTER TABLE
, DROP TABLE
, RENAME TABLE
, TRUNCATE TABLE
。因为背后的多版本数据技术(multiversioning)并不能隔绝表结构的修改。
导入
$ mysql -hhost -Pport -uuser -ppassword < database.sql
或者可以先用 MySQL Cli 登录上数据库,再执行 source database.sql
。
对于 database.sql
文件里面没有指定数据库的,还没仔细看怎样解决。