ソフトウェア | バージョン |
---|---|
CentOS | 8.2 Release |
MySQL | 8.0.21 |
ソフトウェア | バージョン |
---|---|
CentOS | CentOS 8 |
MySQL | 8.0.21+ |
# CentOS 7
cd /home/downloads
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm
# インストール
sudo yum install -y mysql-server
# サービス開始
sudo systemctl start mysqld
# バージョン情報を表示する
mysql -V
# mysql Ver 8.0.21for Linux on x86_64(Source distribution)
#1、 パスワードなしでMySQLシェルを入力してください
mysql -u root
#2、 パスワードを変更する
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd123!';
# ポートを開く
firewall-cmd --add-port=3306/tcp --permanent
# ファイアウォール設定をリロードします
firewall-cmd --reload
MySQL 8には、サーバーにMySQLをデプロイするためのセキュリティ設定の操作を簡素化する新しいセキュリティ設定ウィザードが追加されました。これはすばらしいことです。
セキュリティ設定は、大きく次の手順/オプションに分けられます
上記の手順/オプションは、必要に応じて実行できます。
mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
The existing password for the user account root has expired. Please set a newpassword.
New password:
Re-enter newpassword:
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: N
Using existing password for root.
Change the password for root ?((Press y|Y for Yes, any other key for No): Y
New password:
Re-enter newpassword:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users?(Press y|Y for Yes, any other key for No):... skipping.
Normally, root should only be allowed to connect from'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely?(Press y|Y for Yes, any other key for No): N
... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it?(Press y|Y for Yes, any other key for No): N
... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now?(Press y|Y for Yes, any other key for No): Y
Success.
All done!
# データベースを作成する
mysql> CREATE DATABASE mydb;
# すべてのデータベースを表示
mysql> SHOW DATABASES;
# データを使用してテーブルを作成する
mysql> USE mydb;
mysql> CREATE TABLE test(id int,body varchar(100));
# 表を見る
mysql> SHOW TABLES;
# 新しいローカルユーザー
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
# 新しいリモートユーザー
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';
# 指定されたアカウントに、指定されたデータベースへのリモートアクセス権限を付与します
mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'test'@'%';
# 指定されたアカウントにすべてのデータベースへのリモートアクセス許可を付与します
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
# 指定されたアカウントにすべてのデータベースへのローカルアクセスを許可します
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
# 権限の更新
mysql> FLUSH PRIVILEGES;
#1、 権限の表示
SHOW GRANTS FOR 'test'@'%';
#2、 権限を付与する
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
#3、 許可を取り消す
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';
#4、 権限の更新
FLUSH PRIVILEGES;
#5、 ユーザーを削除する
DROP USER 'test'@'localhost';
[ root@centos7 download]# whereis my.cnf
my:/etc/my.cnf
# 構成ファイルを変更する
vi /etc/my.cnf
# 変更1:クライアント構成の追加(ファイルの先頭)
[ client]default-character-set=utf8mb4
# 変更2:mysqld構成を追加します(ファイルの終わり)
# charset
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
# 構成は再起動後に有効になります
systemctl restart mysqld
http://www.infoq.com/cn/articles/in-mysql-never-use-utf8-use-utf8
https://serverfault.com/questions/139323/how-to-bind-mysql-server-to-more-than-one-ip-address
Recommended Posts