Redhat 7.3 に MySQL 8.0.22 をインストールするための詳細なチュートリアル (バイナリ インストール)

Redhat 7.3 に MySQL 8.0.22 をインストールするための詳細なチュートリアル (バイナリ インストール)

1. MySQLインストールパッケージをダウンロードする

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

ダウンロード手順:

オペレーティングシステムのバージョンでフィルタリング

ここに画像の説明を挿入

アーカイブインストールパッケージを選択

ここに画像の説明を挿入

ダウンロード後、インストールパッケージをアップロードしてmd5で検証し、上図の公式値と一致しているかどうかを確認し、インストールパッケージが送信プロセス中に破損していないことを確認します。

[root@MyDB1 ~]# cd /usr/local/software/
[root@MyDB1 ソフトウェア]# md5sum mysql-8.0.22-el7-x86_64.tar.gz 
52e312605f66aaaa0efcd272b9fc0a1f mysql-8.0.22-el7-x86_64.tar.gz

インストールパッケージを解凍する

[root@MyDB1 ソフトウェア]# tar -zxvf mysql-8.0.22-el7-x86_64.tar.gz
[root@MyDB1 software]# ln -s mysql-8.0.22-el7-x86_64/ mysql #操作しやすいようにリンクを作成

2. MySQLのアンインストール手順

  • rpm インストール方法のみ、古いバージョンの MySQL をアンインストールする必要があります。バイナリ インストールとコンパイル インストールでは、古いバージョンの MySQL をアンインストールする必要はありません。ただし、ポートの競合に注意してください。
  • 古いバージョンの rpm をアンインストールしないと、インストール中に mysql がすでにインストールされているというメッセージが表示されます。この時点では再度インストールすることはできません。yum を通じてのみバージョンを更新できます。
  • 後続の操作で他の競合が発生しないように、元のmysqlをアンインストールします。

注意: 古い MySQL をアンインストールする前に、必ずデータをバックアップしてください。

[root@MyDB1 ~]# rpm -qa|grep mysql #mysql データベースがインストールされているかどうかを確認します [root@MyDB1 ~]# rpm -qa|grep mysql|xargs rpm -e --nodeps #mysql をアンインストールします	
[root@MyDB1 software]# rpm -qa|grep mariadb-libs|xargs rpm -e --nodeps #mariadbをアンインストールします

3. ユーザーとグループを作成する

新しいグループとユーザーを作成する

[root@MyDB1 ~]# groupadd -g 2000 mysql
[root@MyDB1 ~]# useradd -u 2000 -g mysql -c "MySQL Server" -s /sbin/nologin mysql
[root@MyDB1 ~]# cat /etc/group|grep mysql
mysql:x:2000:
[root@MyDB1 ~]# cat /etc/passwd|grep mysql
mysql:x:2000:2000:MySQL ソフトウェア:/home/mysql:/sbin/nologin

注意: グループとユーザーがすでに存在する場合は、システムのデフォルトのグループとユーザーを削除して、再度作成してください。

グループとユーザーの削除

[root@MyDB1 ~]# userdel mysql #ユーザーを削除すると対応するグループも削除されます

mysqlパスへの権限を付与する

[root@MyDB1 ~]# cd /usr/local/software/
[root@MyDB1 ソフトウェア]# chown -R mysql:mysql mysql*

初期化前のディレクトリ構造

ここに画像の説明を挿入

注: 現時点ではデータディレクトリはありません

MySQLの初期化

初期化前に設定ファイルを編集する

[root@MyDB1 ~]# vi /etc/my.cnf
[root@MyDB1 ~]# cat /etc/my.cnf


内容は以下のとおりです(その他の構成は実際のニーズに基づきます)
[mysqld]
ベースディレクトリ = /usr/local/software/mysql
データディレクトリ = /usr/local/software/mysql/data
log_error = /usr/local/software/mysql/mysql-error.log
ポート = 3306
ソケット = /usr/local/software/mysql/mysqld.sock
pid_file = /usr/local/software/mysql/mysqld.pid

文字セットサーバー=utf8
小文字テーブル名=1
最大接続数=1000
sql_mode = 'STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_ENGINE_SUBSTITUTION'

[mysql]
デフォルトの文字セット=utf8

[クライアント]
デフォルトの文字セット=utf8

初期化開始

[root@MyDB1 ~]# /usr/local/software/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/software/mysql --datadir=/usr/local/software/mysql/data

初期化プロセス中、出力ログファイルにはルートユーザーの一時パスワードが含まれます。

ここに画像の説明を挿入

初期化後のディレクトリ構造

ここに画像の説明を挿入

5. MySQLサービスを開始する

方法1——init.d:​​ サービスを開始する

[root@MyDB1 ~]# cp /usr/local/software/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@MyDB1 ~]# /etc/init.d/mysqld を起動します

認証サービス

[root@MyDB1 ~]# ps -ef|grep mysql 

ここに画像の説明を挿入

説明

図にはメインプロセスとデーモンプロセスの 2 つのプロセスがあります。 MySQLが予期せず停止した場合、デーモンは自動的にMySQLサービスを再起動します。

デモ

[root@MyDB1 ~]# kill -9 75341 #プロセスを直接終了する

ここに画像の説明を挿入

方法2 - systemctl: スタートアップ構成ファイルを編集する

[root@MyDB1 サブシステム]# vi /etc/systemd/system/mysqld.service


