Buy this Reference Manual in softcover from Barnes & Noble!
После установки 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
.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'.
mysql_install_db
Posted by on Saturday March 2 2002, @11:13am | [Delete] [Edit] |
When I execute run-all-tests, I get a prompt,
alter-table:
I have *no* idea what to type there, and the
README in that directory doesn't say either.
Posted by Adam Hardy on Monday December 2 2002, @1:48am | [Delete] [Edit] |
It's not clear from this page, but presumably the
RPM ran mysql_install_db when doing rpm -i MySQLxxxx
Posted by Jason Jerome on Thursday December 19 2002, @11:21am | [Delete] [Edit] |
Installed MySQL in RedHat 8 through the packages included.
1.
All the BINDIR and EXECDIR commands are located: /usr/bin
2.
I noticed that after I ran the 'mysql_install_db', that the script suggested adding a root password. I went ahead and did this using the mysqladmin command (mysqladmin -u root password 'new password').
I then spent the next 10 minutes trying to figure out how to invoke all the other commands, because I had to figure out the syntax of using a command with a password. So here it is, just in case you find yourself in the same predicament:
(The shutdown command is used here as an example)
>mysqladmin -p -u root shutdown
The system will prompt you to enter the password.
Posted by Paul Mahler on Friday December 20 2002, @8:13pm | [Delete] [Edit] |
I installed on Windows 2K and the databases and permissions were already installed. I had to run the script to install MYSQL as an NT service, but not the scripts to initialize a database and permissions.
Posted by on Tuesday March 4 2003, @3:46am | [Delete] [Edit] |
----------------------------------------------------
> mysqld: Can't find file: 'host.frm'
I struggled with this for a quite a while, trying everything I could think of. The file did indeed exist, but MySQL seemed not to see it. safe_mysqld would start and then end. The mysqld.log file said it could not find host.frm.
It was a permissions problem I was having. All of the other database directories were group=mysql, whereas the mysql database directory was group=root. As soon as I changed this to group=mysql, everything was fine!
Posted by Rafal Galos on Wednesday March 5 2003, @12:28pm | [Delete] [Edit] |
Password added after ran 'mysql_install_db'.
To remove password simply type:
mysqladmin -p password ''
Posted by [name withheld] on Thursday March 6 2003, @6:58am | [Delete] [Edit] |
In response to message posted by Paul Harvey on Tuesday March 4 2003, @3:46am:
to avoid a permissions' problem in the future, run mysql_install_db with this option: --user=mysql
additionally, to specify an alternate location of the data directory, use the option --ldata=[insert path here]
hope this helps
Add your own comment.