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 接続と設定ファイルの最大数を変更する

推薦する

Linux whatisコマンドの使い方

01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...

HTML テキストフォーマットの簡単な例 (詳細な説明)

1. テキストの書式設定: この例では、HTML ファイル内のテキストを書式設定する方法を示します...

CentOS7 で jar アプリケーションの起動を設定する方法

プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...

vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール

最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...

Innodb で MySQL の 2T テーブルをすばやく削除する方法の例

序文この記事は主に、MySQL の Innodb で 2T の大きなテーブルをすばやく削除する方法に...

MySQL における楽観的ロック、悲観的ロック、MVCC の包括的な分析

序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...

Linux ホスト上で複数の MySQL データベースを起動する方法

今日は、Linux ホスト上で 4 つの MySQL データベースを起動する方法について説明します。...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...

GaussDB for MySQL パフォーマンス最適化の詳細な説明

目次背景インスピレーションは人生から生まれる速達配送の最適化原則GaussDB の最適化 (MySQ...

Nginx 仮想ホスト (IP ベース) を構成する 3 つの方法の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

CSSの優先度を理解する2つの方法

方法1: 値を追加する公式の説明を見るには MDN にアクセスしてください。優先度はどのように計算さ...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

ナレッジポイントをプレビューします。アニメーションフレーム背景グラデーションvar() と calc...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...