準備完了
この記事の環境情報:
ソフトウェア | バージョン |
---|---|
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
# またはwgethttp://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 **](https://cloud.tencent.com/product/cdb?from=10680)をインストールします
# インストール
sudo yum -y install mysql-community-server
# デーモンを起動します
sudo systemctl start mysqld
# ステータスを確認する
sudo systemctl status mysqld
# バージョンを表示
mysql -V
インストール後、システムの起動時にMySQLが自動的に起動します。自動的に起動したくない場合は、systemctl disablemysqldを使用して閉じることができます。
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
実行後、次の項目を順番に設定します。
個人の状況に応じて設定します。
ユーザー権利
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データベースのユーザーテーブル情報を表示します。
use mysql;
select host, user, authentication_string, plugin from user;
テーブル内のrootユーザーのホストはデフォルトで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ファイルに次の行を追加できます。
default-authentication-plugin=mysql_native_password
サーバーでファイアウォールが有効になっている場合は、ポート3306を開く必要があります。
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
注:[Cloud Server](https://cloud.tencent.com/product/cvm?from=10680)の場合、一部のサービスプロバイダー(Alibaba Cloudなど)は、コンソールにアクセスしてポートを開く必要があります。
文字エンコーディングの変更
文字セットはシンボルとコードのセットです。文字セットの構成を確認してください。
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/|+--------------------------+--------------------------------+
文字セットの有効なルールは次のとおりです。テーブルはデータベースから継承し、データベースはサーバーから継承します。つまり、設定できるのは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|+---------+---------------+--------------------+--------+
校正ルールの有効なルール:校正ルールが設定されていない場合、文字セットはデフォルトの校正ルールを採用します。たとえば、utf8mb4の校正ルールはutf8mb4_0900_ai_ciです。
MySQL8のデフォルトの文字セットがutf8mb4に変更されました。以前のMySQLバージョンのデフォルトの文字セットがutf8mb4でない場合は、utf8mb4に変更することをお勧めします。
mb4はほとんどのバイト4です。なぜutf8ではなくutf8mb4なのですか? MySQLでサポートされているutf8エンコーディングの最大文字長は3バイトです。4バイト幅の文字が検出されると、例外が挿入されます。
以下は、古いバージョンのMySQLの文字セットをutf8mb4に変更する手順です。MySQL8.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
おすすめ:
興味のある友達は、編集者のWeChatパブリックアカウント[** Ma Nongのささいなこと**]、より多くのWebページ作成の特殊効果のソースコード、および乾物の学習をフォローできます。 ! !
総括する
上記は、エディターが紹介したCentOS7にMySQL8をインストールするためのチュートリアルの詳細な説明です。お役に立てば幸いです。ご不明な点がございましたら、メッセージを残していただければ、エディターから返信があります。 ZaLou.Cnのウェブサイトをご支援いただきありがとうございます。
Recommended Posts