背景:有时候需要同步数据库的表结构和部分数据,同步全表数据非常大,也不适合。还有一个种办法是使用数据库的dump命令执行备份,无法进入服务器?没有权限怎么办?
这里只要能访问服务器中的 information_schema数据库就能够进行导出。
1、查询 information_schema 中目标数据库的所有表名和存储引擎。
SELECT table_name,engine
FROM information_schema.tables
WHERE table_schema="数据库名";
2、查询 information_schema 中目标数据库的字符集。
SELECT CCSA.character_set_name,T.table_name
FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = '数据库名';
3、拿到目标数据库中的所有数据表名之后,查询表结构。
SELECT COLUMN_NAME 数据表的字段名
COLUMN_TYPE 字段的数据类型
COLUMN_COMMENT 字段的注释
COLUMN_DEFAULT 字段的默认值
EXTRA 字段的拓展信息,AUTO_INCREMENT
SELECT COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT,COLU