Скрипт mysql_install_db
предназначен только для создания
новых таблиц привилегий MySQL. Он не
влияет ни на какие другие данные! А
если таблицы привилегий MySQL уже
установлены, этот скрипт ничего не
будет делать!
Для того чтобы создать таблицы
привилегий заново, необходимо
остановить сервер mysqld,
если он работает, и затем выполнить
что-нибудь вроде:
mv mysql-data-directory/mysql mysql-data-directory/mysql-old mysql_install_db
В этом разделе перечислены
проблемы, с которыми можно
столкнуться при запуске
mysql_install_db:
mysql_install_db
не устанавливает таблицы
привилегий
Может оказаться, что
mysql_install_db не в
состоянии установить таблицы
привилегий и заканчивает свою
работу после вывода следующих
сообщений:
starting mysqld daemon with databases from XXXXXX mysql daemon ended
В таком случае необходимо очень
тщательно изучить системный
журнал! Этот журнал должен
находиться в каталоге
XXXXXX, указанном в
данном сообщении об ошибке. В нем
содержится информация о том,
почему не запустился
mysqld. Если вам не
удалось разобраться в том, что
произошло, при посылке отчета об
ошибке включите в него данный
журнал, используя
mysqlbug! См.раздел See
Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах».
Уже существует
работающий демон
mysqld
В таком случае вам вообще не
следует запускать
mysql_install_db. Скрипт
mysql_install_db должен
запускаться только однажды при
установке MySQL первый раз.
При работающем
демоне mysqld установка
второго демона не работает
Это может случиться, когда уже
существует установленный сервер
MySQL, но вы хотите произвести
новую инсталляцию в другом месте
(например, для тестирования или,
возможно, вам просто требуется
запустить две инсталляции в одно
и то же время). Вообще говоря,
такая проблема, которая
возникает при попытке запустить
второй сервер, заключается в том,
что второй сервер пытается
использовать тот же сокет и порт,
что и старый. В этом случае вы
можете получить следующее
сообщение об ошибке: Can't start
server: Bind on TCP/IP port: Address already in
use или Can't start server: Bind on
unix socket.... See
Раздел 4.1.3, «Установка нескольких серверов на один компьютер».
Если у вас нет доступа для
создания файла сокета в принятом
по умолчанию месте (в
/tmp) или разрешения
создавать временные файлы в
каталоге /tmp, то вы
получите ошибку при запуске
mysql_install_db или при
запуске или использовании
mysqld. Необходимо
указать другой каталог для
сокета и временных файлов
следующим образом:
shell>TMPDIR=/some_tmp_dir/shell>MYSQL_UNIX_PORT=/some_tmp_dir/mysqld.sockshell>export TMPDIR MYSQL_UNIX_PORT
See Раздел A.4.5, «Как защитить или изменить сокет-файл MySQL /tmp/mysql.sock». Путь
some_tmp_dir должен
указывать на некоторый каталог,
для которого у вас есть доступ
для записи. See
Приложение F, Переменные окружения. После
этого у вас должна появиться
возможность запустить
mysql_install_db и начать
работу сервера с помощью
следующих команд:
shell>scripts/mysql_install_dbshell>BINDIR/safe_mysqld &
Немедленный
аварийный отказ
mysqld
Если вы работаете на версии RedHat
5.0 с версией glibc более
старой, чем 2.0.7-5, следует
позаботиться о том, чтобы
установить все патчи для
glibc! В архивах рассылки
MySQL имеется большое количество
писем об этом. Ссылки на архивы
писем доступны в онлайновом
режиме на
http://lists.mysql.com/.
Обращайтесь также к разделу See
Раздел 2.6.1, «Примечания к Linux (Все версии Linux)». Можно также
запустить mysqld вручную,
используя опцию
--skip-grant-tables, и
самостоятельно добавить
информацию о привилегиях, при
помощи mysql:
shell>BINDIR/safe_mysqld --skip-grant-tables &shell>BINDIR/mysql -u root mysql
Из mysql в ручном режиме
выполните команды SQL в
mysql_install_db.
Удостоверьтесь, что после этого
вы запустили mysqladmin
flush-privileges или mysqladmin
reload, чтобы сервер
перегрузил таблицы привилегий.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
