web-dev-qa-db-ja.com

mysqlを起動できません-mysqlの再起動が速すぎて停止しました

今日、ubuntu 12.04の新規インストールを行い、ローカル開発環境のセットアップに取り掛かりました。 mysqlをインストールし、/etc/mysql/my.cnfを編集してInnoDBを最適化しましたが、mysqlを再起動しようとするとエラーで失敗します。

[20:53][tom@Pochama:/var/www/website] (master) $ Sudo service mysql restart
start: Job failed to start

Syslogは、initスクリプトに問題があることを示しています。

> tail -f /var/log/syslog

Apr 28 21:17:46 Pochama kernel: [11840.884524] type=1400 audit(1335644266.033:184): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=760 comm="apparmor_parser"
Apr 28 21:17:47 Pochama kernel: [11842.603773] init: mysql main process (764) terminated with status 7
Apr 28 21:17:47 Pochama kernel: [11842.603841] init: mysql main process ended, respawning
Apr 28 21:17:48 Pochama kernel: [11842.932462] init: mysql post-start process (765) terminated with status 1
Apr 28 21:17:48 Pochama kernel: [11842.950393] type=1400 audit(1335644268.101:185): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=811 comm="apparmor_parser"
Apr 28 21:17:49 Pochama kernel: [11844.656598] init: mysql main process (815) terminated with status 7
Apr 28 21:17:49 Pochama kernel: [11844.656665] init: mysql main process ended, respawning
Apr 28 21:17:50 Pochama kernel: [11845.004435] init: mysql post-start process (816) terminated with status 1
Apr 28 21:17:50 Pochama kernel: [11845.021777] type=1400 audit(1335644270.173:186): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=865 comm="apparmor_parser"
Apr 28 21:17:51 Pochama kernel: [11846.721982] init: mysql main process (871) terminated with status 7
Apr 28 21:17:51 Pochama kernel: [11846.722001] init: mysql respawning too fast, stopped

何か案は?


私がすでに試したこと:

グーグルでapparmorを使用してUbuntuのバグを見つけました( https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/970366 )、apparmorを強制モードから文句を変更しましたモード:

Sudo apt-get install apparmor-utils
Sudo aa-complain /usr/sbin/mysqld
Sudo /etc/init.d/apparmor reload

しかし、それは助けにはなりませんでした。まだmysqlを起動できません。

また、InnoDBログファイルのサイズがmysqlが予想していたサイズと異なるため、この問題が発生する可能性があると考えました。 Sudo mv /var/lib/mysql/ib_logfile* /tmpを使用して再起動する前に、innodbログファイルを削除しました。しかし、運はありません。

回避策:12.04を再インストールしました。/etc/mysql/my.cnfに触れないようにしてください。 Mysqlは機能しているので、必要なことを実行できます。しかし、私はいくつかの時点でそれを編集する必要があります-うまくいけば解決策を見つけたでしょうか、この質問はその時点で答えられているでしょう...

33
Tom

私はついに問題を理解しました。基本的に、一部のパラメーターの定義はmysqlの以前のバージョンから削除され、異なる名前に置き換えられました。修正するには、/ etc/mysql/my.cnfで以下を置き換えます:

# Tom Added to ensure the server character set is set to utf8
default-character-set = utf8
default-collation     = utf8_general_ci

で:

# Tom Added to ensure the server character set is set to utf8
character_set_server  = utf8
collation_server      = utf8_general_ci

これは、関連するランチパッドのバグレポートです。 https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/95812

または簡単に実行します:

# Miraz added dpkg-reconfigure
dpkg-reconfigure mysql-server-5.5

ただし、古いmysqlバージョンがインストールされていないことを確認してください。インストールされている場合は削除してください。

# Miraz quick mysql package check
dpkg -l *mysql*
29
Tom

同様の問題がありました。問題が何であるかを示すエラーログが表示されなかったため、イライラしていました。

私の場合、innodb_buffer_pool_sizeに設定した値は、サーバーのメモリに対して大きすぎました。

Mysqldをmysqlユーザーとして直接実行することでこれを見つけました。

# su mysql
# mysqld

これにより、実際にエラー出力が表示されます。

10
Joel

Innodbにはデフォルト設定(innodb_buffer_pool_size)があり、128Mに設定されています-これはサーバーには大きすぎる可能性があります(特に小さなAmazon EC2 AMIを使用している場合-私はそうでした) /etc/mysql/my.cnfへの行

innodb_buffer_pool_size = 16M

私はここでこの修正について書きました http://www.mlynn.org/2012/07/mysql-5-5-on-ubuntu-12-04-job-failed-to-start

10
Michael Lynn

