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におけるumaskコマンドの使用原理と計算方法の詳しい解説

目次umask umaskの使用法原理1. umask値2. ファイルディレクトリの最大権限3. 従...

SQL ステートメント実行の詳細な説明 (MySQL アーキテクチャの概要 -> クエリ実行プロセス -> SQL 解析順序)

序文:私はずっと、SQL 文がどのように、どのような順序で実行されるのかを知りたいと思っていました。...

Webサービスのリモートデバッグとタイムアウト動作原理の分析

Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...

Q&A: XML と HTML の違い

Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...

UbuntuでGRUBの起動時間を変更する

grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...

Docker インストール rocketMQ チュートリアル (最も詳細)

RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェア...

Linux インストール Redis 実装プロセスとエラー解決

今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...

サーバー間のファイル バックアップ ソリューション、サーバー ファイルを別のサーバーに自動的にバックアップする方法は?

多くの組織ではファイル サーバーをバックアップする必要があり、あるサーバーから別のファイル サーバー...

Mac OS 10.11 での MySQL 5.7.12 のインストールと設定のチュートリアル

Mac OS 10.11 に MySQL をインストールして設定する方法を、主に写真を使って手順を簡...

MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視の概要

クエリキャッシュ1. クエリキャッシュの動作原理クエリ ステートメントを実行する前に、MySQL は...

DD DT DLタグの使用例

通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

Win10にnginxをインストールする方法

会社から、負荷を実装するためにnginxをベースにFordプロジェクトのWebServiceサーバー...

JS で Websocket ベースのマルチターミナル ブリッジング プラットフォームを実装する方法

目次1. デバッグ対象2. WebSocketの機能3. ソケット接続を確立する3.1 部屋の作成方...

FTP、FTPS、SFTPの違いについて簡単に説明します

目次FTP、FTPS、SFTP の概要FTP FTPS FTPサーバーFTPソフトウェアのアクティブ...