我想把每个mysql表的转储文件放到不同的文件中.手册中指出,此操作的语法是

mysqldump [options] db_name [tbl_name ...]

这表明你事先知道表名.我现在可以设置知道每个表名的脚本,但假设我添加了一个新表,然后忘记了更新转储脚本.然后,我丢失了一个或多个表的转储.

有没有办法自动将每个现有表转储到一个单独的文件中?还是我得写些 playbook ;查询数据库,获取所有表名,并按名称转储它们.

如果我 Select 脚本fu路径,什么脚本语言可以访问mysql数据库?

推荐答案

mysqldump命令行程序可以为您实现这一点——尽管the docs人对此并不清楚.

需要注意的一点是~/output/dir必须由拥有mysqld的用户编写.在Mac OS X上:

sudo chown -R _mysqld:_mysqld ~/output/dir
mysqldump --user=dbuser --password --tab=~/output/dir dbname

运行上述操作后,您将拥有一个表名.包含每个表的模式(create table语句)和表名的sql文件.包含数据的txt文件.

如果只希望转储模式,请添加--no data标志:

mysqldump --user=dbuser --password --no-data --tab=~/output/dir dbname

Mysql相关问答推荐

'mySQL中的操作员

如何从MySQL数据库中提取入职第一个月的工作天数?

如何在 MySQL 中对同一个表的多个列进行 INNER JOIN

我可以在姓名和姓名日期之间进行搜索吗?

完全匹配 IN 子句中的所有值

如何在 MySQL 中查找重复值和更新值

使用 Having 表达式连接多个表

如何在不使用子查询的情况下按最小日期计算新用户?

查询获取日期之间的可数匹配条目并加入它们以读取用户状态

Select 多列但仅按 1 列分组

将每组的总和除以总数

无法在两个 mysql 表上执行内部联接

如何使用 laravel 连接 mysql?

让 MySQL 在 OSX 10.7 Lion 上运行

我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?

如何将时刻 JS 时间插入 MySQL

MySQL Partitioning / Sharding / Splitting - 走哪条路?

MySQL - 我如何输入 NULL?

如何将数组存储到mysql中?

MySQL:切换 int 字段值的简单方法