序文 長い間、MySQL のアプリケーションおよび学習環境は MySQL 5.6 以前のバージョンであり、新しいバージョンである MySQL 5.7 の変更点や新機能には注目されていませんでした。今日、ルート パスワードを忘れてしまった人の対処を手伝っていたところ、以前の方法が機能しないことがわかりました。 具体的な状況は以下のとおりです。 ケース環境は以下のとおりです。 オペレーティング システム: Red Hat Enterprise Linux Server リリース 6.6 (Santiago) データベースバージョン: 5.7.18 MySQL Community Server (GPL) パスワードを忘れましたか? 間違ったパスワードを入力すると、次のエラー メッセージが表示されます。 [root@mytestlnx02 ~]# mysql -u ルート -p パスワードを入力してください: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード使用: YES) [root@mytestlnx02 ~]# MySQL サービスが開始されているかどうかを確認します。開始されている場合は、MySQL サービスをシャットダウンします。 [root@mytestlnx02 ~]# ps -ef | grep -i mysql ルート 22972 1 0 14:18 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql mysql 23166 22972 0 14:18 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock ルート 23237 21825 0 14:22 pts/0 00:00:00 grep -i mysql [root@mytestlnx02 ~]# サービスmysqldを停止します mysqldを停止しています: [ OK ] [root@mytestlnx02 ~]# MySQL my.cnf 構成ファイルを見つけて、次の情報を /etc/my.cnf (一部のバージョンでは /etc/mysql/my.cnf) に追加します。 [mysqld] スキップ許可テーブル その後、MySQL を起動して MySQL に入り、ルート パスワードを変更しました。操作中に、 具体的な操作手順は以下のとおりです。 [root@mytestlnx02 ~]# サービスmysqldを起動します mysqldを起動しています: [ OK ] [root@mytestlnx02 ~]# mysql -u ルート MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは4です サーバーバージョン: 5.7.18 MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> mysql を使用します。 テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました mysql> ユーザーを更新し、パスワードを PASSWORD('Kd8k&dfdl023') に設定します -> ここで、user='root'; エラー 1054 (42S22): 「フィールド リスト」に不明な列「パスワード」があります mysql> mysql.user を更新し、authentication_string=password('Kd8k&dfdl023') を設定します。user='root' です。 クエリは正常、1 行が影響を受け、1 つの警告 (0.00 秒) 一致した行: 1 変更された行: 1 警告: 1 mysql> 権限をフラッシュします。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql>終了 my.cnf ファイルで、先ほど追加した行「skip-grant-tables」をコメント化または削除します。 その後、MySQL サービスを再起動した後、コマンド [root@mytestlnx02 ~]# サービスmysqldを起動します mysqldを起動しています: [ OK ] [root@mytestlnx02 ~]# mysql -u ルート -p パスワードを入力してください: MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは4です サーバーバージョン: 5.7.18 Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> mysql を使用します。 エラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。 mysql> パスワードを password('Kd8k&dfdl023') に設定します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) いくつかの関連情報を調べたところ、MySQL 5.7 にはセキュリティに関するいくつかの新機能があることがわかりました。 1. ユーザー テーブル mysql.user のプラグイン フィールドは空にできません。デフォルト値は mysql_old_password ではなく mysql_native_password です。古いパスワード形式はサポートされなくなりました。 2. パスワードの有効期限メカニズムを追加します。有効期限が切れたら、パスワードを変更する必要があります。変更しない場合は、パスワードが無効になるか、サンドボックス モードに入る可能性があります。パスワードの有効期限を有効にするかどうかは、パラメーター default_password_lifetime によって制御されます。 mysql> 'default_password_lifetime' のような変数を表示します。 +---------------------------+-------+ | 変数名 | 値 | +---------------------------+-------+ | デフォルトパスワードの有効期間 | 0 | +---------------------------+-------+ セット内の 1 行 (0.00 秒) マイSQL> 3: パスワードのセキュリティ レベルとパスワードの複雑さの設定が追加されました。パラメータは次のとおりです。 mysql> 'validate_password%' のような変数を表示します。 +--------------------------------------+--------+ | 変数名 | 値 | +--------------------------------------+--------+ | ユーザー名のパスワードチェックを検証 | オフ | | パスワード辞書ファイルを検証する | | | パスワードの長さを検証 | 8 | | パスワードの大文字と小文字が混在するカウントを検証 | 1 | | パスワードの検証回数 | 1 | | パスワードポリシーの検証 | 中 | | パスワードの特殊文字数を検証 | 1 | +--------------------------------------+--------+ セット内の行数は 7 です (0.00 秒) 4. mysql_install_db を使用して初期化すると、デフォルトでランダムなパスワードが自動的に生成され、/var/log/mysqld.log に保存されます。root@localhost と mysql.sys@localhost 以外のアカウントは作成されず、テスト ライブラリも作成されません。 [root@mytestlnx02 mysql]# yum localinstall mysql-community-{server,client,common,libs}-* [root@mytestlnx02 mysql]# rpm -qa | grep -i mysql mysql-コミュニティクライアント-5.7.18-1.el6.i686 mysql-コミュニティライブラリ-5.7.18-1.el6.i686 perl-DBD-MySQL-4.013-3.el6.x86_64 mysql-コミュニティサーバー-5.7.18-1.el6.i686 mysql-コミュニティ-共通-5.7.18-1.el6.i686 mysql-コミュニティ-ライブラリ-互換-5.7.18-1.el6.i686 [root@mytestlnx02 mysql]# サービスmysqldを開始 MySQLデータベースを初期化しています: [ OK ] パスワード検証プラグインをインストールしています: [ OK ] mysqldを起動しています: [ OK ] [root@mytestlnx02 mysql]# [root@mytestlnx02 mysql]# grep '一時パスワード' /var/log/mysqld.log 2017-05-05T06:10:57.802143Z 1 [注記] root@localhost の一時パスワードが生成されます: w99s(m-q_ML: mysql> ユーザーからユーザー、ホストを選択します。 +-----------+------------+ | ユーザー | ホスト | +-----------+------------+ | mysql.sys | ローカルホスト | | ルート | ローカルホスト | +-----------+------------+ セット内の 2 行 (0.00 秒) 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: VMware 上の CentOS に Oracle12.2 をサイレント インストールする詳細なグラフィック チュートリアル
>>: WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順
1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...
背景検索エンジンで「.htaccess キャッシュ」というキーワードを検索すると、ウェブサイトのファ...
方法:説明: どちらも達成できません:方法1: sp_product から sp.productid...
MySQL バージョン: MySQL Community Edition (GPL) ------ ...
マウスイベントマウスが特定の操作を実行すると、イベント オブジェクトが生成され、イベントがトリガーさ...
最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...
123WordPress.com-HTML noscriptオブジェクトolオプションPパラントプレ...
MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...
少なくとも 5 冊のベストセラー書籍の順序なしリストを含む HTML ページを作成します。各書籍の前...
ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...
この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...
目次1. はじめに2. setIntervalとsetTimeoutの違い3.タイムアウトを設定する...
最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 4 バイトですが、UTF-8 は 3...
span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...
実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...