CentOS 7にMySQL 8をインストールする

11124 ワード

の準備を
この文書の環境情報:
ソフトウェア
バージョン#バージョン#
CentOS
CentOS 7.4
MySQL
8.0.x
インストール前にシステムのすべてのパッケージを更新
sudo yum update

インストール
1.Yumパッケージの追加
wget 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 update
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

注:公式サイトで最新のrpmパッケージ名を見つけることができます.
2.MySQLのインストール
#   
sudo yum -y install mysql-community-server

#
sudo systemctl start mysqld

#
sudo systemctl status mysqld

#
mysql -V

インストールが完了すると、MySQLはシステムの起動時に自動的に起動し、自動的に起動させたくない場合はsystemctl disable mysqldで閉じることができます.
3.パスワードの変更
MySQLのインストール中にrootユーザーの一時パスワードが生成され、/var/log/mysqld.logに保存されます.次のコマンドで表示します.
sudo grep 'temporary password' /var/log/mysqld.log

MySQLクライアントへの変更:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your passowrd';
# ALTER USER 'root'@ IDENTIFIED BY 'your passowrd';

パスワードの強度は、12文字以上で、大文字、小文字、数字、特殊文字を含む必要があります.
3.MySQLセキュリティ構成
MySQLには、セキュリティオプションを変更するためのセキュリティ設定ウィザードスクリプトが含まれています.
sudo mysql_secure_installation

実行後、次の項目を順に設定します.
rootアカウントパスワードの変更パスワード強度検証プラグイン(推奨)匿名ユーザの削除(削除を推奨)rootアカウントのリモートログインを無効にするテストデータベースの削除(test)個人の状況に応じて設定します.
ユーザー権限
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';

#
FLUSH PRIVILEGES;

2.権限の回収
#     
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';

#
DROP USER 'user'@'localhost';

#
DROP USER 'user'@'%';

#
FLUSH PRIVILEGES;

3.リモートログイン
mysqlデータベースでuserテーブル情報を表示するには、次の手順に従います.
use mysql;
select host, user, authentication_string, plugin from user;

表のrootユーザーのhostデフォルトはlocalhostで、ローカルアクセスのみが許可されています.rootユーザーのすべての権限を許可し、リモートアクセスを設定します.
#   
GRANT ALL ON *.* TO 'root'@'%';

#
FLUSH PRIVILEGES;

rootユーザーのデフォルトのパスワード暗号化方法は:caching_sha2_password;多くのグラフィッククライアントツールでは、このような暗号化認証方式がサポートされていない可能性があります.接続時にエラーが発生します.次のコマンドでパスワードを変更します.
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';

ここでrootを指定したパスワード暗号化方式はmysql_native_passwordで、デフォルトのパスワード暗号化方式を変更したい場合は、/etc/my.cnfファイルに1行追加できます.
default-authentication-plugin=mysql_native_password

サーバがファイアウォールを開いている場合は、3306ポートを開く必要があります.
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

注意:クラウドサーバの場合、アリクラウドなどのサービス業者がコンソールにポートを開く必要があります.
文字コードの変更
文字セットは記号と符号化のセットで、文字セットの構成を表示します.
mysql> show variables like 'charac%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

文字セットの有効化ルールは、Tableがデータベースに継承され、データベースがサーバに継承されます.つまり、character_set_serverしか設定できません.
照合ルールは、文字セット内で文字を比較するために使用される一連のルールであり、照合ルールを表示します.
mysql> show character set like 'utf8%';
+---------+---------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+--------------------+--------+
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 |
+---------+---------------+--------------------+--------+

照合ルール有効化ルール:照合ルールが設定されていない場合、文字セットはutf 8 mb 4の照合ルールutf8mb4_0900_ai_ciなどのデフォルトの照合ルールを取ります.
MySQL 8のデフォルト文字セットはutf8mb4に変更されました.以前のMySQLバージョンでは、デフォルトの文字セットがutf8mb4でない場合は、utf8mb4に変更することをお勧めします.
mb 4はmost bytes 4です.なぜutf 8 mb 4なのか、utf 8ではないのか.MySQLがサポートするutf 8符号化の最大文字長は3バイトで、4バイトのワイド文字に遭遇すると異常が挿入されます.
以下は旧バージョンのMySQLがutf8mb4文字セットを変更する手順で、MySQL 8.0+は変更する必要はありません.
#         
whereis my.cnf

#
vi /etc/my.cnf

文字コード構成項目を追加するには、次の手順に従います.
[client]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

MySQLサービスの再起動
sudo systemctl restart mysqld

MySQLコマンドを使用して文字セットの構成を確認します.
show variables like 'charac%';

リファレンス
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
https://ken.io/note/centos-mysql8-setup

転載先:https://www.cnblogs.com/willick/p/install-mysql-8-centos-7.html