同様の問題もありました。以下の項目は、mysqlサーバー5.5から削除されたことを示しています。
my.cnfにそれらがある場合、開始しません。 #でコメントアウトします。
(派生情報: http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html

影響を受けるオプションは次のリストに示されています。

 --master-Host
 --master-user
 --master-password
 --master-port
 --master-connect-retry
 --master-ssl
 --master-ssl-ca
 --master-ssl-capath
 --master-ssl-cert
 --master-ssl-cipher
 --master-ssl-key
3
Michael Salamon

/etc/mysql/my.cnfおよび/etc/mysql/conf.d/にあるMySQL構成のエラーに要約されるようです。

私の場合、これは間違ったbind-address値でした。マシンのIPアドレスが変更され、MySQLがバインドできなくなったためです。これについては このブログ記事 でお気軽にご覧ください。

3
boteeka

起動後プロセス(/etc/init/mysql.conf)の失敗をデバッグする良い方法は、upstartログを確認することです:

Sudo tail -f /var/log/upstart/mysql.log 

それは私にソケットエラーを与えました:

エラー: 'ソケットを介してローカルMySQLサーバーに接続できません

私の場合、[mysqld]my.cnfグループの下にuser設定がないことが原因でした。

2
prusswan

/tmp権限を確認してください。私がこの問題を抱えていたのは、何度もグーグルして再起動した後、/tmpパーミッションが755であることがわかりました。

777に変更すると、mysqlがうまく起動します。

1
shgnInc

同じ問題がありました。 mysql my.cnfマスタースレーブレプリケーションであることが判明しました。 /var/log/mysql/error.logを確認してください。

それが少し助けになることを願っています。正常に動作するapparmorで2時間を無駄にする前に、まずmysqlの設定を確認してください。

1
shadowdroid

11.10から12.04にアップグレードした後、同様のMySQLエラー(「ジョブが開始できませんでした」)が発生した場合、 https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.1のコメント#27/+ bug/573318?comments = all 完璧に機能しました。見積もり:

私にとっての問題は、アップグレード後にファイル/etc/apparmor.d/local/usr.sbin.mysqldが存在しなかったことです。空のファイルの1つから手動でコピーしました(つまり、ヘッダーコメントのみがありました)。

1
marcvangend

私にとっての解決策は、行を削除することでした...

set-variable = max_connections=200

...これはMySQL 3.x構文であり、変更する必要があります

max_connections=200
1
Ken West

Mysqld-5.5.53 ubuntu 14.04.1への自動更新後、mysqlは起動しませんでした。 syslogに次の行が表示されました。

Oct 27 06:05:51 hostname kernel: [  593.168925] init: mysql post-start process (4997) terminated with status 1
Oct 27 06:05:51 hostname kernel: [  593.178241] type=1400 audit(1477562751.231:31): apparmor="STATUS" operation="profile_replace" profile="unconfined" name
Oct 27 06:05:51 hostname kernel: [  593.204392] init: mysql main process (5032) terminated with status 1
Oct 27 06:05:51 hostname kernel: [  593.204404] init: mysql respawning too fast, stopped

この問題は、次のディレクトリを作成することで解決しました。

Sudo mkdir /var/lib/mysql-files
Sudo chmod 700 /var/lib/mysql-files
Sudo chown mysql:mysql /var/lib/mysql-files
Sudo /etc/init.d/mysql start
1
Yapsr

同じ問題がありました。私にとっては、bind-address/etc/mysql/my.cnfファイルに不適切に設定されていました。したがって、my.cnfに正しくないものはすべてこの問題を引き起こす可能性があります。これを問題として示しているログには何も見つかりませんでした。

1
Chris

私の問題は空き容量の0%でした!再確認:-)

1
moamahi

同じエラーメッセージが表示されましたが、原因は異なりました。ファイルシステム全体が読み取り専用モードになったため、InnoDBテーブルが破損していました。 /etc/mysql/my.cfに次の行を追加して破損を修正しました

innodb_force_recovery = 1

MySQLを開始しました:

Sudo service mysql start

MySQLが起動し、すべてのテーブルをダンプ/エクスポートしました。 innodb_force_recoveryを0(デフォルト)に変更し、MySQLを再起動しました。

Sudo service mysql restart

MySQL 5.5でUbuntu 12.04を使用しています。問題を発見するまでに長い時間がかかりました。この答えで誰かを助けることができるといいのですが。 http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html も参照してください

0
Coanda

私の場合、問題は/etc/mysql/my.cnfファイル許可でした。

私は便宜のためにそれを変更しましたが、それは次のようなエラーを引き起こしました

kernel: [604528.290448] type=1400 audit(1424350956.727:193): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=15008 comm="apparmor_parser"

my.cnfパーミッションは766でしたが、私はそれを744に変更し、3つのエラーのうち2つがなくなりました。同様のエラーメッセージが1つありますが、mysqlの起動を妨げませんでした。

お役に立てれば...

0
Marcelo_nnn

私の場合、間違ったbind-address宣言がありました。 ifconfigを実行してEC2のプライベートIPアドレスを検出し、/etc/mysql/my.cnfファイルで更新しました。

0
Ralph

私の場合、/ tmpでパーミッションの問題が見つかりました。 tmpのディレクトリ許可を766に設定し、mysqlサービスを再起動しました。修正済み。

Amazon ec2インスタンスで実行されているUbuntu 12.04でこの問題を修正するために、MySQLとAppArmorのバージョンを推奨どおり更新しました here それでも数回エラーが表示されますが、MySQLは自動的に再起動します。

0
Jay Prakash