root
MySQL のユーザーのパスワードを変更するにはどうすればよいですか?null
つまり、パスワードなし、または''
MySQL コマンド ライン クライアントから変更できますか?
21 に答える
私と「5.7.11 MySQL Community Server」のために働いた:
use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
「auth_socket」に設定されていたため、「plugin」フィールドも変更する必要がありました。
その後mysql -u root
、パスワードなしで接続できました。
空のパスワードが必要な場合は、パスワードを null に設定し、パスワード ハッシュ関数を使用しないようにする必要があります。
コマンドラインで:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot
MySQL の場合:
use mysql;
update user set password=null where User='root';
flush privileges;
quit;
- ユーザーrootとしてmysqlに接続します(次の2つの方法のいずれかを使用します)
- rootとしてログインし、を使用してmysqlを起動し
mysql -p
、現在のrootパスワードを入力します - selfとしてログインし、を使用してmysqlを起動し
mysql -u root -p
、現在のrootパスワードを入力します
- rootとしてログインし、を使用してmysqlを起動し
mysql> set password = password('');
終わり!ルートパスワードはありません。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
次の 5 つの簡単な手順で、MySQL データベース サーバーのパスワードを回復できます。
ステップ 1 : MySQL サーバー プロセスを停止します。
ステップ # 2 : --skip-grant-tables オプションを使用して MySQL (mysqld) サーバー/デーモン プロセスを開始し、パスワードの入力を求めないようにします。
ステップ # 3 : root ユーザーとして mysql サーバーに接続します。
ステップ # 4 : 新しい mysql ルート アカウントのパスワードを設定します。つまり、mysql パスワードをリセットします。
ステップ # 5 : MySQL サーバーを終了して再起動します。
各ステップで入力する必要があるコマンドは次のとおりです (root ユーザーとしてログイン)。
ステップ 1 : mysql サービスを停止する
# /etc/init.d/mysql stop
出力:
Stopping MySQL database server: mysqld.
ステップ # 2 : パスワードなしで MySQL サーバーを起動します。
# mysqld_safe --skip-grant-tables &
出力:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
ステップ # 3 : mysql クライアントを使用して mysql サーバーに接続します。
# mysql -u root
出力:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
ステップ # 4 : 新しい MySQL ルート ユーザー パスワードを設定する
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
ステップ # 5 : MySQL サーバーを停止します。
# /etc/init.d/mysql stop
出力:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables
ステップ # 6 : MySQL サーバーを起動してテストする
# /etc/init.d/mysql start
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql -u root -p
ソース: http://www.cyberciti.biz/tips/recover-mysql-root-password.html
MySQL 8.0 の場合:
SET PASSWORD FOR 'root'@'localhost' = '';
mysql
データベースを直接編集するのは得策ではありません。
次の手順を好みます。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;
user64141による回答
use mysql;
update user set password=null where User='root';
flush privileges;
quit;
MariaDB 10.1.5 では機能しませんでした (MySQL の代替品と思われます)。アップストリームの変更であるかどうかを確認するために MySQL 5.6 でテストしていませんが、私が得たエラーは次のとおりです。
エラー 1048 (23000): 列 'パスワード' を null にすることはできません
しかし、null を空の一重引用符または二重引用符に置き換えるとうまくいきました。
update user set password='' where User='root';
また
update user set password="" where User='root';
ルートパスワードを知っていて、それをリセットしたいだけの場合は、次のようにします。
コントロール パネル > 管理ツール > サービスから MySQL サービスを開始します。(以前に停止した場合のみ!そうでない場合は、この手順をスキップしてください)
MySQL ワークベンチを起動します
このコマンド/SQL 行を入力してください
ALTER USER 'root'@'localhost' PASSWORD EXPIRE;
他のユーザー パスワードをリセットするには、root の代わりに他のユーザー名を入力します。
私はnodejsとwindows 10を使用しています。2つの答えの組み合わせがうまくいきました。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;
に続く:
restart;
これがまだ問題を抱えている他の人に役立つことを願っています.