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 でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

推薦する

mysql の find_in_set 関数の基本的な使い方

序文これは私が最近見つけた新しい機能です。プロジェクトでの私の使用シナリオは次のとおりです。アプリケ...

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...

CMD で MySQL データベースを操作するときに中国語の文字化けが発生する問題の解決方法

Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...

AngularJSにおける括弧の役割の詳細な説明

1. 括弧の役割1.1 角括弧 [ ]属性名が角括弧で囲まれている場合、右側には式の値が割り当てられ...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

MySQLリモートアクセスの設定方法をステップバイステップで説明します

序文MySQL データベースを使用する場合、クライアントはデータベース サーバーにリクエストを送信す...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...

IIS 7.5では、HTMLはSHTMLのようなinclude関数(モジュールマッピングの追加)をサポートします。

最初はたくさんのエラーを見つけましたが、実際には非常に簡単です。shtm の元の設定を参照するだけで...

MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明

はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

反応ループデータの実装(リスト)

まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...

AngularとIonicのライフサイクルとフック関数を素早く理解するための記事

目次角度成し遂げる呼び出し順序知らせイオニックionic はページのライフサイクルをどのように処理し...

JavaScript 配列の重複排除とフラット化関数の紹介

目次1. 配列の平坦化(配列の次元削減とも呼ばれる)方法1: 削減メソッドを使用する方法2: スタッ...

Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...

mysql8.0.18 で winx64 をインストールするための詳細なチュートリアル (画像とテキスト付き)

MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...