webdevqa.jp.net

Mysqlが起動しない

Ubuntu 12.04LTS仮想マシンを実行しています。先週、VMが予期せず停止し、mysqlがVMで起動しなくなりました。これら2つのイベントは関連している可能性があり、関連していない可能性があります。

接続しようとすると:

$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

次に:

$ Sudo service mysql start
start: Job failed to start

そして

$ dmesg

[ 1838.218400] type=1400 audit(1374633238.253:50): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18473 comm="apparmor_parser"
[ 1838.358656] init: mysql main process (18477) terminated with status 1
[ 1838.358695] init: mysql main process ended, respawning
[ 1839.269303] init: mysql post-start process (18478) terminated with status 1

そして

$ service mysql status
mysql stop/waiting

これは、mysqlが起動時にクラッシュしていることを意味すると思います。

$ Sudo mysqld start
130723 21:51:24  InnoDB: Assertion failure in thread 3064211200 in file fut0lst.ic line 83
InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
02:51:24 UTC - mysqld got signal 6 ;

マニュアルによる 、データディレクトリ(/ var/lib/mysql)に移動し、これを実行しました:

myisamchk --silent --force */*.MYI

次に:

$ Sudo mysqld
...
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
...

データベースが破損していますか?回復するにはどうすればよいですか? mysqlを再インストールしますか?それほど劇的ではないものですか?データベースを失っても大丈夫です。システムが機能しているだけです。

4
John Naegle

Mysqld.sockファイルを再作成するとうまくいくかもしれません。

 cd /var/run/mysqld
 Sudo touch mysqld.sock
 Sudo chown mysql:mysql mysqld.sock
 Sudo chmod 1777 mysqld.sock
 Sudo service mysql restart

そうでない場合は、以下を実行して結果を投稿してください。

 cd /var/run/mysqld
 ls -al
1
CS.

壊れたMySQLインストールは、セーフモードで起動することで回避できる場合があります。

重要MySQLをセーフモードで実行するとセキュリティ設定が低下し、他の人があなたのデータにアクセスできるようになる可能性があります。

セーフモードで開始するには、次のコマンドを実行します。

Sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables

テーブルが実際に破損していることがわかった場合は、それらを修正するために実行できるいくつかの手順があります。これが良いチュートリアルへのリンクです。 http://tech.amikelive.com/node-36/mysql-50-recovering-crashedcorrupted-innodb-database/

http://www.mysqlperformanceblog.com/2008/07/04/recovering-innodb-table-corruption/

0
spuder

My.cnfをチェックインし、フォルダーtmpの場所を探します。次に、その場所の権限が777であることを確認します。フォルダのデフォルトのアクセス許可は755であり、フォームtmpであるため、777である必要があります。

エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'(2)を介してローカルMySQLサーバーに接続できません

0
shgnInc