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 の分離レベルの包括的な分析

データベースが同じデータ バッチを同時に追加、削除、および変更すると、ダーティ書き込み、ダーティ読み...

Centos 用の rpm パッケージのカスタマイズと yum リポジトリの構築に関するチュートリアル

1 yumでソフトウェアをインストールしたときにダウンロードしたrpmパッケージを保存しますyum ...

ウェブサイトの速度を上げる6つの方法

1. .js ライブラリ ファイルのアドレスを Google CDN アドレスに置き換えます。 (G...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

Windows 10 の仮想マシンに Mac システムをインストールするグラフィック チュートリアル

1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...

Ubuntuにopencvをインストールする正しい方法の詳細な説明

この記事ではUbuntuでC++インターフェースを使用してopencvをインストールする方法について...

WeChat公式アカウントでReactプロジェクトを実行する方法

目次1. a タグを使用して PDF をプレビューまたはダウンロードします。書き方は、携帯電話でクリ...

Windows Server 2008 R2 サーバーが理由もなく自動的に再起動する問題の解決策

Windows Server 2008 サーバーが自動的に再起動します。サーバーにログインした後、ど...

MySQL 最適化技術における Limit クエリの最適化分析

序文実際のビジネスでは、ページングは​​一般的なビジネス要件です。次に、制限クエリを使用します。制限...

他の人が私のウェブページを保存したり、サイトをコピーしたりするのを防ぐためのヒント

現在、インターネット上でウェブサイトをコピーすることは非常に一般的です。では、他人が私たちのウェブサ...

WeChatアプレットがテキストスクロールを実装

この記事の例では、WeChatアプレットでテキストスクロールを実装するための具体的なコードを参考まで...

CentOS IP接続ネットワーク実装プロセス図

1. システムにログインし、ディレクトリに入ります: cd /etc/sysconfig/netwo...