CentOS 7 に MySQL 8 をインストールするための詳細なチュートリアル

CentOS 7 に MySQL 8 をインストールするための詳細なチュートリアル

準備する

この記事の環境情報:

ソフトウェアバージョン
セントOSセントOS7.4
マイグレーション8.0.x

インストール前にすべてのシステムパッケージを更新します

sudo yum update

インストール

1. Yumパッケージを追加する

https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm を実行します。
# または wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
sudo yum アップデート
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

注: 最新の rpm パッケージ名は公式 Web サイトで確認できます。

2. MySQLをインストールする

# インストール sudo yum -y install mysql-community-server
# デーモンプロセスを起動します sudo systemctl start mysqld
# ステータスを確認する sudo systemctl status mysqld
# バージョンを確認する mysql -V

インストール後、システムの起動時に MySQL が自動的に起動します。自動的に起動したくない場合は、systemctl enable mysqld を使用してシャットダウンできます。

3. パスワードを変更する

MySQL のインストール プロセス中に、root ユーザーの一時パスワードが生成され、/var/log/mysqld.log に保存されます。次のコマンドを使用して表示します。
sudo grep '一時パスワード' /var/log/mysqld.log

MySQL クライアントに入り、以下を変更します。

mysql -u ルート -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
# ALTER USER 'root'@ IDENTIFIED BY 'your password';

パスワードの強度要件は、12 文字以上で、大文字、小文字、数字、特殊文字を含めることです。

3. MySQLのセキュリティ設定

MySQL には、セキュリティ オプションを変更するために使用できるセキュリティ ウィザード スクリプトが含まれています。

sudo mysql_secure_installation

実行後、以下の項目を順番に設定してください。

1. ルートアカウントのパスワードを変更する
2. パスワード強度検証プラグイン(推奨)
3. 匿名ユーザーを削除する(推奨)
4. ルートアカウントのリモートログインを無効にする
5. テストデータベース(テスト)を削除します。

個人の状況に応じて設定します。

ユーザー権限

1. 権限を付与する

# ローカルユーザーを作成します。CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
# 新しいリモート ユーザーを作成します CREATE USER 'user'@'%' IDENTIFIED BY 'password';
# 新しいデータベースを作成します CREATE DATABASE test_db;
# ユーザー権限を表示する SHOW GRANTS FOR 'user'@'%';
# 指定されたデータベースへのリモート アクセス権をユーザーに付与します GRANT ALL PRIVILEGES ON test_db.* TO 'user'@'%';
# ユーザーにすべてのデータベースへのリモート アクセス権を付与します GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
# ユーザーにすべてのデータベースへのローカル アクセス権を付与します。GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';
# 権限をフラッシュします。

2. 権限を取り消す

# 権限を取り消す REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';
# ローカルユーザーを削除します。DROP USER 'user'@'localhost';
# リモートユーザーを削除します DROP USER 'user'@'%';
# 権限をフラッシュします。

3. リモートログイン

mysql データベース内のユーザー テーブル情報を表示します。

mysql を使用します。
ユーザーからホスト、ユーザー、認証文字列、プラグインを選択します。

表内の root ユーザーのデフォルト ホストは localhost であり、ローカル アクセスのみが許可されます。ルート ユーザーに完全な権限を付与し、リモート アクセスを設定します。

# 承認 GRANT ALL ON *.* TO 'root'@'%';
# 権限をフラッシュします。

ルート ユーザーのデフォルトのパスワード暗号化方法は caching_sha2_password です。ただし、多くのグラフィカル クライアント ツールはこの暗号化認証方法をサポートしていない可能性があり、接続時にエラーが報告されます。次のコマンドを使用してパスワードを再度変更します。

ALTER USER 'root'@'%' を 'your password' によって mysql_native_password で識別します。

ここでは、ルート パスワードの暗号化方法は mysql_native_password として指定されています。デフォルトのパスワード暗号化方法を変更する場合は、/etc/my.cnf ファイルに次の行を追加します。

デフォルト認証プラグイン=mysql_native_password

サーバーでファイアウォールが有効になっている場合は、ポート 3306 を開く必要があります。

ファイアウォールコマンド --add-port=3306/tcp --permanent
ファイアウォール-cmd --reload

注: クラウド サーバーの場合、一部のサービス プロバイダー (Alibaba Cloud など) では、コンソールでポートを開く必要があります。

文字エンコードを変更する

文字セットは、シンボルとエンコーディングのセットです。文字セットの構成を表示するには、次の手順を実行します。

