「mysqlメインプロセスの生成に失敗しました:実行できません:そのようなファイルまたはディレクトリはありません」


56

私はMySQLの初心者なので、我慢してください。

11.10から12.04へのアップグレードが完了しました。

すべてが問題なく機能しているように見え、私のソフトウェアと設定はすべて正常に機能しています。MySQLとは別に。

私が試みるとき:

sudo start mysql

エラーが表示されます:

start: Job failed to start

問題の原因をどこで診断できますか?そして(うまくいけば)-それを整理する方法は?

(重要な場合は、ここでのアドバイスに従って自動開始を無効にしました)


更新1:

以下の両方の出力:

cat /var/log/mysql.err 
cat /var/log/mysql.log

空です。

の出力dmesg | grep mysql

[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory

アップデート2:

以下のAWinterで示されているように、MySQLはアップグレード後に自動的に消え、再インストールする必要があったようです。

回答:


48

mysql-server-5.1パッケージがアンインストールされたことを確認してください。アップグレード後も保持されるようです。同じエラーが発生し、MySQLサーバー5.1および5.5を削除してから再インストールする必要がありました。

安全のために、最初に/ var / lib / mysql /ディレクトリのバックアップを作成します。

sudo cp -R /var/lib/mysql/ ~/mysql

次にMySQLをパージします(これにより、php5-mysqlとphpmyadminおよび他の多くのライブラリが削除されるため、この後にいくつかのアイテムを再インストールする準備をしてください。

sudo apt-get purge mysql-server-5.1 mysql-common

フォルダー/ etc / mysql /を削除し、その内容を削除します

sudo rm /etc/mysql/ -R

次に、古いデータベースファイルがまだ/ var / lib / mysql /にあることを確認します。そうでない場合は、フォルダーにコピーして、root:rootをchownします。

(ファイルがもう存在しない場合にのみこれらを実行します)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
sudo cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

次にmysqlサーバーをインストールする

sudo apt-get install mysql-server

最後に、phpmyadminやphp5-mysqlなどの不足しているパッケージを再インストールします。


1
優れた。魅力として働いた。すべてが再び動作します。注:このディレクトリを削除する必要はありませんでしたsudo rm /etc/mysql/ -R-私の場合は存在しませんでした。とにかく-幸いにもそれはWordpressのをテストするためにインストールするだけでローカルだった...実サーバO_Oにどうなるのだろうか
ラデク

apt-get --reinstall install mysql-server-xxが仕事をしてくれました。
屋島

これでうまくいきましたが、apt-get updatedovecotとphp5-mysqlが削除されたので、おそらく事前に行うべきだったでしょう。これらは、更新後にのみ再インストールできました。私がやった後、すべてが再び正常に動作していました。
アントンチャニング

私は取得-bash: cd: /var/lib/mysql/: Permission deniedして使用sudo -iしても動作しません。
シャーロット14年

@LittleBigBotそれを修正する変更を加えました。
AWinter 14


12

私はこれと同じ問題を抱えていましたが、私にとっては、InnoDBログファイルはmysqlが予期していたものとは異なるサイズであり、アップグレード中に静かに失敗しました。

12.04へのアップグレード時に消去されるカスタム構成ファイルがあり、ログファイルのサイズをデフォルト構成以外のものに設定しました。

ファイルを削除する必要があります:/ var / lib / mysql / ib_logfile *

ファイルが削除されると、mysqlはデフォルトサイズの新しいログファイルを開始および作成できるようになります。


ビンゴ。私たちの場合、開発者はinnodbのいくつかの設定を変更しました(そして、彼も私もそれが問題を引き起こす可能性があることを知りませんでした)。これにより、mysqlが起動しなくなりました。これらの構成ファイルを削除すると、MySQLを起動できました。
gaoshan88

ビンゴ-innodb_log_file_sizeの設定を変更しました。
tweak2 14

9

ほとんどのエラーは、サーバーを詳細な非デーモンモードで起動し、出力を監視することで表示されます。

sudo mysqld --verbose

7

私は同じ問題を抱えていましたが、上記の答えはどれも私を助けませんでした。そのため、最終的な希望として、ディスク領域を解放しようとしました。/ var / logから不要なログファイルを削除するだけで、2.5Gのスペースが解放されました。その後、MySQLは正常に起動しました。


うん、これも私の問題でした。mysqlは、起動時に起動されていませんでした。その後、端末に表示されるシステム情報がありました。「/の使用率:95.1%」そのため、mysql(および他のプロセス)を開始するための十分な空き領域がありませんでした。ファイルをクリーンアップする必要があり、mysqlは問題なく起動しました。
スクリーンバッグ

これは私の場合でした。ディスクのクリーンアップとMysqlが機能し始めます。
セルゲイロマノフ14年

5

これは時々起こります。mysqlが起動しなくなる可能性のあるいくつかの異なる問題がありますが、私が知っている最も一般的な問題のいくつかをここに記述します。

注-最も一般的な問題について説明しているため、すでにmysqlサービスを削除およびインストールするか、単にmysqlサービスを再インストールしたことを前提としています。

インストールする- sudo apt-get install mysql-server mysql-client
削除する- sudo apt-get remove mysql-server mysql-client
パージする(ファイル+構成を削除する)- sudo apt-get purge mysql-server mysql-client
再インストールする-sudo apt-get install --reinstall mysql-server mysql-client

  1. my.cnfファイルはデフォルトのディレクトリにありません。(デフォルトでは)/etc/my.cnfまたはのいずれかにあり/etc/mysql/my.cnfます。

  2. mysqlデータファイルが置かれているハードドライブに十分なスペースがありません。データベースが大きくなりすぎてハードドライブを100%使用すると、サービスは失敗します。

  3. アップグレード後、my.cnfファイルが正しい場所にあることを確認してください。アップグレード方法またはアップグレード元のバージョンに応じて、前述のように、/etc/my.cnfまたは/etc/mysql/my.cnf前述のようになります。また、ファイルには名前mysql.confだけでなく名前を付けることもできますmy.cnf。これは、mysql.comからバイナリをダウンロードした場合に発生します。

  4. dmesgmysqlサービスの内容を確認するためにa を実行すると、ロードエラーが発生するため、エラーメッセージとしてスローされます。また、なぜこれが起こっているのかも言っているかもしれません。dmesgターミナルで単独で入力すると、世界が表示されます。必要なのはmysqlに関する情報なので、次のようにします。dmesg | grep mysqlこれにより、mysqlを含む行がスローされます。

  5. my.cnfまたはmysql.confファイルが正しいことを確認してください。12.04ではMySQLはバージョン5.5、11.10ではバージョン5.1です。confファイルにいくつかの変更が加えられている可能性があり(Havenは実際にはチェックしていません)、馬鹿げているように聞こえるかもしれませんが、確かに問題が生じる可能性があります。

  6. ソケットの問題に関連するエラーは通常、間違った場所を指すファイルmy.cnfまたはmysql.confファイルの障害であり、通常は次のように表示されます。

    ソケット「/var/run/mysqld/mysqld.sock」を介してローカルMySQLサーバーに接続できません

    この問題の他のソースは、システム上の実際のmysqlに必要なスクリプトより古いスクリプトを使用している可能性があるため、間違ったフォルダーを指しているという点でmysqlファイルに関連しています/etc/init.d(正しく更新されていない可能性があり、上書きされませんでした構成ファイルなど)。そのため、この2つのファイルのいずれかを編集して、それらが別の場所を指しているかsudo service mysql restartどうかを確認し、それが機能するかどうかを確認するだけです。

  7. mysqlのエラー固有の出力をよりよく見るには、次のようにします。

    cat /var/log/mysql.err-mysqlエラーを表示します。私はこのようにそれになるだろうcat /var/log/mysql.err | lessので、あなたはあまりにも多くの情報が飛ぶ見るために起こる場合はless、あなたがの出力を通してあなたの方法をスクロールするのに役立ちますcat

    同じcat /var/log/mysql.logことが当てはまります。エラーが表示された場合は、質問に入力するか、コメントを入力することで、より迅速に回答できます。

  8. 接続の問題と実際に実行されているサービスに苦しんでいる場合は、サーバーのファイアウォールが3306ポート(着信接続)を介した接続を許可しているかどうかを確認してください。その後、ルーター(該当する場合)がポート3306をブロックしていないかどうかを確認します。基本的にネットワークテストを実行して、mysqlに割り当てられたポートに関連する問題の発生元を確認します。

すべてが正常であれば、mysqlサービスが実行されているかどうかをテストしますtype service mysql status

最後の手段として。mysqlを実行しているのにログインできない場合は、次を試してください。

  1. MySQLサーバーを停止します。

    sudo /etc/init.d/mysql stop または sudo service mysql stop

  2. mysqld手動構成でサービスを手動で開始する

    sudo mysqld --skip-grant-tables &

    (&を追加することを忘れないでください。別のターミナルを開く必要があります。&はプロセスをバックグラウンドに送信し、同じターミナルを使用して強制終了できます)。

  3. ROOTとしてmysqlデータベースにログインします

    mysql -u root mysql

  4. MyPASSWORDを新しいパスワードに置き換えて次を入力します

    UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

これでMysqlサービスにrootとして再度ログインするのに十分なはずです。それが役に立てば幸い。


迅速なフィードバックをありがとう。/etc/mysql/my.cnf私の場合、my.cnfファイルがあります。その場所は正しいですか?dmesg私の理解を超えた出力がたくさんあります:/実際に5.1がインストールされていました-それは結果をもたらしますか?
-radek

1
ファイルを見つけても場所を気にしないでください。dmesgのmysql出力をよりよく見るために、答えを更新しましょう。
ルイスアルバラード

4

Ubuntu Server 12.04 LTSにアップグレードした後、同じ問題が発生しました

sudo apt-get install mysql-server 

それは修正するのに十分でしたが、spotwebの古いデータベースについて文句を言いました。spotwebを削除して修正しました。

sudo apt-get purge spotweb

mysqlの再構成:

sudo dpkg-reconfigure mysql-server-5.5

4

誰かが同様の問題に直面した場合に備えて、これを追加します。すべてのアンインストールと再インストールを試みましたが、役に立ちませんでした。ソリューションを見つけるための鍵は、upstartがエラーログをこのフォルダーに配置することでした

/ var / log / upstart /

mysqlの

/var/log/upstart/mysql.log

開いたときにこのメッセージがありました

15行目の/etc/apparmor.d/tunables/globalの/etc/apparmor.d/usr.sbin.mysqldのAppArmorパーサーエラー:「tunables / home」を開けませんでした

/etc/apparmor.d/tunables/フォルダーを見ると、その中にホームファイルがありませんでした。

/etc/apparmor.d/tunables/homeを編集し、これらのコメントされていない行がある別のコンピューターから内容をコピーしました

@ {HOME} = @ {HOMEDIRS} / * / / root /

@ {HOMEDIRS} = / home /

ここで誰かが同様の問題に直面しています

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303

その後、私はサービスを再起動することができました



1

アップグレード後、mysql-server / mysql-server-5.5がインストールされておらず、5.1もインストールされていないことがわかりました。my.cnfの名前をmy.cnf_oldに変更し、mysql-servenをインストールしようとしました。インストール中に、ルートパスワードを設定できなかったというエラーメッセージがありました。この後、設定、apparmorなどを確認しました。すべてが大丈夫のようでした。私の次の試みはmysql-serverを再構成することでしたが、パッケージが完全にインストールされていないと不平を言いました。だから私はアンインストールすることにし、このapt-getの間にパッケージを修正し、現在は動作しています。何も変えなかったので、理由はわかりません。


1

私は同様の問題を抱えていましたが、すぐに防具まで突き止められました。以前にこの問題を教えてくれたことを思い出しました。

これらの設定を変更し、システムでapparmorを使用している場合は、/ etc / apparmor.d / usr.sbin.mysqldも調整する必要がある場合があります。例えば。これらの行が追加されました(my.cnfへのシンボリックリンクを許可し、おそらくシンボリックリンクされたファイルを読み取れるようにするため):

/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr、/path/to/symlinked/my.cnf r、...}


1

私の場合、Ubuntu 12.04の新規インストールにMySQLをインストールしようとしましたが、「root」ユーザーのパスワードの設定でエラーが発生する理由がわかりませんでした。上記のすべてのソリューションを試しましたが、何もしません。

その後、すべてをパージ/削除することにし、MySQLサーバーをアンインストールし、そのすべてのフォルダー(/ etc / mysql /および/ var / lib / mysql /)を削除しました。最終的には、再インストールすると、パスワードを設定してサーバーインスタンスを起動できました。


0

ターミナルに再度インストールし、my.cnfを実行させることができます:

sudo apt-get install mysql-server-5.1
sudo apt-get --reconfigure mysql-server-5.1
sudo apt-get update
sudo start mysql my.cnf

このように動作する可能性があります。


0

performance_schema[mysqld]に追加する/etc/mysql/my.confとこのエラーが発生するという問題があります。その行を削除し、mysqlを再起動できました。

編集:ramの1ギガバイトだけでは、performance_schemaを有効にしてmysqldを起動するには不十分です。私は3つのギグにぶつかりましたが、うまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.