Как мне запустить скрипт в / в базе данных mysql? - PullRequest
2 голосов
/ 16 марта 2010

Я создал базу данных MySQL, используя MySQL Workbench. В нем около 20 таблиц. Я не могу понять, как запускать скрипты в базе данных.

По сути, я хочу создать сценарий создания базы данных, который позволит мне создавать базу данных на любом другом сервере MySQL.

Ответы [ 5 ]

8 голосов
/ 16 марта 2010
create database mydatabase;

grant all on mydatabase.* to 'myuser'@'%' identified by 'mypasswd';

create table mytable (
id int not null auto_increment,
myfield varchar(255) not null default ''
);

и т.д ...

Поместите это в файл с именем mydbcreate.sql и запустите (из командной строки)

mysql -u <myuser> -p < mydbcreate.sql
3 голосов
/ 16 марта 2010

Знание утилит командной строки mysql полезно и важно, но для выполнения общих задач используйте инструмент администрирования баз данных, такой как phpMyAdmin, для создания ваших баз данных и управления ими. Эти инструменты чрезвычайно упрощают создание и просмотр таблиц, создание сценариев экспорта (файл со всеми запросами на создание таблиц, вставку данных и т. Д.) И другие замечательные вещи.

phpMyAdmin великолепен, работает в среде LAMP, бесплатен и прост в использовании.

http://www.phpmyadmin.net/home_page/index.php

Скриншот экспорта БД в phpMyAdmin (обрезанный снимок) альтернативный текст http://www.typolight.org/tl_files/images/documentation/sql-export.jpg

3 голосов
/ 16 марта 2010

Вот несколько подсказок:

mysqldump -u [username] -p[password] [databasename] > [backupfile.sql]

И

mysql -u [username] -p[password] [database_to_restore] < [backupfile.sql]

Создает файл со структурами и данными. Вторая строка принимает данные из файла в базу данных.

Между -p и паролем нет пробела. Было бы лучше не вводить пароль в вашу команду, так как это может оказаться в вашей .bash_history. Если вы пропустите пароль, вам будет предложено:

mysqldump -u [username] -p [databasename] > [backupfile.sql]

И

mysql -u [username] -p [database_to_restore] < [backupfile.sql]
2 голосов
/ 16 марта 2010

Возможно, вам нужно знать, что эти утверждения называются DDL? Тогда вы можете перейти на любой сайт MySQL и спросить, как генерировать DDL? Не быть язвительным, просто говорю. , .

Также вы можете попробовать это:

использовать mysqldump из командной строки с параметром --no-data. Обратитесь за помощью, если вам нужно больше информации. Но простой пример будет:

$ mysqldump -u{username} -p{password} {dbname} --no-data

(конечно, без фигурных скобок)

0 голосов
/ 16 марта 2010

У вас есть два варианта.

  1. Экспорт скрипта CREATE, который вы можете хранить и / или произвольно запускать на любом сервере MySQL
  2. Синхронизация с конкретным сервером MySQL напрямую.

Для # 1 используйте следующую команду меню

File >> Export >> Forward Engineer SQL CREATE Script...

Здесь вы можете использовать такую ​​программу, как MySQL GUI Tools или просмотреть другие ответы в этой теме, чтобы импортировать сгенерированный сценарий SQL из командной строки.

Для # 2 используйте следующую команду меню

Database >> Forward Engineer...
- or -
Database >> Synchronize Model...

Прежде чем вы сделаете одно из этих действий, вы можете сначала установить соединение через

Database >> Manage Connections...

Внимание! Для обоих этих параметров убедитесь, что вы внимательно изучили все параметры, доступные в подсказках - небольшие настройки могут существенно изменить вывод!

...