ソフトウェア | バージョン |
---|---|
CentOS | CentOS 6 & CentOS 7 |
MySQL | 8.0.x |
ソフトウェア | バージョン |
---|---|
CentOS | 7.4 Release |
MySQL | 8.0.11 |
# CentOS 7
cd /home/downloads
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
# CentOS 6
cd /home/downloads
wget https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm
sudo rpm -ivh mysql80-community-release-el6-1.noarch.rpm
# インストール
sudo yum -y install mysql-community-server
# サービス開始
sudo systemctl start mysqld
# バージョン情報を表示する
mysql -V
#1、 ルートアカウント用にMySQLによって生成された一時パスワードを表示する
grep "A temporary password"/var/log/mysqld.log
#2、 MySQLシェルに入る
mysql -u root -p
#3、 パスワードを変更する
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd123!';
# CentOS 7
# ポートを開く
firewall-cmd --add-port=3306/tcp --permanent
# ファイアウォール設定をリロードします
firewall-cmd --reload
# CentOS 6
iptables -I INPUT -p tcp --dport 3306-j ACCEPT
iptables save
セキュリティ設定ウィザードに入る
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!
# 新しいローカルユーザー
CREATE USER 'test'@'localhost' IDENTIFIED BY 'Test@123456';
# 新しいリモートユーザー
CREATE USER 'test'@'%' IDENTIFIED BY 'Test@123456';
# 新しいデータベース
CREATE DATABASE testdb;
# 指定されたアカウントに、指定されたデータベースへのリモートアクセス権限を付与します
GRANT ALL PRIVILEGES ON testdb.* TO 'test'@'%';
# 指定されたアカウントにすべてのデータベースへのリモートアクセス許可を付与します
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
# 指定されたアカウントにすべてのデータベースへのローカルアクセスを許可します
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
# 権限の更新
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
Recommended Posts