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

推薦する

React NativeとiOSの相互作用の詳細な説明

目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...

Zabbix を使用して ogg プロセスを監視する (Windows プラットフォーム)

この記事では、Windows プラットフォームで ogg プログラムを監視する方法を紹介します。 (...

CSSクラス名の問題の詳細な説明

数字で始まる次の CSS クラス名は有効になりません。 .1番目{ 色: 赤; }有効な CSS ク...

一般的な MySQL ストレージ エンジンとパラメータ設定およびチューニングの紹介

MyISAM、MySQLでよく使われるストレージエンジン特性: 1. 同時実行性とロックレベル2. ...

フロントエンドはJavaScriptを通じてCADグラフィックスの詳細を作成および変更します。

目次1. 現状2. JSでCADグラフィックを作成および変更する2.1 サポートされているCADエン...

HTML にネストされた div の無効なマージンに対する解決策

div がネストされているときに margin が機能しない問題の解決策を次に示します。さて、マージ...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを 2 回忘れてしまいましたか?最初、私はアンインストールして再インストールす...

Vue での this.$set の使用に関する詳細な説明

目次Vue での this.$set の使用使用なぜレスポンシブなのか?分析する要約するVue での...

vscodeカスタムvueテンプレートの実装

vscode エディタを使用して vue テンプレートを作成すると、新しい vue ファイルを作成す...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

MySQL の分離レベルの包括的な分析

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

Windows システム mysql5.7.18 インストール グラフィック チュートリアル

Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

Vueモバイル端末は画面上で指をスライドさせる方向を判定する

vueモバイル端末は、画面上で指をスライドさせる方向を判断します。具体的な内容は次のとおりです。これ...

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...