web-dev-qa-db-ja.com

MySQLを起動してrootパスワードをリセットできない

Linuxボックスにmysql-serverをインストールしましたが、rootパスワードを忘れました(おっと)。インターネットを見回してみると、一般的な方法は次のとおりです。

  1. MySQLを停止します(Sudo service mysql stop
  2. MySQLを特別モードで起動します(Sudo mysqld_safe --skip-grant-tables
  3. ローカルサーバーにログインし、パスワードをリセットします(mysql -u root

私の問題は2番にあります。コマンドを実行すると、デーモンのログ記録と起動に関するいくつかの情報が表示され、次の行で終了します。

mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Sudo service mysql statusを使用すると、MySQLが実際に停止したことが確認されます。

なぜそんなに突然止まるのですか?そして(もっと重要なことに)パスワードをリセットできるように、どうすればそれを実行し続けることができますか?

前もって感謝します

[〜#〜] edit [〜#〜]これが「logginとデーモンの起動に関するもの」の完全なログです。

$ mysqld_safe --skip-grant-tables 
141219 16:55:20 mysqld_safe Logging to syslog.
141219 16:55:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141219 16:55:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
$ 

EDIT 2そして/ var/log/syslogの出力(ホスト名を<hostname>に置き換えました)

Dec 20 10:20:09 <hostname> mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Can't create test file /var/lib/mysql/<hostname>.lower-test
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Can't create test file /var/lib/mysql/<hostname>.lower-test
Dec 20 10:20:09 <hostname> mysqld: #007/usr/sbin/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [ERROR] Aborting
Dec 20 10:20:09 <hostname> mysqld: 
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Note] /usr/sbin/mysqld: Shutdown complete
Dec 20 10:20:09 <hostname> mysqld: 
Dec 20 10:20:09 <hostname> mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
1
Luke Moll

OK、/ var/lib/mysqlが存在しないか、mysqlユーザーにアクセスする権限がないようです。いずれにせよ、rootパスワードを忘れるよりも悪い問題があります。データベースがまったくないか、ファイルのアクセス許可や所有権が変更されています。

0
Mike Scott

この問題は、いくつかの問題が原因で発生する可能性があります。正確なエラーは"tail /var/log/mysql/error.log"から見つけることができます。これらの種類の問題に対するデフォルトの修正を追加しました。以下が機能しない場合は、ログからの印刷を更新して、情報を取得してさらに進んでください。

次のコマンドを使用して、すべてのMySQLプロセスを強制終了します。

ps aux | grep mysql kill pid

"which mysqld_safe"コマンドを使用してmysqldデーモンのパスを見つけます

Mysqld_safeの場所からテーブルを付与せずにMySQLを起動します

/mysqld_safe_available_directory/mysqld_safe --skip-grant-tables &

ex/bin/mysqld_safe

mysql -u root 

新しいパスワードを設定する手順:

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit
3
vembutech

私は同じ問題に直面しました/var/lib/mysqlの許可からの中止フォルダはユーザーmysqlに属し、rootは完全にアクセスできません

それを解決した:

$ Sudo su - mysql

$ mysqld_safe --skip-grant-tables &
0
raksa eng