mysql> 'charac%' のような変数を表示します。
+--------------------------+--------------------------------+
| 変数名 | 値 |
+--------------------------+--------------------------------+
| 文字セットクライアント | utf8mb4 |
| 文字セット接続 | utf8mb4 |
| 文字セットデータベース | utf8mb4 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | utf8mb4 |
| 文字セットサーバー | utf8mb4 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

文字セットは次のように有効になります: テーブルはデータベースから継承し、データベースはサーバーから継承します。つまり、character_set_server のみを設定できます。

照合とは、文字セット内の文字を比較するために使用される一連の規則です。照合を表示するには:

mysql> 'utf8%' のような文字セットを表示します。
+---------+---------------+---------------------+--------+
| 文字セット | 説明 | デフォルトの照合順序 | Maxlen |
+---------+---------------+---------------------+--------+
| utf8 | UTF-8 ユニコード | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 ユニコード | utf8mb4_0900_ai_ci | 4 |
+---------+---------------+---------------------+--------+

照合ルールの有効性ルール: 照合ルールが設定されていない場合、文字セットはデフォルトの照合ルールを使用します。たとえば、utf8mb4 の照合ルールは utf8mb4_0900_ai_ci です。

MySQL 8 のデフォルトの文字セットが utf8mb4 に変更されました。以前の MySQL バージョンのデフォルトの文字セットが utf8mb4 でない場合は、utf8mb4 に変更することをお勧めします。

mb4 は最大バイト数が 4 であることを意味します。なぜ utf8 ではなく utf8mb4 なのでしょうか? MySQL でサポートされている utf8 エンコーディングの最大文字長は 3 バイトです。4 バイト幅の文字が検出されると、挿入例外が発生します。

以下は、MySQL の古いバージョンで文字セットを utf8mb4 に変更する手順です。MySQL 8.0 以降では変更は必要ありません。

# 設定ファイルの場所を表示します。my.cnf

# ファイルを開く vi /etc/my.cnf

文字エンコーディング設定項目を追加します。

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

[mysqld]
文字セットサーバー=utf8mb4
照合サーバー=utf8mb4_general_ci

MySQLサービスを再起動する

sudo systemctl でmysqldを再起動します。

MySQL コマンドを使用して、文字セットの設定を確認します。

'charac%' のような変数を表示します。

参照する

https://dev.mysql.com/doc/mysql-yum-repo-クイックガイド/en/

centos-mysql8 セットアップ

推薦する:

興味のある方は、編集者のWeChat公開アカウント[ Coder’s Stuff ]をフォローして、Webページ制作の特殊効果のソースコードや学習資料をさらに入手してください。 ! !

要約する

上記は CentOS 7 に MySQL 8 をインストールする方法についての詳細なチュートリアルです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • CentOS 7.4 にソースコードから MySQL 8.0 をインストールするための詳細なチュートリアル
  • Centos7 への mysql8.0rpm のインストール チュートリアル
  • Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順
  • Linux の Centos7 に Mysql5.7.19 をインストールする詳細なチュートリアル
  • Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法
  • Centos 7.2 で YUM を使用して MySQL 5.7 をすばやくインストールする方法

<<:  MySQL5.7 マスタースレーブ構成例の分析

>>:  MySQL 5.7.17 winx64 のインストールと設定のチュートリアル

推薦する

Win10 に Linux ubuntu-18.04 デュアル システムをインストールする (インストール ガイド)

コンピューターに Linux Ubuntu システムをインストールしました。初めてインストールしまし...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

MySQL パスワードは正しいが、ローカルにログインできない -1045

MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...

nginx+uwsgi で Django プロジェクトを開始するための詳細な手順

Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

axios リクエストのカプセル化に基づく Vue アプリケーションのサンプルコード

目次axiosとは何ですか? Axios リクエストタイプ? Axiosはデフォルトのカスタム構成を...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

HTML でフォーム入力やその他のテキスト ボックスを読み取り専用にして編集不可にする方法

場合によっては、フォーム内のテキスト ボックスを読み取り専用にして、ユーザーがその中の情報を変更でき...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

Vue は Axios リクエスト フロントエンドのクロスドメイン問題をどのように解決するのか

目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...

MySQLでデータベースのインストールパスを表示する方法

mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...

MySQL (8 および 5.7) の Docker インストール

この記事では、Dockerを使用してMySQLデータベースとリモートアクセス構成をデプロイする方法を...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

Serv-U FTPとADの完璧な統合ソリューションの詳細な説明

会社が現在使用しているソリューションを確認するためにバックエンドにログインしました。使用される FT...