Как вытащить схему БД из MySQL / phpMyAdmin? - PullRequest
3 голосов
/ 03 ноября 2011

Есть ли способ вытащить схему из ваших баз данных mysql?

У меня много баз данных и таблиц в этих базах данных, и я использую 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)

спасибо!

Ответы [ 3 ]

6 голосов
/ 03 ноября 2011

Не уверен, что именно вы хотите.Вы можете попробовать один из следующих методов:

1) Использовать функцию экспорта phpMyAdmin для экспорта базы данных.PMA позволяет вам опустить данные.

2) Вы можете сделать то же самое, используя mysqldump .Эта команда должна экспортировать запросы CREATE DATABASE / CREATE TABLE:

mysqldump -hlocalhost -uroot -proot --all-databases --no-data > create-database-and-tables.sql

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
2 голосов
/ 03 ноября 2011

Вы можете использовать mysqldump из консоли, например,

mysqldump -h localhost -u user -p -d -r dump.sql db_name

Переключатель -d делает mysqldump только для выгрузки схемы, -r направляет вывод в заданный файл.Вы также можете использовать -X для записи дампа в формате XML.

1 голос
/ 30 января 2017

На вкладке Экспорт PhpMyAdmin для базы данных вы хотите:

  1. Установите флажок: Пользовательский - отображать все возможные варианты.
    Step 1

  2. В разделе Параметры, специфичные для формата: выберите Только структура
    Step 2

...