web-dev-qa-db-ja.com

Red Hat Enterprise Linux(RHEL)でmysqld_safeを起動できないのはなぜですか?

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

私の推測では、インストールプロセスはデータディレクトリを作成しませんでした。

私が何をすべきかについての提案はありますか?

1
Hai Vu

make installを実行し、すでにmysql-serverパッケージがインストールされている場合は、/ var/lib/mysqlに既存のmysqlデータベーススキーマがある可能性があります。 RHEL5に含まれているバージョンは5.0.77です。これは、スクリプトがMySQLバージョン間でスキーマを更新するため、mysql-upgradeエラーを説明している可能性があります。インストールの一部として初期スキーマを作成しなかった場合も、エラーは非常に似ている可能性があります。

ソースからコンパイルし、インストール場所を指定しない場合は、最初にmysqlのシステムパッケージを削除する必要があります。システムパッケージとソースインストールの両方を維持したい場合は、システムパッケージ全体を踏みつけないように注意する必要があります。これは通常、デフォルトの/usr/local/mysqlではなく、/usr/localなどの場所にソースをインストールすることを意味します。これは./configure --prefix=/usr/local/mysqlで実現できます。ここには詳細があり、これ以上詳しく説明しないベストプラクティスがあります。

ソースからコンパイルするのには十分な理由があるかもしれませんが、それはあなたにとって必要ではないかもしれないので、あなたはあなた自身のものを再考するかもしれません。

rpm -qa | grep mysqlは、現在インストールされているすべてのパッケージを表示します。おそらくmysql-servermysql-client

それ以外の場合は、ドキュメントの手順に従わなかった。行ったとしても、MySQLパッケージを削除した後にそれを繰り返す必要があります。

Mysql-5.1.44tarballに含まれているINSTALL-SOURCEから:

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 &
3
Warner
  1. パッケージからソフトウェアをインストールします!!!ソースコードのコンパイルには「いいえ」と言ってください。 2010年になりましたね
    ソフトウェアのパッケージがない場合は、 自分でビルドする にする必要があります。
  2. エラーメッセージは、mysql_upgradeを実行する必要があることを明確に示しています
  3. 上記がうまくいかない場合は、mysql_install_dbを実行してみることもできます。
0
SaveTheRbtz