私はMySQLの初心者なので、我慢してください。
11.10から12.04へのアップグレードが完了しました。
すべてが問題なく機能しているようで、私のソフトウェアと設定はすべて正常に機能しています。 MySQLとは別に。
私が試みるとき:
Sudo start mysql
エラーが表示されます:
start: Job failed to start
問題の原因をどこで診断できますか?そして(うまくいけば)-それを整理する方法は?
(アドバイスに従う自動開始を無効にしました here それが重要な場合)
更新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はアップグレード後に自動的に消え、再インストールする必要があったようです。
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などの不足しているパッケージを再インストールします。
Sudo dpkg-reconfigure mysql-server-5.5
私はこれと同じ問題を抱えていましたが、私にとっては、InnoDBログファイルはmysqlが予期していたものとは異なるサイズであり、アップグレード中に静かに失敗しました。
12.04へのアップグレードで消去されたカスタム構成ファイルがあり、ログファイルのサイズをデフォルト構成以外のものに設定しました。
ファイルを削除する必要があります:/ var/lib/mysql/ib_logfile *
ファイルが削除されると、mysqlはデフォルトサイズの新しいログファイルを開始および作成できるようになります。
ほとんどのエラーは、サーバーを詳細な非デーモンモードで起動し、出力を監視することで表示されます。
Sudo mysqld --verbose
私は同じ問題を抱えていましたが、上記の答えはどれも私を助けませんでした。そのため、最終的な希望として、ディスク領域を解放しようとしました。/var/logから不要なログファイルを削除するだけで、2.5Gのスペースが解放されました。その後、MySQLは正常に起動しました。
これは時々起こります。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
my.cnf
fileはデフォルトのディレクトリにありません。 (デフォルトで)/etc/my.cnf
または/etc/mysql/my.cnf
のいずれかに配置する必要があります。
Mysqlデータファイルが置かれているハードドライブに十分なスペースがありません。データベースが大きくなりすぎてハードドライブを100%使用すると、サービスは失敗します。
アップグレード後、my.cnf
ファイルが正しい場所にあることを確認してください。アップグレード方法またはアップグレード元のバージョンに応じて、前述のように/etc/my.cnf
または/etc/mysql/my.cnf
になります。また、ファイルにはmysql.conf
だけでなくmy.cnf
という名前を付けることもできます。これは、バイナリをmysql.comからダウンロードした場合に発生します。
dmesg
を実行すると、mysqlサービスがエラーメッセージとしてスローされるのを確認できます。ロードエラーが発生するためです。また、なぜこれが起こっているのかも言っているかもしれません。端末でdmesg
と入力すると、世界が表示されます。必要なのはmysqlに関する情報なので、次のようにします。dmesg | grep mysql
これにより、mysqlを含む行がスローされます。
my.cnf
またはmysql.conf
ファイルが正しいことを確認してください。 12.04ではMySQLはバージョン5.5、11.10ではバージョン5.1です。 confファイルにいくつかの変更があるかもしれません(Havenは実際にはチェックしていません)。
ソケットの問題に関連するエラーは通常、間違った場所を指しているmy.cnf
またはmysql.conf
ファイルの障害であり、通常は次のように表示されます。
ソケット「/var/run/mysqld/mysqld.sock」を介してローカルMySQLサーバーに接続できません
この問題の他の原因は、システム上の実際のmysqlに必要なスクリプトよりも古いスクリプトを使用している可能性があるため、/etc/init.d
のmysql
ファイルに関連しています。正しく更新されていない可能性があり、構成ファイルなどを上書きしていませんでした。そのため、この2つのファイルのいずれかを編集し、それらが他の場所を指しているかどうかを確認してから、Sudo service mysql restart
を実行して機能するかどうかを確認します。
Mysqlのエラー固有の出力をよりよく見るには、次のようにします。
cat /var/log/mysql.err
-mysqlエラーを表示します。 less
がcat
の出力をスクロールするのに役立つので、たまたま通過する情報が多すぎる場合は、cat /var/log/mysql.err | less
のようにします。
同じことがcat /var/log/mysql.log
にも当てはまります。エラーが表示された場合は、質問に入力するか、コメントを入力することで、より迅速に回答できます。
接続の問題と実際に実行されているサービスに苦しんでいる場合は、サーバーのファイアウォールが3306ポート(着信接続)を介した接続を許可しているかどうかを確認してください。その後、ルーター(該当する場合)がポート3306をブロックしていないかどうかを確認します。基本的にネットワークテストを実行して、mysqlに割り当てられたポートに関連する問題の発生元を確認します。
すべてが正常な場合、mysqlサービスが実行されているかどうかをテストするには、タイプservice mysql status
最後の手段として。 mysqlを実行しているのにログインできない場合は、次を試してください。
MySQLサーバーを停止します。
Sudo /etc/init.d/mysql stop
またはSudo service mysql stop
手動設定でmysqld
サービスを手動で開始します
Sudo mysqld --skip-grant-tables &
(&を追加することを忘れないでください。別のターミナルを開く必要があります。&はプロセスをバックグラウンドに送信し、同じターミナルを使用して強制終了できます)。
ROOTとしてmysqlデータベースにログインします
mysql -u root mysql
MyPASSWORDを新しいパスワードに置き換えて次を入力します
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
これでMysqlサービスにrootとして再度ログインするのに十分なはずです。それが役に立てば幸い。
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
誰かが同様の問題に直面する場合に備えて、これを追加します。すべてのアンインストールと再インストールを試みましたが、役に立ちませんでした。ソリューションを見つけるための鍵は、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/9823
その後、私はサービスを再起動することができました
私の場合、ここでのいくつかの答えよりもずっと簡単でした。 launchpadに関連するバグ が見つかりました。修正はコメント9に記載されているとおりです。
Sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
Sudo service apparmor restart
アップグレード後、mysql-server/mysql-server-5.5がインストールされておらず、5.1もインストールされていないことがわかりました。 my.cnfの名前をmy.cnf_oldに変更し、mysql-servenをインストールしようとしました。インストール中に、ルートパスワードを設定できなかったというエラーメッセージがありました。この後、設定、apparmorなどを確認しました。すべてが大丈夫のようでした。私の次の試みはmysql-serverを再構成することでしたが、パッケージが完全にインストールされていないと不平を言いました。だから私はアンインストールすることにし、このapt-getの間にパッケージを修正し、今は動作しています。何も変えなかったので、なぜかわかりません。
私の場合、Ubuntu 12.04の新規インストールにMySQLをインストールしようとしましたが、「root」ユーザーのパスワード設定でエラーが発生した理由がわかりませんでした。上記のすべてのソリューションを試しましたが、何もしません。
その後、すべてをパージ/削除することにし、MySQLサーバーをアンインストールし、そのすべてのフォルダー(/ etc/mysql /および/ var/lib/mysql /)を削除しました。最終的には、再インストールすると、パスワードを設定してサーバーインスタンスを起動できました。
私は同様の問題を抱えていましたが、すぐに防具まで追跡されました。以前にこの問題を教えてくれたことを思い出しました。
これらの設定を変更し、システムがapparmorを使用している場合、/ etc/apparmor.d/usr.sbin.mysqldも調整する必要がある場合があります。例えば。これらの行が追加されました(my.cnfへのシンボリックリンクを許可し、おそらくシンボリックリンクされたファイルを読み取れるようにするため):
/ usr/sbin/mysqld {... /etc/mysql/*.cnf lr、/path/to/symlinked/my.cnf r、...}
ターミナルで再度インストールし、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
このように動作する可能性があります。
performance_schema
の[mysqld]
の下に/etc/mysql/my.conf
を追加すると、このエラーが発生するという問題があります。その行を削除し、mysqlを再起動できました。
編集:ramの1ギガバイトだけでは、performance_schemaを有効にしてmysqldを起動するには不十分です。私は3つのギグにぶつかりましたが、うまくいきました。