MySql 8.0.11 のインストールと設定のチュートリアル

MySql 8.0.11 のインストールと設定のチュートリアル

公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysql/

ここでは RHEL6.5 システムを使用しているため、RedHat 6 x86、64 ビット オペレーティング システムを選択し、最初の RPM バンドル (mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar) をダウンロードします。

現在、MySQL 8.0.11 Community Edition ではさまざまなインストール方法が提供されていますが、Linux Generic インストール パッケージに含まれる mysql_secure_installation のインストール手順は見つかりませんでした。

したがって、ここでは推奨される RPM インストールが使用されます。

1. mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar を解凍すると、次の 7 つのファイルが存在します。

-rw-r--r-- 1 ルート ルート 28987588 4月9日 01:06 mysql-community-client-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 672184 4月9日 01:06 mysql-community-common-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 4443296 4月9日 01:06 mysql-community-devel-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 2579460 4月9日 01:06 mysql-community-libs-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 1902676 4月9日 01:06 mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 395918848 4月9日 01:07 mysql-community-server-8.0.11-1.el6.x86_64.rpm
-rw-r--r-- 1 ルート ルート 49092596 4月9日 01:07 mysql-community-test-8.0.11-1.el6.x86_64.rpm

次に、mysql ユーザーを作成します。

ユーザー追加mysql
パスワードMySQL

2. インストールの順序は次のとおりです: (インストール前に以前の MySQL 関連パッケージをすべてアンインストールすることをお勧めします。rpm -e --nodeps <パッケージ名> で十分です)

