LAMP構築-Linux(CentOS)へRPMパッケージからMySQLをインストール

CentOS Linux
この記事は約16分で読めます。

※当ブログではアフィリエイト広告を利用しています。

前回は、LAMP環境のWebサーバ「A」(Apache HTTP Server)をインストールしました。

前回の記事はこちら⇒LAMP構築-Linux(CentOS)へApacheをソースコードからインストール

今回はLAMP環境のDBサーバ「M」。

Linux(CentOS)へRPMパッケージを使用して、「MySQL」をインストールします。

なお、今回のバージョンは以下です。

  • CentOS-6.4-i386
  • MySQL Community Server 5.6.13

MySQLのダウンロード

MySQLの公式サイトより、MySQLをダウンロードする。

ダウンロードするのは、「MySQL Community Server」の「MySQL Server」、「Compatibility Libraries」、「Client Utilities」、「Development Libraries」の3つ。

「Compatibility Libraries」、「Development Libraries」は後ほど使用するので。

今回は「Oracle & Red Hat Linux 6」版を選択したが、Red Hat Enterprise LinuxとCentOSは互換性があるので大丈夫かと。

なお、ダウンロードするにはOracle社のアカウントが必要なので注意。

  • Red Hat/Oracle Enterprise Linux ver. 6 (x86, 32-bit), RPM Package MySQL Server
  • Red Hat/Oracle Enterprise Linux ver. 6 (x86, 32-bit), RPM Package Compatibility Libraries
  • Red Hat/Oracle Enterprise Linux ver. 6 (x86, 32-bit), RPM Package Client Utilities
  • Red Hat/Oracle Enterprise Linux ver. 6 (x86, 32-bit), RPM Package Development Libraries

ダウンロードしたファイルで言うと以下。

  • MySQL-server-5.6.13-1.el6.i686.rpm
  • MySQL-shared-compat-5.6.13-1.el6.i686.rpm
  • MySQL-client-5.6.13-1.el6.i686.rpm
  • MySQL-devel-5.6.13-1.el6.i686.rpm

MySQL Serverのインストール

ダウンロードしたRPMパッケージをCentOSへ配置する。

配置するのは、「WinSCP」を使用した。

「WinSCP」についてはこちらの記事参照⇒Linux(CentOS)へSSH接続するための設定

続いて、配置したRPMパッケージを使用し、MySQLをインストールする。

そうすると以下のようなエラーとなった。

#「MySQL Server」のインストール(エラー)
$ rpm -ivh MySQL-server-5.6.13-1.el6.i686.rpm
エラー: 依存性の欠如:
        libaio.so.1 は MySQL-server-5.6.13-1.el6.i686 に必要とされています
        libaio.so.1(LIBAIO_0.1) は MySQL-server-5.6.13-1.el6.i686 に必要とされています
        libaio.so.1(LIBAIO_0.4) は MySQL-server-5.6.13-1.el6.i686 に必要とされています

#「libaio」のインストール
$ yum install libaio

#再び「MySQL Server」のインストール(エラー)
$ rpm -ivh MySQL-server-5.6.13-1.el6.i686.rpm
エラー: 依存性の欠如:
        /usr/bin/perl は MySQL-server-5.6.13-1.el6.i686 に必要とされています

#「perl」のインストール
$ yum install perl

#再び「MySQL Server」のインストール(エラー)
$ rpm -ivh MySQL-server-5.6.13-1.el6.i686.rpm
準備中...                ########################################### [100%]
        ファイル /usr/share/mysql/czech/errmsg.sys (パッケージ MySQL-server-5.6.13-1.el6.i686 から) は、パッケージ mysql-libs-5.1.66-2.el6_3.i686 からのファイルと競合しています。
        ファイル /usr/share/mysql/danish/errmsg.sys (パッケージ MySQL-server-5.6.13-1.el6.i686 から) は、パッケージ mysql-libs-5.1.66-2.el6_3.i686 からのファイルと競合しています。
…
(省略)
…
        ファイル /usr/share/mysql/charsets/macroman.xml (パッケージ MySQL-server-5.6.13-1.el6.i686  から) は、パッケージ mysql-libs-5.1.66-2.el6_3.i686 からのファイルと競合しています。
        ファイル /usr/share/mysql/charsets/swe7.xml (パッケージ MySQL-server-5.6.13-1.el6.i686 から) は、パッケージ mysql-libs-5.1.66-2.el6_3.i686 からのファイルと競合しています。

どうも古いバージョンのMySQLのライブラリが邪魔しているよう。

古いライブラリ「/usr/share/mysql」をディレクトリごと削除してみたがダメ。

先ほどダウンロードした同一バージョンのライブラリ「Compatibility Libraries」をインストールし、旧バージョンのライブラリをアンインストールする必要があるみたい。

