2016-09-07 2 views
1

У меня есть приложение, которое хранит свои данные в базе данных MySQL. Приложение использует конкретную учетную запись БД с полным доступом, индивидуальные права пользователей поддерживаются на уровне приложения. Помимо root нет другого пользователя с доступом к этой базе данных.Как создать скрипт установки установки MySQL?

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

mysqldump --no-data --routines --add-drop-database --databases dbname > sqlfile будет делать почти все эти вещи, но я не мог найти никакой возможности включить создание пользователя, имеющего доступ к этой базе данных. Любые намеки?

ответ

1

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

Вы не можете добавить эту информацию вручную в сгенерированный sql-дамп. У вас есть два варианта. Создайте сценарий оболочки или создайте отдельный файл sql, содержащий информацию о создании пользователя. В любом случае, если ваш файл будет включать в себя такие заявления

GRANT ALL ON appdb.* TO 'pb_skat'@'localhost'; 

http://dev.mysql.com/doc/refman/5.7/en/grant.html

+0

Спасибо e4c5. Это было мое беспокойство, поэтому я поеду с двумя сценариями, которые будут вызываться скриптом установки: структурой базы данных и пользователем. (И ретроспективно я рад, что решил сохранить авторизацию на уровне приложения, а не в базе данных ...) –

+0

Извините, я был - и все-таки - спешил, когда я опаздываю с проектом, поэтому я забыл. Во всяком случае, кроме всех кнопок этой формы (я надеюсь, что я сделал все необходимое), я до сих пор считаю, что личная благодарность кому-то, кто потратил время на помощь, является самой важной вещью. Итак, снова e4c5: большое спасибо! –

+0

Все самое лучшее с вашим проектом – e4c5

0

Перед введением дамп приложения к базе данных.

  1. Первый список вниз пользователей, которые все доступны с вами:

ВЫБРАТЬ пользователя, хост, пароль от mysql.user;

  1. Проверьте, имеет ли этот пользователь права, используя команду show show, чтобы выполнить операцию, иначе предоставите разрешения для этого.

ГРАНТ ВСЕ ПРИВИЛЕГИИ НА . TO 'root' @ 'localhost' с опцией GRANT

  1. Создайте имя базы данных, где вы хотите ввести дамп.
Смежные вопросы