UbuntuでMySQLパスワードを変更する方法

Ubuntuで[MySQL](https://cloud.tencent.com/product/cdb?from=10680)パスワードを変更するにはどうすればよいですか?収集する方法はおおまかに次のとおりですが、より一般的に使用される方法です。

コンソールにログインします

mysql -uroot -p  

パスワードを入力し、 MySQLを入力します

use mysql;
update user set password=password('123456') where user='root' and host='localhost';

成功しなかったことがわかり、次のエラーが報告されます

ERROR 1054(42S22): Unknown column 'password'in'field list'

つまり、フィールド passwordは存在しません。MySQL5.7の後に passwordフィールドがないことがわかります。showcreatetableuserを使用して表示します。

user  | CREATE TABLE `user`(`Host`char(60) COLLATE utf8_bin NOT NULL DEFAULT '',`User`char(32) COLLATE utf8_bin NOT NULL DEFAULT '',`Select_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Insert_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Update_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Delete_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Drop_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Reload_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Shutdown_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Process_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`File_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Grant_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`References_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Index_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Alter_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Show_db_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Super_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_tmp_table_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Lock_tables_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Execute_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Repl_slave_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Repl_client_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_view_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Show_view_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_routine_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Alter_routine_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_user_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Event_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Trigger_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`Create_tablespace_priv`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`ssl_type`enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',`ssl_cipher` blob NOT NULL,`x509_issuer` blob NOT NULL,`x509_subject` blob NOT NULL,`max_questions`int(11) unsigned NOT NULL DEFAULT '0',`max_updates`int(11) unsigned NOT NULL DEFAULT '0',`max_connections`int(11) unsigned NOT NULL DEFAULT '0',`max_user_connections`int(11) unsigned NOT NULL DEFAULT '0',`plugin`char(64) COLLATE utf8_bin NOT NULL DEFAULT 'mysql_native_password',`authentication_string` text COLLATE utf8_bin,`password_expired`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',`password_last_changed` timestamp NULL DEFAULT NULL,`password_lifetime`smallint(5) unsigned DEFAULT NULL,`account_locked`enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
 PRIMARY KEY(`Host`,`User`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'

新しいバージョンの MySQLは、 passwordの代わりに authentication_stringを使用します。フィールドがわかったので、パスワードを変更します。

update user set authentication_string=PASSWORD("変更したいパスワードをここに入力してください") where user='root';

flush privileges;

わかりました。MySQLパスワードは正常に変更されました。

上記の方法の前提は、元のパスワードを覚えていればMySQLにログインできるということですが、パスワードを忘れた場合に変更するにはどうすればよいですか?

MySQL 5.7パスワードを忘れた、パスワードをもう一度変更する####

/ etc / mysql / mysql.conf.d / mysqld.cnfファイルを編集し、[mysqld]領域に skip-grant-tables構成を追加します

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf;

次に、MySQLサービスを再起動します

sudo service mysql restart

その後、パスワードなしでMySQLにログインできます。

mysql -uroot -p 
# パスワードを入力し、表示されたらEnterキーを押します

次に、パスワードを変更できます。実際、方法は上記と同じです。

use mysql;
update user set authentication_string=PASSWORD("変更したいパスワードをここに入力してください") where user='root';

flush privileges;

変更後は、必ず skip-grant-tablesを削除してください。次に、MySQLサービスを再起動します。

MySQL8のパスワード変更####

同様に、構成ファイルを編集して skip-grant-tablesを追加し、MySQLを再起動して、パスワードを空白のままにします

use mysql;
update user set authentication_string='' where user='root';
exit;

ALTER USER "root"@"localhost" IDENTIFIED  BY "新しいパスワード";

skip-grant-tablesを削除し、MySQLを再起動します。

mysql -uroot -p; 
# パスワードを入力し、表示されたらEnterキーを押します
use mysql;
ALTER USER "root"@"localhost" IDENTIFIED  BY "新しいパスワード";

MySQL 8、パスワードルールは強力な検証を使用します。パスワードが単純すぎるとエラーが発生する可能性があります。

Recommended Posts

UbuntuでMySQLパスワードを変更する方法
Ubuntu14.04でMysqlリモートアクセスを有効にする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
ubuntuでijkplayer-androidをコンパイルする方法
Ubuntu14.04にmysqlをインストールする方法
Ubuntu14.04にmysqlをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntuでの大胆なインストール手順
ubuntu16.04でTensorflowをインストールする方法
Ubuntu 18.04(linux)にMySQLをインストールする方法
Ubuntu14.04でPHP設定を変更する方法
MySQLをインストールしてUbuntuのデフォルトパスワードを変更するための詳細な手順
Ubuntu16.04にmysqlをインストールします
Ubuntu20.04にアップグレードする方法
UbuntuにMySQLをインストールする
Ubuntu20.04にアップグレードする方法
Linuxでvimエディターをインストールする方法(Ubuntu 18.04)
CentOS8でrootパスワードをすばやく変更する方法
Ubuntuでgccコンパイラをより速くインストールする方法
Ubuntu18.04に最新のMySQLをインストールする方法
DebianおよびUbuntuでDebファイルを再パッケージ化する方法
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
ubuntuの下に2つのバージョンのOpenCVをインストールするにはどうすればよいですか?
Ubuntu 16.04LTSにアップグレードする方法
Ubuntuのnginxサーバーでhttpsを開く方法
UbuntuでXFSファイルシステム用のLVMを作成する方法
Ubuntu14.04でNginxを使用してパスワード認証を設定する方法
Ubuntu 18.04linuxシステムにJDKとMysqlをインストールする方法
UbuntuでLinuxのウィンドウに共有ディスクをマップする方法
CentOS8にMySQLをインストールする方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
ubuntuでhanlpを使用する方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu14.04でPHP7にアップグレードする方法
リモートUbuntuサーバーに接続されたMySQL
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu 18.04にMySQLをインストールします(グラフィックチュートリアル)