[root@python ~]# rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-common-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-common ##################################################### [100%]
[root@python ~]# rpm -ivh mysql-community-libs-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-libs-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-libs ##################################################### [100%]
[root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  mysql-community-libs-compat-8.0.11-1.el6.x86_64 のインストールからのファイル /usr/lib64/mysql/libmysqlclient.so.16.0.0 は、パッケージ mysql-libs-5.1.73-8.0.1.el6_8.x86_64 のファイルと競合しています。
  mysql-community-libs-compat-8.0.11-1.el6.x86_64 のインストールからのファイル /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 は、パッケージ mysql-libs-5.1.73-8.0.1.el6_8.x86_64 のファイルと競合しています。
[root@python ~]# rpm -e --nodeps mysql-libs-5.1.73-8.0.1.el6_8.x86_64
[root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-libs-co##################################################### [100%]
[root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-server-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
エラー: 依存関係に失敗しました:
  mysql-community-server-8.0.11-1.el6.x86_64 には、mysql-community-client(x86-64) >= 8.0.0 が必要です。
[root@python ~]# rpm -ivh mysql-community-client-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-client-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-client ##################################################### [100%]
[root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-server-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-server ################################################### [100%]
[root@python ~]# rpm -ivh mysql-community-devel-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-devel-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
  1:mysql-community-devel #################################################### [100%]
^[[A[root@python ~]# rpm -ivh mysql-community-test-8.0.11-1.el6.x86_64.rpm
警告: mysql-community-test-8.0.11-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
エラー: 依存関係に失敗しました:
  perl(JSON) は mysql-community-test-8.0.11-1.el6.x86_64 に必要です
--perl をインストールするのが面倒なので、テスト スイートはインストールしません。

3. インストールが完了すると、関連情報は次のようになります。

[root@python ~]# mysql -V
x86_64 上の Linux 用 mysql Ver 8.0.11 (MySQL コミュニティ サーバー - GPL)
[root@python ~]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 ルート ルート 7166 4月8日 16:21 /etc/init.d/mysqld
[root@python ~]# ll /etc/my.cnf --設定ファイルの場所-rw-r--r-- 1 root root 1188 Apr 8 16:21 /etc/my.cnf

デフォルトのデータディレクトリは /var/lib/mysql/ にありますが、my.cnf を変更することで変更できます。起動コマンドは次のとおりです。

[root@python ~]# サービスmysqldを起動します
MySQLデータベースを初期化しています: [ OK ]
mysqld を起動しています:  
[ わかりました ]

4. パスワードなしではログインできないことがわかったので、my.cnfにskip-grant-tablesを追加し、再起動してパスワードをリセットしました。

mysql> 'mysql' で識別されるユーザー root@'localhost' を変更します。
エラー 1290 (HY000): MySQL サーバーは --skip-grant-tables オプションで実行されているため、このステートメントを実行できません
mysql>終了
さよなら

変更できません。 。 。それから:

mysql> user='root' の場合、mysql.user から削除します。
クエリは正常、1 行が影響を受けました (0.10 秒)
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
mysql> 'mysql' で識別されるユーザー root@'localhost' を作成します。
エラー 1819 (HY000): パスワードが現在のポリシー要件を満たしていません

それでも変更できない場合は、パスワードの複雑さの要件を確認してください。

mysql> '%pass%' のような変数を表示します。
+------------------------------------------------+-----------------+
| 変数名 | 値 |
+------------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | オン |
| caching_sha2_password_private_key_path | プライベートキー.pem |
| caching_sha2_password_public_key_path | 公開キー.pem |
| デフォルトパスワードの有効期間 | 0 |
| パスワードの有効期限が切れると切断 | オン |
| mysql_native_password_proxy_users | オフ |
| パスワード履歴 | 0 |
| パスワード再利用間隔 | 0 |
| レポートパスワード | |
| sha256_password_auto_generate_rsa_keys | オン |
| sha256_password_private_key_path | 秘密キー.pem |
| sha256_password_proxy_users | オフ |
| sha256_password_public_key_path | 公開キー.pem |
| パスワードの検証.ユーザー名のチェック | オン |
| パスワード辞書ファイルを検証 | |
| パスワードの検証の長さ | 8 |
| パスワードを検証します。大文字と小文字が混在するカウント | 1 |
| パスワードの検証数 | 1 |
| 検証パスワードポリシー | 中 |
| パスワードの検証.特殊文字数 | 1 |
+------------------------------------------------+-----------------+

公式サイトをご覧ください https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html#sysvar_validate_password.policy

以下に示すように、そのような値が 3 つあることがわかります。

したがって、これを 0 に設定し、validate_password.length を 4 に設定して、少なくとも 4 文字が必要であることを示します。 4 に設定されている理由は、このパラメータの値が次の数式の結果より小さくなることはできないためです。

パスワードの検証.数値カウント
+ パスワードの検証.特殊文字数
+ (2 * 検証パスワード大文字小文字の混在数)

引き続きユーザーを作成します。MySQL 8.0 では、ユーザーを直接付与する構文が廃止されました。最初にユーザーを作成してから付与することしかできません。したがって、次のようにして root を作成します。

mysql> 'mysql' で識別されるユーザー root@'localhost' を作成します。
エラー 1396 (HY000): 'root'@'localhost' の CREATE USER 操作が失敗しました
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
mysql> 'mysql' で識別されるユーザー root@'localhost' を作成します。
エラー 1396 (HY000): 'root'@'localhost' の CREATE USER 操作が失敗しました

くそ…一体何なんだ?

そこで、stackoverflow を調べてみたところ、みんながバグだと言っていたので、次の操作を実行しました。

mysql> drop user root@'localhost'; --はい、その通りです。root@'localhost' ユーザーは存在しませんが、削除する必要があります。
クエリは正常、影響を受けた行は 0 行 (0.05 秒)
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)
mysql> 'mysql' で識別されるユーザー root@'localhost' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.03 秒)
mysql> grant option を使用して、*.* 上のすべての権限を root@'localhost' に付与します。
クエリは正常、影響を受けた行は 0 行 (0.03 秒)

最後にパスワードを変更しました...パラメータ ファイル内の skip-grant-tables パラメータを削除し、service mysqld restart でサービスを再起動します。

5. 最後に、パスワードを設定します。テストユーザー leo を作成し、リモート接続を試みます。

$ mysql -uleo -pmysql -h192.168.1.193
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
エラー 2059 (HY000): 認証プラグイン 'caching_sha2_password' をロードできません: /usr/lib/mysql/plugin/caching_sha2_password.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

5.7 mysql ツールが接続できないのは困ったものです。認証関連のパラメータを確認してください:

mysql> '%auth%' のような変数を表示します。
+---------------------------------+-----------------------+
| 変数名 | 値 |
+---------------------------------+-----------------------+
| デフォルト認証プラグイン | キャッシュsha2パスワード |
+---------------------------------+-----------------------+
セット内の1行(0.02秒)

公式ウェブサイトを確認すると、この値は次のようになります。

公式サイトには、create user で auth plugin を明示的に指定しない場合、この値はパスワードのデフォルトの暗号化アルゴリズムに影響するとも書かれています。くそっ... 以前作成した leo ユーザーはデフォルトの caching_sha2_password 認証を使用しているということではないでしょうか? 確認してみましょう:

mysql> mysql.user からユーザー、ホスト、プラグインを選択します。
+------------------+------------+-----------------------+
| ユーザー | ホスト | プラグイン |
+------------------+------------+-----------------------+
| leo | % | caching_sha2_password |
| mysql.infoschema | ローカルホスト | mysql_native_password |
| mysql.session | ローカルホスト | mysql_native_password |
| mysql.sys | ローカルホスト | mysql_native_password |
| ルート | ローカルホスト | caching_sha2_password |
+------------------+------------+-----------------------+

もう終わった。もう全部終わったんだ...

当然ながら、プラグインを単に更新するだけでは暗号化されたパスワードが正しく復号化されず、すべてのパスワードが変更される可能性があるため、root@'localhost' 以外のすべてを削除して再構築する必要があります。

まず、my.cnf に default_authentication_plugin=mysql_native_password を追加し、service mysqld restart でサービスを再起動する必要があります。

mysql> ユーザー leo を削除します。
クエリは正常、影響を受けた行は 0 行 (0.10 秒)
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)
mysql> 'mysql' で識別されるユーザー leo を作成します。
クエリは正常、影響を受けた行は 0 行 (0.02 秒)
mysql> *.* のすべての権限を leo に付与します。
クエリは正常、影響を受けた行は 0 行 (0.08 秒)

$mysql -V
mysql Ver 14.14 Distrib 5.7.20、Linux (x86_64) 用、EditLine ラッパー使用
$ mysql -uleo -pmysql -h192.168.1.193
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは16です
サーバーバージョン: 8.0.11 MySQL コミュニティサーバー - GPL
Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
マイSQL>

これまでのところ、リモート接続は正常です。

要約する

上記は、編集者が紹介したMySql 8.0.11のインストールと構成のチュートリアルです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL 8.0.11 インストール概要チュートリアル図
  • mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル
  • mysql8.0.11 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)
  • MySQL Community Server 8.0.11 のインストールと設定方法のグラフィックチュートリアル
  • MySQL 8.0.11 Community Green Edition の Windows 用インストール手順図
  • MySQL 8.0.11 圧縮版のインストールと設定方法のグラフィックチュートリアル
  • MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル
  • MySQL 8.0.11 圧縮バージョンを Windows 10 にインストールするための詳細なチュートリアル
  • MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル
  • MySQL 8.0.11 Mac 用インストール ガイド

<<:  NodeJs の高メモリ使用量のトラブルシューティング実戦記録

>>:  Linux でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

推薦する

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

Apache Bench で Web ストレス テストを実装する方法

1. Apache Benchの紹介ApacheBench は、Apache サーバーに付属する W...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

プロフェッショナルなMySQL開発設計仕様とSQL記述仕様

チーム開発のプロセスでは、プロジェクトの安定性、コードの効率性、管理の利便性のために、内部開発および...

Webデザインチュートリアル(8):Webページの階層と空間デザイン

<br />前回の記事:Webデザイン講座(7):Webページ制作の効率化1:必要な小言...

nginx プロキシでの複数の 302 応答の解決策 (nginx Follow 302)

proxy_intercept_errors と recursive_error_pages を使...

Docker基盤技術の適用に関する詳細な説明 名前空間Cgroup

Docker の基盤技術: Docker の基盤となる 2 つのコア テクノロジーは、名前空間とコ...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル (win10)

この記事では、MySQL 5.7.20のインストールと設定方法を参考までに紹介します。具体的な内容は...

DockerでMongoDBコンテナをデプロイする方法

目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

HTML マウス CSS コントロール

一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...

このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

目次1. このキーワード2. カスタム属性3. 包括的なケース1:タブの実装付録要約する1. このキ...

2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い

ヒント: MySQL では、ユーザーの作成と削除が頻繁に必要になります。ユーザーを作成するときは、通...

Vue で $props、$attrs、$listeners を使用する方法の詳細な説明

目次背景1. 文書の説明2. 特定の用途結論背景ここで、状況について説明しましょう。親コンポーネント...