Spec-Zone .ru
спецификации, руководства, описания, API
|
Цель mysql_install_db сценария состоит в том, чтобы генерировать новые таблицы полномочия MySQL. Это не перезаписывает существующие таблицы полномочия MySQL, и это не влияет ни на какие другие данные.
Если Вы хотите воссоздать свои таблицы полномочия, сначала остановите mysqld сервер, если он работает. Затем переименуйте mysql
каталог в соответствии с каталогом данных, чтобы сохранить это, и затем
выполнить mysql_install_db.
Предположите, что Ваш текущий каталог является каталогом установки MySQL и что mysql_install_db располагается в bin
каталог и каталог данных называют data
.
Переименовать mysql
база данных и запущенный повторно mysql_install_db, используйте эти команды.
shell>mv data/mysql data/mysql.old
shell>scripts/mysql_install_db --user=mysql
Когда Вы выполняете mysql_install_db, Вы могли бы встретиться со следующими проблемами:
mysql_install_db не в состоянии установить таблицы предоставления
Можно найти, что mysql_install_db не в состоянии установить таблицы предоставления и завершается после отображения следующих сообщений:
Starting mysqld daemon with databases from XXXXXXmysqld ended
В этом случае следует исследовать файл журнала ошибок очень тщательно. Журнал должен быть расположен
в каталоге XXXXXX
названный сообщением об ошибке и должен указать,
почему mysqld не запускался. Если Вы не понимаете то,
что произошло, включайте журнал, когда Вы отправляете отчет об ошибках. См. Раздел
1.7, "Как Сообщить об Ошибках или проблемах".
Есть выполнение процесса mysqld
Это указывает, что сервер работает, когда таблицы предоставления уже были, вероятно, составлены. Если так, нет никакой потребности выполнить mysql_install_db вообще, потому что он должен быть выполнен только однажды (когда Вы устанавливаете MySQL в первый раз).
Установка второго mysqld сервера не работает, когда один сервер работает
Это может произойти, когда Вы имеете существующую установку MySQL, но хотите поместить новую установку в различное расположение. Например, у Вас могла бы быть производственная установка, но Вы хотите создать вторую установку для тестирования. Обычно проблема, которая происходит, когда Вы пытаетесь выполнить второй сервер, состоит в том, что он пытается использовать сетевой интерфейс, который используется первым сервером. В этом случае следует видеть одно из следующих сообщений об ошибках:
Can't start server: Bind on TCP/IP port:Address already in useCan't start server: Bind on unix socket...
Для получения инструкций по установке многократных серверов см. Раздел 5.6, "Выполняя Экземпляры MySQL Multiple на Одной Машине".
У Вас нет доступа для записи к
/tmp
каталог
Если у Вас нет доступа для записи, чтобы создать временные файлы, или Unix снабжают файл сокетом в
расположении значения по умолчанию ( /tmp
каталог) или TMP_DIR
переменная окружения, если это было установлено, ошибка,
происходит, когда Вы выполняете mysql_install_db или mysqld сервер.
Можно определить различные расположения для временного каталога и файла сокета Unix, выполняя эти
команды до запуска mysql_install_db или mysqld, где some_tmp_dir
имя полного пути к некоторому каталогу, для которого у Вас есть разрешение записи:
shell>TMPDIR=/
shell>some_tmp_dir
/MYSQL_UNIX_PORT=/
shell>some_tmp_dir
/mysql.sockexport TMPDIR MYSQL_UNIX_PORT
Затем следует быть в состоянии выполнить mysql_install_db и запустить сервер с этих команд:
shell>scripts/mysql_install_db --user=mysql
shell>bin/mysqld_safe --user=mysql &
Если mysql_install_db располагается в scripts
каталог, измените первую команду к scripts/mysql_install_db
.
См. Раздел C.5.4.5, "Как Защитить или Изменить MySQL Unix Socket File", и Раздел 2.12, "Переменные окружения".
Есть некоторые альтернативы выполнению mysql_install_db сценария, обеспеченного в распределении MySQL:
Если Вы хотите начальные полномочия отличаться от стандартных значений по
умолчанию, можно изменить mysql_install_db прежде, чем Вы выполните его.
Однако, предпочтительно использовать GRANT
и REVOKE
чтобы изменить полномочия после, таблицы предоставления были
установлены. Другими словами можно выполнить mysql_install_db, и затем использовать mysql -u root mysql
соединяться с сервером как MySQL root
пользователь так, чтобы можно было выпустить необходимое GRANT
и REVOKE
операторы.
Если Вы хотите установить MySQL на нескольких машинах с теми же самыми полномочиями, можно поместить
GRANT
и REVOKE
операторы в файле и выполняют файл как использование
сценария mysql
после выполнения mysql_install_db. Например:
shell>scripts/mysql_install_db --user=mysql
shell>bin/mysql -u root < your_script_file
Делая это, можно избежать иметь необходимость сделать заявления вручную на каждой машине.
Возможно воссоздать таблицы предоставления полностью после того, как они были ранее
созданы. Вы могли бы хотеть сделать это, если Вы только изучаете, как использовать GRANT
и REVOKE
и сделали очень много модификаций после выполнения mysql_install_db, что Вы хотите вытереть таблицы и
запустить.
Чтобы воссоздать таблицы предоставления, удалите весь .frm
, .MYI
, и .MYD
файлы в mysql
каталог базы данных. Затем выполните mysql_install_db сценарий снова.
Можно запустить mysqld, вручную используя --skip-grant-tables
опция и добавляет информацию о полномочии,
самостоятельно используя mysql:
shell>bin/mysqld_safe --user=mysql --skip-grant-tables &
shell>bin/mysql mysql
От mysql вручную выполните команды SQL, содержавшиеся в mysql_install_db. Удостоверьтесь, что Вы выполняете mysqladmin полномочия сброса или перезагрузку mysqladmin позже, чтобы сказать серверу перезагружать таблицы предоставления.
Отметьте, что, не используя mysql_install_db, не только необходимо заполнить таблицы предоставления вручную, также необходимо создать их сначала.