CentOS7 MySQLのインストール

シェアする

CentOS7にMySQLをインストールします。

CentOS7では、標準リポジトリーよりMySQLのインストールができなくなりましたので、MySQLのリポジトリーからインストールするようにします。

インストール前の準備

インストールの前に、CentOS7の後継となる「MariaDB」と競合するので、関連パッケージを削除して、MySQLのリポジトリーをダウンロードします。

# yum list installed | grep maria <LF> <= MariaDB関連パッケージを検索する
mariadb-libs.x86_64     1:5.5.44-1.el7_1     @updates
# yum -y remove mariadb-libs <LF> <= 検索してヒットしたパッケージを削除する
    :
Removed:
  mariadb-libs.x86_64 1:5.5.44-1.el7_1
 
Dependency Removed:
  postfix.x86_64 2:2.10.1-6.el7
 
Complete!
# cd /tmp <LF>
# wget http://dev.mysql.com/get/\
> mysql-community-release-el7-5.noarch.rpm <LF> <= MySQLリポジトリーをダウンロードする
    :
2015-10-20 21:22:10 (172 MB/s) - ‘mysql-community-release-el7-5.noarch.rpm’ saved [6140/6140]
 
# yum -y install mysql-community-release-el7-5.noarch.rpm <LF> <= MySQLリポジトリーをインストールする
    :
Installed:
  mysql-community-release.noarch 0:el7-5
 
Complete!

インストール

yumコマンドで、MySQLをインストールします。

# yum list | grep mysql-community <LF> <= MySQLパッケージの種類を確認する
mysql-community-client.x86_64          5.6.27-2.el7  mysql56-community
mysql-community-common.x86_64          5.6.27-2.el7  mysql56-community
mysql-community-libs.x86_64            5.6.27-2.el7  mysql56-community
mysql-community-release.noarch         el7-5         @/mysql-community-release-el7-5.noarch
mysql-community-server.x86_64          5.6.27-2.el7  mysql56-community
mysql-community-bench.x86_64           5.6.27-2.el7  mysql56-community
mysql-community-client.i686            5.6.27-2.el7  mysql56-community
mysql-community-common.i686            5.6.27-2.el7  mysql56-community
mysql-community-devel.i686             5.6.27-2.el7  mysql56-community
mysql-community-devel.x86_64           5.6.27-2.el7  mysql56-community
mysql-community-embedded.i686          5.6.27-2.el7  mysql56-community
mysql-community-embedded.x86_64        5.6.27-2.el7  mysql56-community
mysql-community-embedded-devel.i686    5.6.27-2.el7  mysql56-community
mysql-community-embedded-devel.x86_64  5.6.27-2.el7  mysql56-community
mysql-community-libs.i686              5.6.27-2.el7  mysql56-community
mysql-community-test.x86_64            5.6.27-2.el7  mysql56-community
# yum info mysql-community-server <LF> <= パッケージ情報を確認する
    :
Available Packages
Name        : mysql-community-server
Arch        : x86_64
Version     : 5.6.27
Release     : 2.el7
Size        : 58 M
Repo        : mysql56-community/x86_64
Summary     : A very fast and reliable SQL database server
    :
# yum -y install mysql-community-server <LF> <= パッケージをインストールする
    :
Installed:
  mysql-community-server.x86_64 0:5.6.27-2.el7
 
Dependency Installed:
  mysql-community-client.x86_64 0:5.6.27-2.el7
  mysql-community-common.x86_64 0:5.6.27-2.el7
  mysql-community-libs.x86_64 0:5.6.27-2.el7
  net-tools.x86_64 0:2.0-0.17.20131004git.el7
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBI.x86_64 0:1.627-4.el7
  perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7
  perl-Net-Daemon.noarch 0:0.48-5.el7
  perl-PlRPC.noarch 0:0.2020-14.el7
 
Complete!

オプションファイルの設定(my.cnf)

とりあえず、オリジナルファイルに文字コードに関する設定のみを追加します。
ちなみに、オプションファイルは、構成ファイルとも呼ばれます。

参考URL
https://dev.mysql.com/doc/refman/5.6/ja/option-files.html

# cp -p /etc/my.cnf /etc/my.cnf.original <LF> <= オリジナルファイルを退避する
# cat my.cnf.original | sed '/^#/d' | sed '/^$/d' > /etc/my.cnf <LF> <= コメント及び空行を削除する
# vim /etc/my.cnf <LF> <= オプションファイルを設定する
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

初期設定

MySQLをセキュアな状態にするために、必ず、実行します。

# systemctl start mysqld <LF>
# mysql_secure_installation <LF>
 
 
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none): <LF>
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
 
Set root password? [Y/n] Y
New password: rootpass <= 推測されないパスワードを設定する
Re-enter new password: rootpass
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 
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? [Y/n] 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.
 
Disallow root login remotely? [Y/n] Y
 ... Success!
 
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? [Y/n] Y
 - Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
 ... Failed!  Not critical, keep moving...
 - 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? [Y/n] Y
 ... Success!
 
 
 
 
All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.
 
Thanks for using MySQL!
 
 
Cleaning up...

確認

MySQLにログインが可能かを確認します。

# mysql -u root -p <LF>
Enter password: rootpass
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.6.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

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> show databases; <LF>
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> select user,host from mysql.user; <LF>
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

mysql> quit; <LF>
Bye

自動起動と自動停止

OSの起動と停止の際に、MySQLの自動起動と自動停止ができるようになっているかを確認します。

# systemctl is-enabled mysqld <LF>
enabled