Я загрузил mysql-5.1.44.tar.gz и установил его, выполнив следующие команды:
$ ./configure
$ make
$ make install
Все установилось без ошибок. Затем я попытался запустить сервер mysql, введя следующую команду:
$ mysqld_safe --user=mysql &
100310 13:25:56 mysqld_safe Logging to '/usr/local/var/perfportal2.err'.
100310 13:25:56 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
100310 13:25:56 mysqld_safe mysqld from pid file /usr/local/var/perfportal2.pid ended
$ cat /usr/local/var/myserver.err
100310 13:25:56 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
/usr/local/libexec/mysqld: Table 'mysql.plugin' doesn't exist
100310 13:25:56 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100310 13:25:56 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
100310 13:25:56 mysqld_safe mysqld from pid file /usr/local/var/perfportal2.pid ended
Я предполагаю, что в процессе установки каталог данных не был создан.
Есть предложения о том, что мне делать?
Если ты бежишь make install
и уже имел mysql-server
пакет установлен, скорее всего, у вас уже был mysql
схема базы данных в / var / lib / mysql. Версия, включенная в RHEL5, - 5.0.77, что может объяснить ошибку mysql-upgrade, поскольку этот сценарий обновляет схему между версиями MySQL. Ошибка также может быть очень похожей, если вы не создали исходную схему в процессе установки.
Если вы собираетесь компилировать из исходного кода и не указывать места установки, вам необходимо сначала удалить системные пакеты mysql. Если вы хотите сохранить как системные пакеты, так и исходную установку, в пользу чего иногда приводят аргументы, вам нужно быть осторожным, чтобы не растоптать весь системный пакет. Обычно это означает установку источника в таком месте, как /usr/local/mysql
в отличие от значения по умолчанию /usr/local
. Вы можете сделать это с помощью ./configure --prefix=/usr/local/mysql
. Здесь есть более подробные сведения и лучшие практики, которые я не буду вдаваться в подробности.
Хотя могут быть веские причины для компиляции из исходного кода, вы можете пересмотреть свою, поскольку она может вам не понадобиться.
rpm -qa | grep mysql
отобразит все установленные в данный момент пакеты. Наверное mysql-server
и mysql-client
.
В противном случае вы не выполнили процедуру из документации. Даже если вы это сделали, вам придется повторить это после удаления пакетов MySQL.
Из INSTALL-SOURCE
, который был включен в архив mysql-5.1.44:
2.3.1. Source Installation Overview
The basic commands that you must execute to install a MySQL source
distribution are:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql &
mysql_upgrade
mysql_install_db
если выше не работает.