После установки 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 Раздел 4.3.4, «Задание изначальных привилегий MySQL». Если в двух словах, то эти привилегии позволяют пользователю root MySQL делать все, что угодно, и любому пользователю позволяют создавать или использовать базы данных с именем test или начинающимся с test_. Если таблицы привилегий не установлены, то в системном журнале при запуске сервера появится следующая ошибка:
mysqld: Can't find file: 'host.frm'
Такая ошибка может появиться и в случае бинарного дистрибутива MySQL, если вы не начали работу MySQL с точного выполнения команды ./bin/safe_mysqld! See Раздел 4.7.2, «safe_mysqld, оболочка mysqld». Возможно, вам потребуется запускать mysql_install_db как root. Однако при желании вы можете запускать сервер MySQL как непривилегированный (не-root) пользователь, при условии, что этот пользователь может только читать файлы из каталога базы данных и записывать в него файлы. Инструкции по запуску MySQL в качестве непривилегированного пользователя даются в разделе See Раздел A.3.2, «Запуск MySQL от обычного пользователя». Если возникнут проблемы с mysql_install_db, обращайтесь к разделу See Раздел 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.
Используйте 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 version10
ConnectionLocalhost via Unix socket
TCP port3306
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 Раздел 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.