如何从MySQL/phpMyAdmin中提取db的架构?

aru*_*air 3 mysql database schema export phpmyadmin

是否有某种方法来拉出你的mysql数据库的架构?

我在这些数据库中有很多db和table,我在本地机器上使用phpmyadmin和WAMP.

我需要提取模式,或至少数据库名称,表名,列及其属性(例如INT(2)),并将其导出为csv/excel /最终可以在excel中编辑的任何格式.

我用:

服务器:

    Apache/2.2.21 (Win64) PHP/5.3.8
    MySQL client version: mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $
    PHP extension: mysqli Documentation

MySQL的:

    Server: localhost (localhost via TCP/IP)
    Server version: 5.5.16-log
    Protocol version: 10
    User: root@localhost
    MySQL charset: UTF-8 Unicode (utf8)

谢谢!

Sal*_*n A 6

不确定你想要什么.您可以尝试以下方法之一:

1)使用phpMyAdmin的导出功能导出数据库.PMA允许您省略数据.

2)你可以使用mysqldump做同样的事情.此命令应导出CREATE DATABASE/CREATE TABLE查询:

mysqldump -hlocalhost -uroot -proot --all-databases --no-data > create-database-and-tables.sql
Run Code Online (Sandbox Code Playgroud)

3)您可以从mySQL架构表中提取信息.大多数mySQL客户端(phpMyAdmin,HeidiSQL等)允许您将查询结果导出为CSV.一些有用的查询:

/*
 * DATABASE, TABLE, TYPE
 */
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql')
ORDER BY TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE

/*
 * DATABASE, TABLE, COLUMN, TYPE
 */
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE /* ETC */
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql')
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
Run Code Online (Sandbox Code Playgroud)