以下のようにすると、無事にインストールできた。

#「Compatibility Libraries」のインストール
$ rpm -ivh MySQL-shared-compat-5.6.13-1.el6.i686.rpm

#インストールされているパッケージの検索
$ yum list installed mysql-libs*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Installed Packages
mysql-libs.i686                    5.1.66-2.el6_3             @anaconda-CentOS-201303020136.i386/6.4

#「mysql-libs.i686」のアンインストール
$ yum remove mysql-libs.i686

#再び「MySQL Server」のインストール(正常終了)
$ rpm -ivh MySQL-server-5.6.13-1.el6.i686.rpm

インストール後は、以下のようなメッセージが表示される。

MySQLの「root」ユーザーの初期パスワードが「/root/.mysql_secret」に設定されているようで、初回ログイン時に「SET PASSWORD」コマンドでパスワード変更をしないといけないみたいだ。

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.

You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.

Also, the account for the anonymous user has been removed.

In addition, you can run:

  /usr/bin/mysql_secure_installation

which will also give you the option of removing the test database.
This is strongly recommended for production servers.

See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at

  http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

New default config file was created as /usr/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings

  Verifying  : MySQL-server-5.6.13-1.el6.i686                                                   1/1

Installed:
  MySQL-server.i686 0:5.6.13-1.el6

Complete!

初期パスワードが設定された「/root/.mysql_secret」ファイルを見てみると、確かにランダムの値が設定されていた。

#ファイルを開く
$ vi /root/.mysql_secret

# The random password set for the root user at Mon Jul 15 05:43:53 2013 (local time): Uf0GQxuD

インストールディレクトリはMySQL公式サイトを参照。

データベース本体は「/var/lib/mysql」のようだ。

また、インストール後のメッセージの通り「/usr/my.cnf」が設定ファイルみたい。

MySQL Clientのインストール

MySQL Serverへ接続するために「MySQL Client」をインストールする。

これで、「mysql」コマンドが使用できるようになる。

#「MySQL Client」のインストール
$ rpm -ivh MySQL-client-5.6.13-1.el6.i686.rpm

MySQL Developmentのインストール

後々使用するので「MySQL Development Libraries」をインストールしておく。

なお、本記事内では特に使用しない。

#「MySQL Development Libraries」のインストール
$ rpm -ivh MySQL-devel-5.6.13-1.el6.i686.rpm

MySQLへログイン

まずは、サービスを起動させる。

また、ログイン時に自動起動されるようにしておこうと思ったら、すでに自動起動されるようになっていた。

#サービスの確認
$ service mysql status
 ERROR! MySQL is not running

#サービスの起動
$ service mysql start
Starting MySQL....................... SUCCESS!

#サービス自動起動の確認
$ chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

続いて、「mysql」コマンドでログインする。

「-p」オプションでパスワードを指定する場合は、「-p」直後に空白を入れずにパスワードを付けないといけない…みたい。

「root」ユーザーでログイン後は、先ほどの通り、パスワードを変更してやる。

パスワード変更しないと、データベースを使えないので注意が必要。

#ユーザー「root」でログイン
$ mysql -u root -pUf0GQxuD

#パスワード変更
mysql> SET PASSWORD FOR root@localhost=PASSWORD('PASSWORD');

#サーバーステータス確認
mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.6.13, for Linux (i686) using  EditLine wrapper

Connection id:          7
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.6.13
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 39 min 0 sec

Threads: 1  Questions: 13  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.005
--------------

せっかくログインしたので、少しデータベースの中を見てみる。

#データベース一覧表示
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.09 sec)

#データベース「mysql」を使用
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

#テーブル一覧表示
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
28 rows in set (0.00 sec)

「mysql_secure_installation」コマンドでセキュリティ設定

セキュリティ設定を行うコマンドが用意されているので、実行する。

以下の5点が質問されるので、設定を行う。

#セキュリティ設定コマンド
$ mysql_secure_installation

#「root」ユーザーのパスワード変更
Change the root password? [Y/n] n

#匿名ユーザーの削除
Remove anonymous users? [Y/n] Y

#「root」ユーザーのリモート接続許可
Disallow root login remotely? [Y/n] Y

#「test」データベースの削除
Remove test database and access to it? [Y/n] Y

#権限テーブルのリロード
Reload privilege tables now? [Y/n] Y

以上で、終了ー。

参考サイト

MySQLのインストール方法が進化していた! – sakaikの日々雑感~(T)編

CentOS 6.3にMySQL 5.6インストールでmysql-libs-5.1.61-4.el6.x86_64と競合する問題 – noob

コメント

タイトルとURLをコピーしました