前回は、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
コメント