当サイトがお世話になっているXserverのwordpressにて効率よく投稿一覧をを調べるにはどうしても直接SQLを叩くのが一番です。これまでほとんど触った事のなかったMySQLですが、これをきっかけに、CentOS7へMySQL 5.7.39インストールしました。(現状XserverのwordpressはMySQL5.7xで動作しているためです)
MySQL 5.7xのダウンロード
以下サイトからダウンロードしました。
https://downloads.mysql.com/archives/community/
現状5.7xで最もあたらしいものが以下でした。
mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
MariaDBの削除
CentOS7からはMariaDBが最初から入っているらしくMySQLをインストールするにはこれを事前に削除する必要があるとの事です。(削除しないと競合が発生しうまくセットアップできないとの事)
rpm -qa |grep mariadb
[root@vm103 tmp]# rpm -qa |grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64 <-- たしかに入っていました
[root@vm103 tmp]#
[root@vm103 tmp]# yum list installed | grep mariadb
mariadb-libs.x86_64 1:5.5.68-1.el7 @anaconda <-- リポジトリもあります
[root@vm103 tmp]#
yum remove を使いMariaDB関連パッケージ削除
yum remove -y mariadb-libs
[root@vm103 tmp]# yum remove -y mariadb-libs
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.68-1.el7 を 削除
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-9.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-9.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ postfix.x86_64 2:2.10.1-9.el7 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
====================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
====================================================================================================================================
削除中:
mariadb-libs x86_64 1:5.5.68-1.el7 @anaconda 4.4 M
依存性関連での削除をします:
postfix x86_64 2:2.10.1-9.el7 @anaconda 12 M
トランザクションの要約
====================================================================================================================================
削除 1 パッケージ (+1 個の依存関係のパッケージ)
インストール容量: 17 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : 2:postfix-2.10.1-9.el7.x86_64 1/2
削除中 : 1:mariadb-libs-5.5.68-1.el7.x86_64 2/2
検証中 : 1:mariadb-libs-5.5.68-1.el7.x86_64 1/2
検証中 : 2:postfix-2.10.1-9.el7.x86_64 2/2
削除しました:
mariadb-libs.x86_64 1:5.5.68-1.el7
依存性の削除をしました:
postfix.x86_64 2:2.10.1-9.el7
完了しました!
[root@vm103 tmp]#
yum localinstall にてインストール
yum localinstall mysql-community-*
[root@vm103 tmp]# yum localinstall mysql-community-*
読み込んだプラグイン:fastestmirror, langpacks
mysql-community-client-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-client-5.7.39-1.el7.x86_64
mysql-community-client-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-common-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-common-5.7.39-1.el7.x86_64
mysql-community-common-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-devel-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-devel-5.7.39-1.el7.x86_64
mysql-community-devel-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-embedded-5.7.39-1.el7.x86_64
mysql-community-embedded-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-compat-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-embedded-compat-5.7.39-1.el7.x86_64
mysql-community-embedded-compat-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-devel-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-embedded-devel-5.7.39-1.el7.x86_64
mysql-community-embedded-devel-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-libs-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-libs-5.7.39-1.el7.x86_64
mysql-community-libs-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-libs-compat-5.7.39-1.el7.x86_64
mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-server-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-server-5.7.39-1.el7.x86_64
mysql-community-server-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-test-5.7.39-1.el7.x86_64.rpm を調べています: mysql-community-test-5.7.39-1.el7.x86_64
mysql-community-test-5.7.39-1.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-common.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-devel.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-embedded.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-embedded-compat.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-embedded-devel.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-libs.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-libs-compat.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-server.x86_64 0:5.7.39-1.el7 を インストール
---> パッケージ mysql-community-test.x86_64 0:5.7.39-1.el7 を インストール
--> 依存性の処理をしています: perl(JSON) のパッケージ: mysql-community-test-5.7.39-1.el7.x86_64
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
--> 依存性の処理をしています: perl(JSON) のパッケージ: mysql-community-test-5.7.39-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ perl-JSON.noarch 0:2.59-2.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
====================================================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
====================================================================================================================================
インストール中:
mysql-community-client x86_64 5.7.39-1.el7 /mysql-community-client-5.7.39-1.el7.x86_64 107 M
mysql-community-common x86_64 5.7.39-1.el7 /mysql-community-common-5.7.39-1.el7.x86_64 2.8 M
mysql-community-devel x86_64 5.7.39-1.el7 /mysql-community-devel-5.7.39-1.el7.x86_64 24 M
mysql-community-embedded x86_64 5.7.39-1.el7 /mysql-community-embedded-5.7.39-1.el7.x86_64 201 M
mysql-community-embedded-compat x86_64 5.7.39-1.el7 /mysql-community-embedded-compat-5.7.39-1.el7.x86_64 88 M
mysql-community-embedded-devel x86_64 5.7.39-1.el7 /mysql-community-embedded-devel-5.7.39-1.el7.x86_64 905 M
mysql-community-libs x86_64 5.7.39-1.el7 /mysql-community-libs-5.7.39-1.el7.x86_64 10 M
mysql-community-libs-compat x86_64 5.7.39-1.el7 /mysql-community-libs-compat-5.7.39-1.el7.x86_64 5.9 M
mysql-community-server x86_64 5.7.39-1.el7 /mysql-community-server-5.7.39-1.el7.x86_64 773 M
mysql-community-test x86_64 5.7.39-1.el7 /mysql-community-test-5.7.39-1.el7.x86_64 670 M
依存性関連でのインストールをします:
perl-JSON noarch 2.59-2.el7 base 96 k
トランザクションの要約
====================================================================================================================================
インストール 10 パッケージ (+1 個の依存関係のパッケージ)
合計容量: 2.7 G
総ダウンロード容量: 96 k
インストール容量: 2.7 G
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/base/packages/perl-JSON-2.59-2.el7.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
perl-JSON-2.59-2.el7.noarch.rpm の公開鍵がインストールされていません
perl-JSON-2.59-2.el7.noarch.rpm | 96 kB 00:00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : mysql-community-common-5.7.39-1.el7.x86_64 1/11
インストール中 : mysql-community-libs-5.7.39-1.el7.x86_64 2/11
インストール中 : mysql-community-client-5.7.39-1.el7.x86_64 3/11
インストール中 : mysql-community-server-5.7.39-1.el7.x86_64 4/11
インストール中 : mysql-community-devel-5.7.39-1.el7.x86_64 5/11
インストール中 : mysql-community-embedded-5.7.39-1.el7.x86_64 6/11
インストール中 : perl-JSON-2.59-2.el7.noarch 7/11
インストール中 : mysql-community-test-5.7.39-1.el7.x86_64 8/11
インストール中 : mysql-community-embedded-devel-5.7.39-1.el7.x86_64 9/11
インストール中 : mysql-community-libs-compat-5.7.39-1.el7.x86_64 10/11
インストール中 : mysql-community-embedded-compat-5.7.39-1.el7.x86_64 11/11
検証中 : mysql-community-client-5.7.39-1.el7.x86_64 1/11
検証中 : mysql-community-devel-5.7.39-1.el7.x86_64 2/11
検証中 : mysql-community-server-5.7.39-1.el7.x86_64 3/11
検証中 : mysql-community-common-5.7.39-1.el7.x86_64 4/11
検証中 : mysql-community-embedded-compat-5.7.39-1.el7.x86_64 5/11
検証中 : mysql-community-libs-compat-5.7.39-1.el7.x86_64 6/11
検証中 : mysql-community-libs-5.7.39-1.el7.x86_64 7/11
検証中 : mysql-community-embedded-5.7.39-1.el7.x86_64 8/11
検証中 : mysql-community-test-5.7.39-1.el7.x86_64 9/11
検証中 : mysql-community-embedded-devel-5.7.39-1.el7.x86_64 10/11
検証中 : perl-JSON-2.59-2.el7.noarch 11/11
インストール:
mysql-community-client.x86_64 0:5.7.39-1.el7 mysql-community-common.x86_64 0:5.7.39-1.el7
mysql-community-devel.x86_64 0:5.7.39-1.el7 mysql-community-embedded.x86_64 0:5.7.39-1.el7
mysql-community-embedded-compat.x86_64 0:5.7.39-1.el7 mysql-community-embedded-devel.x86_64 0:5.7.39-1.el7
mysql-community-libs.x86_64 0:5.7.39-1.el7 mysql-community-libs-compat.x86_64 0:5.7.39-1.el7
mysql-community-server.x86_64 0:5.7.39-1.el7 mysql-community-test.x86_64 0:5.7.39-1.el7
依存性関連をインストールしました:
perl-JSON.noarch 0:2.59-2.el7
完了しました!
[root@vm103 tmp]#
サービスの起動
systemctlにてサービス起動
systemctl start mysqld.service
[root@vm103 tmp]# systemctl start mysqld.service
[root@vm103 tmp]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2022-09-25 00:24:06 JST; 4s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 782 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 743 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 785 (mysqld)
Tasks: 27
CGroup: /system.slice/mysqld.service
mq785 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
9月 25 00:24:04 vm103.box systemd[1]: Starting MySQL Server...
9月 25 00:24:06 vm103.box systemd[1]: Started MySQL Server.
[root@vm103 tmp]#
初回起動タイミングで「初期パスワード生成」されます
実はこの情報にたどり着くまで少し手間取ったのですが、最初のサービス起動タイミングでMySQLログファイルに「初期パスワード」が出力されているので、このパスワードを使い新規パスワードを設定する必要があります。
grep 'temporary password' /var/log/mysqld.log
[root@vm103 tmp]# grep 'temporary password' /var/log/mysqld.log
2022-09-24T15:18:59.655348Z 1 [Note] A temporary password is generated for root@localhost: b>ZkEoCq/6j*
[root@vm103 tmp]# 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 new password.
New password:
<--- 新規パスワード(強度もとめられ何度もやりなおしました、、)
Re-enter new password:
-- rootユーザのパスワード設定
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
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) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
-- 私はリモートでもrootから接続したいのでここではNoにします
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : no
... 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.
-- test用DBを削除
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
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!
[root@vm103 tmp]#
mysqlコマンドで接続する
-pの後ろにそのままパスワードを続ける事も可能です。(コマンドヒストリーに残る事ご注意ください)
[root@vm103 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
パスワードポリシーが厳しすぎる、、
mysql> show global variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
mysql>
パスワード変更
mysql> set password for root@localhost = 'soopas';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
ポート開放
[root@vm103 ~]# firewall-cmd --state
running
[root@vm103 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@vm103 ~]# firewall-cmd --add-port=3306/tcp --zone=public --permanent
success
[root@vm103 ~]# firewall-cmd --reload
success
[root@vm103 ~]# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
ports: 3306/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@vm103 ~]#
rootユーザもリモートで接続可能にする
mysql> select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql> grant all privileges
-> on *.* to root@"%"
-> identified by 'soopass' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)
mysql>