2.4 Послеустановочные настройка и тестирование
После установки MySQL (из бинарного дистрибутива или исходного кода)
необходимо проинициализировать таблицы привилегий, запустить сервер и
убедиться, что сервер работает нормально. Можно также организовать
автоматический запуск и остановку сервера, когда операционная система
соответственно начинает и прекращает работу.
Обычно при установке из исходного кода для установки таблиц привилегий и
запуска сервера нужно выполнить следующие команды:
shell> ./scripts/mysql_install_db
shell> cd mysql_installation_directory
shell> ./bin/safe_mysqld --user=mysql &
Для бинарного дистрибутива (но не для пакетов RPM или pkg) сделайте так:
shell> cd mysql_installation_directory
shell> ./scripts/mysql_install_db
shell> ./bin/safe_mysqld --user=mysql &
или
shell> ./bin/mysqld_safe --user=mysql &
Если вы используете MySQL 4.x.
Эти операции создают базу данных mysql
, которая будет поддерживать все
привилегии доступа к базе данных, базу данных test
, которую можно
использовать для тестирования MySQL, а также записи привилегий для
пользователя, который запускает mysql_install_db
и для пользователя root
(без каких-либо паролей). При этом также запускается сервер mysqld
.
mysql_install_db
не перезаписывает старые таблицы привилегий, так что ее
запуск будет безопасным в любом случае. Если вам не нужна база данных
test
, ее можно удалить с помощью mysqladmin -u root drop test
.
Тестирование проще всего выполнить из каталога наивысшего уровня
дистрибутива MySQL. Для бинарного дистрибутива таковым является ваш
каталог инсталляции (обычно что-нибудь вроде `/usr/local/mysql'). Для
дистрибутива в виде исходного кода это - главный каталог вашего набора
исходных кодов MySQL.
В командах, представленных в настоящем разделе и последующих подразделах,
BINDIR
представляет собой путь к тому местоположению, где устанавливаются
программы вроде mysqladmin
и safe_mysqld
. Для бинарного дистрибутива это
каталог `bin' внутри дистрибутива. Для дистрибутива в виде исходного кода
BINDIR
может представлять собой `/usr/local/bin', если при запуске
configure
не указан иной, чем `/usr/local' инсталляционный каталог.
EXECDIR
- место, где устанавливается сервер mysqld
. Для бинарного
дистрибутива это то же самое, что и BINDIR
. Для дистрибутива в виде
исходного кода EXECDIR
может представлять собой `/usr/local/libexec'.
Подробное описание тестирования:
-
Если необходимо, запустите сервер
mysqld
и установите исходные
таблицы привилегий MySQL, содержащие те привилегии, которые
определяют, каким способом пользователям разрешено подключаться к
серверу. Обычно это делается с помощью скрипта mysql_install_db
:
shell> scripts/mysql_install_db
Как правило, mysql_install_db
требует запуска только первый раз при
установке MySQL. Таким образом, если производится модернизация
существующей установки, то данный этап можно пропустить (однако скрипт
mysql_install_db
совершенно безопасен для использования и не обновляет
никаких уже существующих таблицы; поэтому если у вас нет уверенности в
том, как поступать, то всегда можно запустить mysql_install_db
). Скрипт
mysql_install_db
создает шесть таблиц (user
, db
, host
, tables_priv
,
columns_priv
, and func
) в базе данных mysql
. Описание исходных привилегий
дается в разделе See section 4.3.4 Задание изначальных привилегий MySQL. Если в двух
словах, то эти привилегии позволяют пользователю root MySQL делать все,
что угодно, и любому пользователю позволяют создавать или использовать
базы данных с именем test
или начинающимся с test_
. Если таблицы
привилегий не установлены, то в системном журнале при запуске сервера
появится следующая ошибка:
mysqld: Can't find file: 'host.frm'
Такая ошибка может появиться и в случае бинарного дистрибутива MySQL,
если вы не начали работу MySQL с точного выполнения команды
`./bin/safe_mysqld'! See section 4.7.2 safe_mysqld
, оболочка mysqld
.
Возможно, вам потребуется запускать mysql_install_db
как root
. Однако при
желании вы можете запускать сервер MySQL как непривилегированный (не-root
)
пользователь, при условии, что этот пользователь может только читать файлы
из каталога базы данных и записывать в него файлы. Инструкции по запуску
MySQL в качестве непривилегированного пользователя даются в разделе See section A.3.2 Запуск MySQL от обычного пользователем. Если возникнут проблемы с
mysql_install_db
, обращайтесь к разделу See section 2.4.1 Проблемы при запуске mysql_install_db
. Дистрибутив MySQL обеспечивает несколько вариантов
запуска скрипта mysql_install_db
:
-
Чтобы изменить исходные привилегии, которые устанавливаются в
таблицах привилегий, вам, возможно, потребуется отредактировать
mysql_install_db
перед запуском. Это полезно, если нужно установить
MySQL на нескольких машинах с одними и теми же привилегиями. В
таком случае вам, возможно, потребуется только добавить несколько
дополнительных команд INSERT
к таблицам mysql.user
и mysql.db
!
-
Если необходимо изменить записи в таблицах привилегий после их
установки, то можно запустить
mysql_install_db
, затем использовать
mysql -u root mysql
для доступа к таблицам привилегий как
пользователь MySQL с привилегиями root
и применять команды SQL для
модификации таблиц привилегий напрямую.
-
Можно также создать таблицы привилегий полностью заново после того,
как они были уже созданы. Это можно сделать после установки таблиц,
а затем воссоздать после редактирования
mysql_install_db
.
Более подробная информация о приведенных выше альтернативах находится в
разделе See section 4.3.4 Задание изначальных привилегий MySQL.
-
Запустите сервер MySQL как показано ниже:
shell> cd mysql_installation_directory
shell> bin/safe_mysqld &
Если возникнут проблемы с запуском сервера, See section 2.4.2 Проблемы при запуске сервера MySQL.
-
Используйте
mysqladmin
для проверки, что сервер работает. Простую
проверку того, что сервер функционирует и отвечает на подключения,
обеспечивают следующие команды:
shell> BINDIR/mysqladmin version
shell> BINDIR/mysqladmin variables
Вывод из mysqladmin version
будет иметь небольшие различия в зависимости
от используемой платформы и версии MySQL, но должен быть похож на
приведенный ниже:
shell> BINDIR/mysqladmin version
mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license.
Server version 3.23.32-debug
Protocol version 10
Connection Localhost via Unix socket
TCP port 3306
UNIX socket /tmp/mysql.sock
Uptime: 16 sec
Threads: 1 Questions: 9 Slow queries: 0
Opens: 7 Flush tables: 2 Open tables: 0
Queries per second avg: 0.000
Memory in use: 132K Max memory used: 16773K
Чтобы получить представление о том, что еще можно делать с помощью
BINDIR/mysqladmin
, запустите эту команду с опцией --help
.
-
Убедитесь, что можете остановить сервер:
shell> BINDIR/mysqladmin -u root shutdown
-
Убедитесь, что можете перезапустить сервер. Делайте это, используя
safe_mysqld
или путем прямого вызова mysqld
. Например:
shell> BINDIR/safe_mysqld --log &
Если safe_mysqld
терпит неудачу, попытайтесь запустить команду из каталога
установки MySQL (если вы уже не там). Если команда по-прежнему не
работает, см. раздел See section 2.4.2 Проблемы при запуске сервера MySQL.
-
Запустите несколько простых тестов, чтобы убедиться, что сервер
работает. Вывод должен быть похож на приведенный ниже:
shell> BINDIR/mysqlshow
+-----------+
| Databases |
+-----------+
| mysql |
+-----------+
shell> BINDIR/mysqlshow mysql
Database: mysql
+--------------+
| Tables |
+--------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+--------------+
shell> BINDIR/mysql -e "SELECT host,db,user FROM db" mysql
+------+--------+------+
| host | db | user |
+------+--------+------+
| % | test | |
| % | test_% | |
+------+--------+------+
В подкаталоге `sql-bench' каталога установки MySQL находится набор тестов
производительности, который можно использовать для сравнения работы MySQL
на различных платформах. Каталог `sql-bench/Results' содержит результаты
большого количества запусков для различных баз данных и платформ. Чтобы
запустить все тесты, выполните следующие команды:
shell> cd sql-bench
shell> run-all-tests
Если у вас отсутствует каталог `sql-bench', то, вероятно, вы работаете с
пакетом RPM для бинарного дистрибутива (в пакеты RPM с дистрибутивами
исходного кода включается каталог тестов производительности). В этом
случае прежде чем использовать набор тестов производительности, необходимо
его установить. Начиная с версии MySQL 3.22, существуют RPM-файлы тестов
производительности, `mysql-bench-VERSION-i386.rpm', которые содержат код
тестов производительности и данные. Имея дистрибутив исходного кода, можно
также запустить эти тесты в подкаталоге `tests'. Например, чтобы запустить
`auto_increment.tst', сделайте следующее:
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
Результаты будут выводиться в файл `./tests/auto_increment.res'.
Главы
Add your own comment.