web-dev-qa-db-ja.com

mysqlのrootパスワードをリセットできません

ローカルmysqlインストールのルートパスワードをリセットする必要がありますが、それはできません。私はこれを試しました:

$ Sudo /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld                                                                                                              [ OK ] 
[1]-  Exit 1                  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
[2]+  Exit 1                  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
reg@regDesktopHome:~$ Sudo mysqld --skip-grant-tables &
[1] 13651
reg@regDesktopHome:~$ 140627 19:02:02 [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.

reg@regDesktopHome:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
reg@regDesktopHome:~$ Sudo mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[1]+  Exit 1                  Sudo mysqld --skip-grant-tables

パスワードをリセットするにはどうすればよいですか? 編集1私はこれを得ました:

$ ps ax| grep mysql
16515 ?        Ssl    0:00 /usr/sbin/mysqld
16551 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ Sudo kill -9 16515
reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql
16678 ?        Ssl    0:00 /usr/sbin/mysqld
16715 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

私がそれを殺すとすぐにプロセスが自動的にmysqlを再起動しているように見えます...

27
stdcerr

最初に使用してみてください

mysql -u root -p

プロンプトでパスワードを入力し(覚えている場合)、sql-rootユーザーとしてログインします(スイッチ-pはパスワード用です)。

Mysqlのrootパスワードを本当にリセットする必要がある場合、簡単な方法があります-dpkg-reconfigureでパッケージを再設定します。

MySQLルートパスワードをリセットする簡単な手順:

  1. mysql-server;のバージョンを確認してください。

    apt-cache policy mysql-server
    

    その他の情報の中でインストールされているバージョンを示す行を参照してください。例えば私のインストールの場合:

    Installed: 5.5.37-0ubuntu0.12.04.1
    

    (これにより、システムにmysql-server-5.5がインストールされていることがわかります。)

  2. 次を使用して再構成を開始します。

    Sudo dpkg-reconfigure mysql-server-*.*
    

    mysql-server-*.*は、お使いのバージョンに置き換える必要があります。 (私にとってはmysql-server-5.5です)。これにより、データベースデーモンが停止します。新しいパスワードを入力し、再構成を確認する必要がある場所にプロンプ​​トが表示されます。

    snap1

    デーモンは、再構成が完了すると自動的に開始されます。

  3. その後、次を使用してログインできます。

    mysql -u root -p
    

    データベース管理タスクを開始します。

参照:

  1. https://help.ubuntu.com/community/MysqlPasswordReset [ページに示されているように、すぐにクリーンアップされます。]

  2. buntu Server Guide 特定のバージョンに関連しています。

43
precise

このブログからの参照:

ステップ1:MySQLサービスを停止します。

Sudo service mysql stop

ステップ2:実行中のすべてのmysqldを強制終了します。

Sudo killall -9 mysqld

手順3:mysqldをセーフモードで起動します。

Sudo mysqld_safe --skip-grant-tables --skip-networking &

ステップ4:mysqlクライアントを起動する

mysql -u root

ステップ5:ログインに成功したら、このコマンドを実行してパスワードを変更してください。

FLUSH PRIVILEGES;

ステップ6:mysql root passwordを更新できます。

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

mysql> 5.7の場合、上記の代わりにこれを使用してください:

UPDATE mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';

ステップ7:このコマンドを実行してください。

FLUSH PRIVILEGES;

ステップ8:mysqlコンソールを終了する

exit

ステップ9:mysqld_safeを強制終了してmysqlを開始する

Sudo killall mysqld_safe && Sudo service mysql start
21
Anvesh

Ubuntu 16.04およびmysql-server-5.7では、正しい答えはolafureの最後のコメントです。dpkg-reconfigure mysql-server-5.7は機能しなくなりました。

Sudo service mysql stop
Sudo killall mysqld
Sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root

これでmysqlコンソールで>mysql

USE mysql;
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
\q

goodmysqlプロセスを再起動します

Sudo killall mysqld
Sudo service mysql start

新しいパスワードを確認してください

mysql -u root -p
Enter password: newpass
mysql>
9
Pierre-Damien

MySQL 5.7以降、初期インストール中にパスワードを空のままにすると、そのユーザーの認証はauth_socketプラグインに基づきます。

パスワードを変更する正しい方法は次のとおりです。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

3
Barun

これでファイルを作成します。

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

Mysqlサーバーを停止し、これを実行します:

mysqld_safe --init-file=/home/me/mysql-init &

詳細についてはこちらをご覧ください: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

0
Elier

残りの答えからは何もうまくいかないようでした。これは私の解決策です:

Sudo service mysql stop
Sudo mysqld_safe &
Sudo mysql -u root

そこで:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;
QUIT;

次に:

Sudo killall mysqld
Sudo service mysql start
Sudo mysql -u root -p
0
Wtower