поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    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 Раздел 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.

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

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

      shell> cd mysql_installation_directory
      shell> bin/safe_mysqld &
      

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

     
    © 1997-2005 PHP Club Team
    Rambler's Top100