内容は以下のとおりです。(デメリット:強制終了すると自動で回復を開始できない)
[ユニット]
説明=MySQL サーバー
ドキュメント=man:mysqld(8)
ドキュメント=http://dev.mysql.com/doc/refman/en/using-systemd.html
ドキュメント=https://www.freedesktop.org/software/systemd/man/systemd.unit.html
後=ネットワーク.ターゲット
後=syslog.target
[インストール]
WantedBy=マルチユーザー.ターゲット
[サービス]
ユーザー=mysql
グループ=mysql
制限NOFILE = 5000
ExecStart=/usr/local/software/mysql/bin/mysqld --defaults-file=/etc/my.cnf

サービスを開始する

[root@MyDB1 ~]# systemctl で mysqld.service を起動します
[root@MyDB1 ~]# systemctl ステータス mysqld.service

6. 安全性と効率性の最適化

起動許可制限

[root@MyDB1 ~]# cd /usr/local/software/mysql/bin/
[root@MyDB1 bin]# chmod 700 mysqld mysqld_safe 
[root@MyDB1 bin]# ll mysqld mysqld_safe 
-rwx------。1 mysql mysql 441010738 9月24日 03:42 mysqld
-rwx------。1 mysql mysql 29157 9月24日 03:18 mysqld_safe

注意: これで、MySQL サービスを開始および停止できるのは root ユーザーのみになりました。

サービスはシステムから始まります

systemctl で mysqld.service を有効にする
systemctl ユニットファイルのリスト | grep mysql

7. 環境変数を設定する

[root@MyDB1 ~]# vi /etc/profile

追加コンテンツは以下のとおりです。
MYSQL_HOME=/usr/local/software/mysql
エクスポート PATH=.:$PATH:$MYSQL_HOME/bin

[root@MyDB1 ~]# source /etc/profile # 有効にするにはリロードしてください。

8. 初期ルートパスワードを変更する

ソケット接続を作成する

[root@MyDB1 ~]# ln -s /usr/local/software/mysql/mysqld.sock /tmp/mysql.sock

一時パスワードを使用してログイン

[root@MyDB1 ~]# mysql -uroot -p
パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは10です
サーバーバージョン: 8.0.22

Copyright (c) 2000, 2020, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

マイSQL>

注意: 一時パスワードに特殊文字が含まれている場合、コマンド ライン入力があいまいになる可能性があります。この時点で、やり取りする際にパスワードを入力するだけです!

ルートパスワードを変更する

mysql> 'MyDB12@com' で識別されるユーザー root@'localhost' を変更します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

注意: MySQL8 のパスワードは一定の複雑さを満たす必要があります。そうでない場合は変更できません。現在のセッションを終了した後、ログインを再開してパスワードを有効にしてください。

9. MySQLリモートログインを設定する

  • ファイアウォールを閉じるか、MySQLポートを開きます
  • MySQLへのアクセスを許可されたユーザーとアドレスを表示する
mysql> mysql.user からユーザー、ホストを選択します。
+------------------+-----------+
| ユーザー | ホスト |
+------------------+-----------+
|mysql.infoschema | ローカルホスト |
| mysql.セッション | ローカルホスト |
| mysql.sys | ローカルホスト |
| ルート | ローカルホスト |
+------------------+-----------+
セット内の 4 行 (0.00 秒)

発生した問題

mysql> 'MyDB12@com' で識別される root@'%' に *.* のすべての権限を付与します。
エラー 1064 (42000): SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
 1行目の「MyDB12@com によって識別される」の近く

注意: このエラーは構文エラーではありません。このバージョンのMySQLでは、ユーザーの直接作成と権限の付与はサポートされておらず、別途実装する必要があるためです。

リモートログインユーザーを作成する

mysql> 'MyDB12@com' で識別されるユーザー 'root'@'%' を作成します。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

エンパワーメント

mysql> *.* のすべての権限を 'root'@'%' に付与します。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

これで、Redhat 7.3 への MySQL 8.0.22 のインストール (バイナリ インストール) に関するこの記事は終了です。Redhat 7.3 への MySQL 8.0.22 のインストールの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL 8.0.22 解凍版インストールチュートリアル(初心者向け)
  • 非常に詳細な MySQL8.0.22 のインストールと設定のチュートリアル
  • Alibaba Cloud centos7にmysql8.0.22をインストールする詳細なチュートリアル

<<:  表の境界線の CSS 構文

>>:  Docker で MySQL 接続と設定ファイルの最大数を変更する

推薦する

dockerコンテナにvimをインストールするソリューション

目次物語の始まりvimをインストールし、hadoop-hive.envを編集します。不注意で回避しま...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

HTML Web ページ リスト タグ学習チュートリアル

HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

JavaScript でオブジェクトをトラバースする 5 つの方法 サンプルコード

目次準備する5つの武器…のためにオブジェクト.キーオブジェクト.getOwnPropertyName...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...

MySQLのSQL文はインデックスを使用しません

インデックス集約を使用しない MySQL クエリご存知のとおり、インデックスを追加することはクエリ速...

MySQLデータベースのマスタースレーブレプリケーションと読み取り書き込み分離に関する詳細なチュートリアル

目次序文1. MySQL マスタースレーブレプリケーション1. サポートされているレプリケーションの...

WeChatアプレットが計算機機能を実装

WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...

ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

ネイティブJSを使用して9つの正方形のグリッドを記述し、9つのグリッドの位置をドラッグして変更する効...

MySql8.0 のトランザクション分離レベルエラーの問題を解決する

目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...

Vueのインストール方法の紹介

目次1. グローバルに登録されたコンポーネント2. グローバルカスタム指示vue 、新しいプラグイン...

And キーワードを使用した MySQL の複数条件クエリ ステートメント

AND キーワードを使用した MySQL 複数条件クエリ。MySQL では、AND キーワードを使用...

grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要

背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...