MariaDB(libmysql-5.5.41-MariaDB)を実行していますが、今日、コマンドラインからmysqlにアクセスしてダンプファイルを作成できないことに気付きました。エラーがスローされます。
mysql:「/etc/my.cnf」のディレクトリを読み取れません。 (エラーコード:2)デフォルト処理での致命的なエラー。プログラムが中止されました
「my.cnf」という名前のディレクトリを読み取る必要がある理由がわかりません。しかし、「my.cnf.d」というディレクトリがetcフォルダーに表示されます。おそらくタイプミスかもしれませんが、my.cnfファイルに行ったとき、この設定に気づきませんでした。それと密接に関連している唯一のものはこれです:
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
これは、設定で何も変更せずに最近発生したものなので、mariadbで何が起こっているのかわかりません。任意の助けいただければ幸いです。
編集:さて、私はmkdir my.cnfを実行して問題を解決しました。 (このディレクトリには何も含まれていないため、何が必要かはわかりません。my.cnfに何も変更しないでください。このディレクトリが必要になるためです。
デフォルト(--no-defaults)の読み取りを無効にすると機能するので、問題はデフォルトファイル、それらのアクセス許可、またはそれらを含むディレクトリのアクセス許可のどこかにあります。
/etc、/etc/my.cnf、/etc/my.cnf.d、/etc/my.cnf.d内のファイル、および適切な測定〜/ .my.cnfに対する権限を慎重に調べます。
各ファイルの内容を確認して、その他のインクルードや、ファイルにアクセスする可能性のあるその他のディレクティブを確認します。
SELinuxが有効になっている場合は、/ var/log/audit.logの内容で、関連するAVC拒否エントリを確認してください。
解決策は実際には簡単です。
!includedir /etc/my.cnf.d
/etc/my.cnfの最後の行なので、mysqlは「/etc/my.cnf.d」全体を読み取ることができず、「/ etc/my.cnf」のみを読み取ることができます。
Mysqlがその行を読み取ることができるように、あと1行追加するだけです。
!includedir /etc/my.cnf.d
# add new line here
!includedir /etc/my.cnf.dの後に新しい空の行を追加する必要があります
!includedir /etc/my.cnf.d
空の線
この行の最後で「Enter」を押すだけです:!includedir /etc/my.cnf.d
非常に奇妙です:(Dockerコンテナーを再起動した後)-MySQL Ver 14.14 Distrib 5.7.23, Debian 9.5, Docker 17.12.1-ce
でも突然エラーが発生しました
多くのことを試してもうまくいかず、すべての権限が正しい場合(afaik)。
最後のオプションは質問作者の「編集」に従うことでした、そしてそれはうまくいきました!
やった:
mv /etc/my.cnf /etc/_my.cnf # there was just the line [mysql] in it, nothing else
mkdir /etc/my.cnf
chown mysql:mysql /etc/my.cnf
service mysql start
を実行した後、突然「MySQLサーバーがすでに起動しています」と表示されます。 service mysql restart
以降は、すべてdocker conatainerのシャットダウン前と同様に機能しています。