Snippets: MySQL: Import / Export Data

26th January 2021 at 10:19pm

MySQL 导入 / 导出数据

也可以叫作 MySQL 数据的备份与恢复。

导出

导出一整个数据库:

$ mysqldump -hhost -Pport -uuser -ppasswd database > database.sql

导出某个数据库里面的特定几张表

$ mysqldump -hhost -Pport -uuser -ppasswd --single-transaction 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 文件里面没有指定数据库的,还没仔细看怎样解决。