CentOS7.6でデフォルトでインストールできるMySQLは、MariaDBというMySQL派生のDBです。
MySQLとほぼ同じなので、そのまま使っても特に問題はないのですが、本番環境でMySQL5.6を使うにあたり、同じバージョンに揃えたいので、入れ替えることにしました。
入れ替え自体はそんなに大変ではありませんが、手順が多いので、備忘録としてメモメモ。
MariaDBのアンインストール
デフォルトで入るのはMariaDBの5.5。これはMySQL5.5に相当するため、もしMySQL5.5で環境構築をしたいのであれば、入れ替える必要はないかもしれません。
ではまず、インストールされているパッケージの確認。
# rpm -qa | grep maria
mariadb-libs-5.5.60-1.el7_5.x86_64
MariaDBをアンインストールします。
# yum remove mariadb-libs
依存性関連のパッケージがあれば、一緒に削除されます。自分の環境では、3種類くらいのパッケージが一緒に削除されました。
MySQL公式リポジトリの追加と設定
MySQLの5.6以降をインストールするためには、まずMySQL公式サイトからリポジトリをインストールする必要があります。
CentOS7系は、RHEL7系のパッケージを使いますので、RHEL7系用のパッケージをダウンロードします。または、直接インストールしてしまいましょう。
# yum install https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
このリポジトリを追加することで、MySQL5.5、5.6、5.7、8.0のいずれかを選択して、インストールすることができるようになります。
リポジトリが追加されたかどうかは、以下のコマンドで確認できます。
# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 無効
mysql-connectors-community/x86_64 MySQL Connectors Community 有効
mysql-connectors-community-source MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64 MySQL Tools Community 有効
mysql-tools-community-source MySQL Tools Community - Source 無効
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source 無効
mysql55-community/x86_64 MySQL 5.5 Community Server 無効
mysql55-community-source MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64 MySQL 5.6 Community Server 無効
mysql56-community-source MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - Sou 無効
mysql80-community/x86_64 MySQL 8.0 Community Server 有効
mysql80-community-source MySQL 8.0 Community Server - Sou 無効
# yum-config-manager --disable mysql80-community
# yum-config-manager --enable mysql56-community
# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 無効
mysql-connectors-community/x86_64 MySQL Connectors Community 有効
mysql-connectors-community-source MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64 MySQL Tools Community 有効
mysql-tools-community-source MySQL Tools Community - Source 無効
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source 無効
mysql55-community/x86_64 MySQL 5.5 Community Server 無効
mysql55-community-source MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64 MySQL 5.6 Community Server 有効
mysql56-community-source MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - Sou 無効
mysql80-community/x86_64 MySQL 8.0 Community Server 無効
mysql80-community-source MySQL 8.0 Community Server - Sou 無効
# yum install yum-utils
MySQLのインストール
インストールを行う前に、念のためパッケージのバージョンを確認します。# yum info mysql-community-server
# yum install mysql-community-server
# mysqld --version
mysqld Ver 5.6.43 for Linux on x86_64 (MySQL Community Server (GPL))
# systemctl enable mysqld
# systemctl start mysqld
MySQLの初期設定
MySQLの初期設定は、いくつかの質問に答えていくだけで完了します。質問部分だけ抜粋してみました。# mysql_secure_installation
Enter current password for root (enter for none):(何も入力せずエンター)
Set root password? [Y/n] y(設定しておいた方がいいのでy)
New password:(設定したいパスワードを入力)
Re-enter new password:(設定したいパスワードを再入力)
Remove anonymous users? [Y/n] y(匿名ユーザーは不要なのでy)
Disallow root login remotely? [Y/n] y(rootでリモートログインはNGなのでy)
Remove test database and access to it? [Y/n]y(テスト用のデータベースはいらないのでy)
Reload privilege tables now? [Y/n]y(ここまでの設定を反映させるのでy)
# vi /etc/my.cnf
character_set_server=utf8mb4
explicit_defaults_for_timestamp = true
skip-character-set-client-handshake
table_definition_cache = 400
# systemctl restart mysqld
MySQLユーザーの作成
いつもrootユーザーでDBを操作するわけにはいかないので、ユーザーを作成します。 まずはMySQLにログインします。# mysql -p
Enter password:(rootユーザーに設定したパスワード)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
mysql> FLUSH PRIVILEGES;
mysql> exit;
# mysql -u ユーザー名 -p
Enter password:(作成したユーザーに設定したパスワード)
phpMyAdminのインストール
いつもコマンドラインから操作するのは面倒なので、Webブラウザから操作できるphpMyAdminをインストールします。# yum_remi install phpmyadmin
# yum_remi install php-pecl-mcrypt
#!/bin/sh
yum --enablerepo=epel,remi $@
phpMyAdminの設定
設定ファイルの編集をします。config.inc.php
まずはconfig.inc.phpに、暗号化用のパスフレーズを設定します。これをやらないと、phpMyAdmin上でエラーが表示されてしまいます。設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。
# cp -a /usr/share/doc/phpMyAdmin-4.8.5/config.sample.inc.php /etc/phpMyAdmin/config.inc.php
# vi /etc/phpMyAdmin/config.inc.php
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
# openssl rand -base64 100 | fold -w 32 | head -1
phpMyAdmin.conf
アクセス権に関する設定を行います。これをやらないと、phpMyAdminにアクセスできません。# vi /etc/httpd/conf.d/phpMyAdmin.conf
# Apache 2.4
Require local
Require ip 192.168.1.0/24 ← 追記
# systemctl restart httpd
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)
session_start(): Failed to read session data: files (path: /var/lib/php/session)
# chmod 777 /var/lib/php/session
$cfg['TempDir'] (/var/lib/phpMyAdmin/temp/) にアクセスできません。phpMyAdmin はテンプレートをキャッシュすることができないため、低速になります。
# chmod 777 /var/lib/phpMyAdmin/temp
さいごに
以上で、MySQLおよびphpMyAdminのインストールと設定が終わりました。ここまでやっておけば、WordpressをインストールしてWebサイトのテスト環境が作れます! お疲れ様でした!初稿:2019年2月18日
[CentOS] 不要PCにCentOS7.6をインストール
4年ほど前、サポートが切れて使わなくなったWindowsServer2003の本体を使って、テスト環境用にLinuxサーバを構築しました。 途中で何度かアップデートをし、現在はCentOS6.10+PHP5.6で動作しています。 しかし、こ...
[CentOS] CentOS7.6でtelnetが自動起動してくれない!
不要PCにCentOS7.6をインストールし、最低限の設定が終わったところまで、前回の記事でまとめました。 その日の作業が終わったところで、一旦PCの電源を切っていたのですが、翌日起動してみるとtelnetがつながらない!コンソールからログ...
[CentOS] CentOS7.6のyumリポジトリにEPELとRemiを追加
CentOS7.6には、PHPが5.4、MySQLは互換DBのMariaDB5.5が入っていました。 今回構築している環境は、公開前のWebサイトを構築するテストサーバ的な動作もさせたいので、本番用サーバと仕様を合わせたい。 本番用サーバで...
[CentOS] CentOS7.6にPHP7.3をインストール
CentOS7.6には、デフォルトでPHP5.4がインストールされます。 今となっては古いPHPになってしまいますが、商用ディストリビューションのRed Hat Enterprise Linux(RHEL)のソースを元に作られているCent...
[CentOS] CentOS7.6のSamba4で認証なし共有がうまくいかない
既存のCentOS6.10+Samba3.6の環境で、htdocsとshareのふたつのディレクトリを、認証なしで接続できるように設定しています。 その設定ファイルを、そのままCentOS7.6+Samba4.8の環境に持ってきたら、なぜか...
コメント