Как запустить скрипт в базе данных MySQL?
-
20-09-2019 - |
Вопрос
Я создал базу данных MySQL с помощью MySQL Workbench.Там около 20 столов.Я не могу понять, как запускать сценарии в базе данных.
По сути, я хочу создать сценарий создания базы данных, который позволит мне создать базу данных на любом другом сервере MySQL.
Решение
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
Другие советы
Знание утилит командной строки mysql полезно и важно, но для выполнения общих задач используйте инструмент администрирования базы данных, такой как phpMyAdmin, для создания баз данных и управления ими.Эти инструменты позволяют чрезвычайно легко создавать и просматривать таблицы, создавать сценарии экспорта (файл со всеми запросами для создания таблиц, вставки данных и т. д.) и другие замечательные вещи.
phpMyAdmin великолепен, работает в среде LAMP, бесплатен и прост в использовании.
http://www.phpmyadmin.net/home_page/index.php
Экран экспорта базы данных в phpMyAdmin (обрезанный снимок)замещающий текст http://www.typolight.org/tl_files/images/documentation/sql-export.jpg
Вот несколько подсказок:
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]
Возможно, вам нужно знать, что эти операторы называются DDL?Тогда вы можете зайти на любой сайт MySQL и спросить, как генерировать DDL?Не придираюсь, просто говорю...
Также вы можете попробовать следующее:
используйте mysqldump из командной строки с опцией --no-data.Попросите помощи, если вам нужна дополнительная информация.Но простой пример:
$ mysqldump -u{username} -p{password} {dbname} --no-data
(разумеется, без фигурных скобок)
У вас есть два варианта.
- Экспортируйте сценарий CREATE, который вы можете хранить и/или произвольно запускать на любом сервере MySQL.
- Синхронизируйте напрямую с конкретным сервером MySQL.
Для №1 используйте следующую команду меню
File >> Export >> Forward Engineer SQL CREATE Script...
Отсюда вы можете использовать такую программу, как MySQL GUI Tools, или просмотреть другие ответы в этой теме, чтобы импортировать сгенерированный сценарий SQL из командной строки.
Для №2 используйте следующую команду меню
Database >> Forward Engineer...
- or -
Database >> Synchronize Model...
Прежде чем выполнить любое из этих действий, вы можете сначала установить соединение через
Database >> Manage Connections...
Важный!Для обоих этих вариантов обязательно внимательно изучите каждый параметр, доступный в подсказках — небольшие настройки могут привести к большим изменениям в результатах!