今回はMySQLのインストール手順を掲載します。
MySQLのアーキテクチャを理解した上でインストールするのがベストではあるのですが、
MySQLを使う人がみんなDBAな訳ではないので、
そんなものは知る必要はない、という方も大勢いると思います。
なにより、そんなことから始めているとMySQLが嫌いになってしまうので(笑)、
まずはMySQLをインストールすることを優先したいと思います。
なお、下記手順はすべてLinux(CentOS 6.5)でのものになります。
まず、MySQLのインストール方法は大きく分けて3つあります。
1.RPMパッケージでのインストール(yumによるインストールも含む)
2.tar.gzファイルでのインストール
3.ソースをビルドしてのインストール
インストール後の性能、機能等は全く同じです。
それぞれの特徴を以下にまとめました。
1.RPMパッケージ
長所:インストール手順が容易。
短所:プログラム本体をインストールするディレクトリが選べない(/var/lib/mysqlになります)。
2.tar.gzファイル
長所:プログラムのインストールディレクトリを選べる。
短所:インストール手順が比較的長い。
3.ソースビルド
長所:プログラムを自分でカスタマイズできる。
短所:インストール手順が複雑になる。
どこにプログラムを配備しても構わない、という場合や、
なんでもいいからとにかくMySQLが動いてくれさえすればいい、という場合は、
RPMパッケージを利用したインストールをお勧めします。
理由は、インストールが簡単だからです。
これに対して、プログラムを/var/lib/mysqlに配備するのでは困る場合、
RPMパッケージが利用できないOSのディストリビューションである場合、
あるいは旧環境からのリプレイスをするシチュエーションで、
現行機がtar.gzから導入したものであった、
などの場合はtar.gzからのインストールが良いでしょう。
ソースビルドから行う、というのは通常行いません。
MySQLがオープンソースであるメリットを最大限に活かしている、
と言えば聞こえは良いのですが、ソースを改変する必要があるシチュエーションは稀です。
さらに言えば、ソースの改変は非常に高度ですので、
インストール手順など聞くまでもない、
くらいの技術を持っていないと不可能です。
この記事ではRPMパッケージによるインストールを紹介します。
この記事執筆時点(2015/8/2)時点の最新GA版(安定利用できるバージョン)は
5.6.26ですので、これをインストールします。
バイナリは下記公式サイトよりダウンロードできます。
https://dev.mysql.com/downloads/mysql/5.6.html
なお、これはCommunity Editionですので、
Enterprise Editionをご利用の場合はMy Oracle Support(MOS)から
ダウンロードしてください。
このサイトに行くと、こんな画面が出てくると思います。
今回は最新版を使うので、ここで表示されている5.6.26をダウンロードすればよいのですが、
既存環境に合わせたい等の理由で過去のバージョンを利用したい場合は、
このスナップショットよりも少し上に
「Looking for previous GA versions?」
というタグがありますので、その中の
「Archived versions »」
のリンク先からダウンロードできます。
このページに来た時点ではSelect Platformの項でMicrosoft Windowsが選択されていますので、
今回使用するCentOSをPlatformに選択・・・しようとしてもCentOSはないですね。
本当ならLinux-Genericを選択すべきですが、
今回はRed Hat Enterprise Linux(RHEL)を選択します。
CentOSはRHELの兄弟分で、ほぼほぼ互換していると考えて問題ないですし、
多くの方が利用しているであろうRHELでのパッケージ名の読み方や、
yumでのインストールについて説明したい都合もあるためです。
商用環境ではこのような選択はせず、
しっかり実際のプラットフォームに合ったプラットフォームを選択してください。
プラットフォームを選択するとずらっとパッケージが表示されます。
最低限必要なパッケージは、
MySQL-server
MySQL-client
MySQL-shared-compat
です。
MySQL-serverはMySQLサーバープログラム本体です。
MySQL-clientはMySQLに接続するクライアントプログラムで、
MySQL Server/clientプロトコルで通信するユーティリティとなっています。
100%必須とも言い切れませんが、
これがないと毎回java等でプログラムを書いてDBAの作業を行うことになるので
現実的ではありません。
MySQL-shared-compatは、Linuxにデフォルトで導入されているmysql-libsを無効にした上で
古いMySQLとの互換性を持つライブラリを導入するパッケージです。
デフォルトで導入されているmysql-libsを無効にしないと、
MySQL-serverをインストールする際に競合エラーが出ます。
かといってmysql-libsを抜こうとすると、
今度は他のパッケージに依存されているため依存性エラーが出てしまうため、
このようなパッケージが準備されているわけです。
実際のパッケージ名は、たとえばこんな感じになっています。
MySQL-server-5.6.26-1.el6.x86_64.rpm
MySQL-serverってのはパッケージ名ですね。
5.6.26-1ってのはバージョンです。
el6ってのはRHEL6を意味しています。
x86_64はハードウェアのアーキテクチャです。今回64bitマシンなのでx86_64を使用しています。
ですので、今回必要なパッケージ名は以下3点となります。
MySQL-server-5.6.26-1.el6.x86_64.rpm
MySQL-client-5.6.26-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.26-1.el6.x86_64.rpm
必要なパッケージが決まったら、その右にある「Download」ボタンをクリックしてください。
すると、下記のような画面に移動するはずです。
このページの、
「No thanks, jast start my download.」
がパッケージへの直リンクとなっており、
クリックするとダウンロードできます。
こうしてダウンロードしたパッケージをサーバ上に配備してください。
WinSCP、FTPなどのファイル転送を用いても良いですし、
そもそもサーバに直接wgetコマンドでダウンロードしても良いでしょう。
それではいよいよインストールです。
サーバ上で下記コマンドを実行することでインストールできます。
# rpm -Uvh MySQL-shared-compat-5.6.26-1.el6.x86_64.rpm # rpm -ivh MySQL-client-5.6.26-1.el6.x86_64.rpm # rpm -ivh MySQL-server-5.6.26-1.el6.x86_64.rpm
shared-compatのみ-Uオプションなのは、
既存のmysql-libsを無効にするために必要だからです。
-iオプションでもshared-compatを導入することはできますが、
mysql-libsを無効にしません。
shared-compatを導入した時点でmysql-libsは抜けるようになっているので、
rpm -eコマンドでmysql-libsを明示的に抜いてやればよいのですが、
手間がかかるだけなので、-Uオプションでmysql-libsを無効にしてしまいます。
これでMySQL Serverがインストールできました。
RPMコマンドでインストールすると自動起動設定やサービス登録もされていますので、
serviceコマンドで起動できます。
# service mysql start
導入直後はrootユーザのパスワードを変更しないと
何もオペレーションができないよう設定されているので、
rootユーザのパスワードを変更します。
最初にランダムでセットされているrootユーザのパスワードは、
~/.mysql_secretファイルに記載されていますので、
これをメモしておきます。
まずMySQLに接続します。
# mysql -uroot -p
ここでパスワードを要求されますので、先ほどのパスワードを入力します。
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.26 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>
MySQLに接続できました。
続いてパスワードを変更します。
mysql> set password for 'root'@'localhost'=password('new-password');
‘root’@’localhost’というのがユーザ名です。
rootだけでユーザじゃないの?
という疑問が出るかと思いますが、
MySQL内部でのユーザは、
「ユーザ名+接続を許可するホスト」
で1つのユーザとして認識されているのです。
すなわち、この例では、
rootという名前のユーザでlocalhostから接続してくるユーザのパスワードを「new-password」に変更する
ということになります。
これでMySQLが自由に利用できる状態になりました。
MySQLを使いこなすにはまだまだサーバー変数の設定など、
行わなければならないことはありますが、ひとまずはこれでMySQLが利用できます。
この後すべき設定・チューニングについてはまた他の記事で掲載します。
おしまい。