web-dev-qa-db-ja.com

Perconaの起動に失敗しました:mysqlはファイル作成のためにディレクトリにアクセスできません

同様の問題についていくつかの質問と提案を見つけましたが、残念ながら何もうまくいかないようです。これが2倍の場合(そして正しい情報源を指している場合)は失礼します...

サーバーはFedoraBeefy Miracleで、perconamysqlサーバーがインストールされています。私はインストールについてあまり知りません、私は初期セットアップのずっと後に来ました。現在、データベースサービスは機能しません。

Perconaのスタートアップ:

# service percona start
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/home/percona/data/example.domain.pid).

MySQL構成:

/ home/percona(perconaインストールディレクトリにリンクしている)には、/ home/percona/dataのdatadirを指す非常に冗長なmy.cnfがあります。/etc/configには次のものがあります。

# cat /etc/my.cnf    
[mysqld]
datadir=/var/lib/mysql
(...)
[mysqld_safe]
log-error=/var/log/mysqld.log

この構成が使用されているかどうか、およびmysqlがどのように呼び出されるかはわかりません。私はPerconaを初めて使用し、セットアップは他の誰かによって行われました。ただし、ログファイルは各Perconaサービス(試行)で更新され、次のエラーが発生します。

# tail /var/log/mysqld.log
140814  0:55:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

このエラーは一般的なようですが、グーグルの議論では通常、「作成」ではなく「オープン」モードについて言及しています。また、ファイルを作成するディレクトリがわかりません。この名前のファイルは/ var/lib/mysql /および/ home/percona/data /に存在します

これまでに確認して試しました:

  • / home/perconaの所有者をpercona:mysql、mysql:mysqlに再帰的に設定し、通常のpercona:perconaに戻します。
  • / var/lib/mysqlの所有者を再帰的にmysql:percona、percona:perconaに設定し、通常のmysql:mysqlに戻します。これらのユーザーは両方ともシステムに存在します。
  • 両方のディレクトリにある既存のibdata1ファイルの権限は660です。
  • ディレクトリとディレクトリ自体の両方のib *ファイルの権限を一時的に777に設定しようとしました(どのユーザーがファイルにアクセス/変更/作成するかを確認するために-何も起こらず、何も変更されませんでした。
  • どこかにアドバイス 'mysql_upgrade'は次のようになります。

    # mysql_upgrade 
    Looking for 'mysql' as: mysql
    Looking for 'mysqlcheck' as: mysqlcheck
    FATAL ERROR: Upgrade failed
    

    (コンソールから実行されたmysqlcheckは、エラー表示なしで、いくつかの出力を表示します)。

  • プロセスで何が失われるか上書きされるかわからないため、mysql_install_dbを実行することを恐れています-以前にマシンで実行されていたデータベースがあり、構成を完全に理解していないと確信しています。

次に何を試すべきですか、それとも何が欠けていますか?

1
zencodism

あなたの道の何かが間違っているように私には聞こえます。ほとんどの投稿が「オープン」であることがわかる理由は、ほとんどの場合、それが権限の問題であるためですが、パスは正しいです。 「作成」に関するエラーが表示された場合、それは(一般的に)my.confがサービスにファイルを見つけるように指示しているパスにファイルが含まれているためですnot

これらのいずれかを見つけます:

nnodb_data_home_dir = 
innodb_log_group_home_dir = 
innodb_log_Arch_dir = 

次に、提供されたパスが正しいことを検証します。私の最善の推測は、そうではないということです。それが問題である場合は、それらを修正した後、実行できる未解決のアクセス許可の問題があります。

chown -R mysql:mysql /path/to/data
1
Dave Holland