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

推薦する

MySQL データベース SELECT クエリ式分析

データ管理の大部分は検索であり、SELECT はその大部分を占めています。 SELECT selec...

Mysql ファジークエリが大文字と小文字を区別するかどうかの詳細な調査

序文最近、私は小さな個人ブログ プロジェクトを書くのに忙しくしています。 「グローバル検索」機能を実...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

MySQL 5.7 の同時レプリケーションにおける暗黙のバグの分析

序文当社の MySQL オンライン環境のほとんどはバージョン 5.7.18 を使用しています。このバ...

Vue.js パフォーマンス最適化 N 個のヒント (収集する価値あり)

目次機能コンポーネント子コンポーネントの分割ローカル変数v-show によるDOMの再利用キープアラ...

mysql5.6.zip形式の圧縮版インストールグラフィックチュートリアル

はじめに: MySQL は、スウェーデンの MySQL AB によって開発されたリレーショナル デー...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

MySQL 面接の質問: ハッシュ インデックスの設定方法

B-Tree インデックスに加えて、MySQL は次のインデックスも提供します。ハッシュインデックス...

Vue は左右のスライド効果のサンプルコードを実装します

序文個人の実際の開発で使用した効果問題を、今後の開発やレビューに役立てるためにまとめています。他の人...

Ubuntu サーバーで MySQL を設定し、リモート接続を実装する方法

サーバー: Ubuntu Server 16.04 LSSクライアント: Ubuntu 16.04 ...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明

1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...

Linux の grep コマンドと egrep コマンドの詳細な説明

反復/egrep構文: grep [-cinvABC] 'word' ファイル名-c...

MySQLデータベースインデックスの詳細な説明

目次1. MySQLインデックスの紹介2. MySQLの5種類のインデックスの詳しい説明1. 総合索...

JS での Reduce() メソッドの使用の概要

目次1. 文法2. 例3. その他の関連方法長い間、reduce() メソッドの具体的な使い方を理解...