Послеустановочные настройка и тестирование


После установки 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. Описание исходных привилегий дается в разделе Задание изначальных привилегий MySQL. Если в двух словах, то эти привилегии позволяют пользователю root MySQL делать все, что угодно, и любому пользователю позволяют создавать или использовать базы данных с именем test или начинающимся с test_. Если таблицы привилегий не установлены, то в системном журнале при запуске сервера появится следующая ошибка:

    mysqld: Can't find file: 'host.frm'
    

    Такая ошибка может появиться и в случае бинарного дистрибутива MySQL, если вы не начали работу MySQL с точного выполнения команды ./bin/safe_mysqld! safe_mysqld, оболочка mysqld. Возможно, вам потребуется запускать mysql_install_db как root. Однако при желании вы можете запускать сервер MySQL как непривилегированный (не-root) пользователь, при условии, что этот пользователь может только читать файлы из каталога базы данных и записывать в него файлы. Инструкции по запуску MySQL в качестве непривилегированного пользователя даются в разделе Запуск MySQL от обычного пользователя. Если возникнут проблемы с mysql_install_db, обращайтесь к разделу Проблемы при запуске 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.

    Более подробная информация о приведенных выше альтернативах находится в разделе Задание изначальных привилегий MySQL.

  2. Запустите сервер MySQL как показано ниже:

    shell> cd mysql_installation_directory
    shell> bin/safe_mysqld &
    

    Если возникнут проблемы с запуском сервера, Проблемы при запуске сервера 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 (если вы уже не там). Если команда по-прежнему не работает, см. раздел Проблемы при запуске сервера 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.