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'.

Подробное описание тестирования:

  1. Если необходимо, запустите сервер 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.
  2. Запустите сервер MySQL как показано ниже:
    shell> cd mysql_installation_directory
    shell> bin/safe_mysqld &
    
    Если возникнут проблемы с запуском сервера, See section 2.4.2 Проблемы при запуске сервера MySQL.
  3. Используйте 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.
  4. Убедитесь, что можете остановить сервер:
    shell> BINDIR/mysqladmin -u root shutdown
    
  5. Убедитесь, что можете перезапустить сервер. Делайте это, используя safe_mysqld или путем прямого вызова mysqld. Например:
    shell> BINDIR/safe_mysqld --log &
    
    Если safe_mysqld терпит неудачу, попытайтесь запустить команду из каталога установки MySQL (если вы уже не там). Если команда по-прежнему не работает, см. раздел See section 2.4.2 Проблемы при запуске сервера MySQL.
  6. Запустите несколько простых тестов, чтобы убедиться, что сервер работает. Вывод должен быть похож на приведенный ниже:
    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'.

Главы