momoto.github.io

MySQL Community Server 5.6.13をインストールする(ソースからビルドする方法)

 MySQL Community Server 5.6.13をソースコードからビルドして、Unix系システムへインストールする手引きです。 この記事ではCentOS 6.4環境でインストールの例を示しますが、自身でソースからビルドする方法は特定のLinuxディストリビューションに依りません。

 インストールを行うユーザは、インストール先ディレクトリに対して書込み権限をもっている必要があります。/usr/local/* にインストールする場合、通常、root権限が必要です。

  1. ソースコードを取得する

     ソースコードをインストールするマシンに用意します。 インターネットからダウンロードする場合、dev.mysql.comにソースコードのURLが示されています。 MySQL DownloadsからDownload MySQL Community Serverへとすすみ、Select Platform… では Source Code を選択して、Generic Linux (Architecture Independent), Compressed TAR Archive (mysql-5.6.13.tar.gz)をダウンロードします。ダウンロードの際、Oracleウェブアカウントの登録を促されますが、インストールに必要なものではありません。

     ダウンロードにはcURLやGNU Wgetなどのダウンロードマネージャやウェブブラウザを使用します。 次の例では、cURLをつかってmysql-5.6.13.tar.gzをダウンロードします。

    [root@localhost ~]# curl -Lso mysql-5.6.13.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/
    

     取得したアーカイブファイルは適宜、解凍・展開して、ワーキングディレクトリを移動させます。 FHSに従うシステムであれば、独自にインストールするソフトウェアのためのディレクトリ /usr/local が予め用意されていますので、この記事ではソースコードを /usr/local/src に配置してインストールをすすめます。

    [root@localhost ~]# tar xfz mysql-5.6.13.tzr.gz -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/mysql-5.6.13
    [root@localhost mysql-5.6.13]#
    
  2. インストール要件を満たす

     マシンがインストールの要件を満たしている必要があります。 要件についてはReference Manualに詳しい説明があります。

    • C++コンパイラ

      [root@localhost ~]# yum install gcc-c++
      
    • Make

      [root@localhost ~]# yum install make
      
    • CMake – www.cmake.orgや各種ディストリビューションで配布されています。

      [root@localhost ~]# yum install cmake
      
    • Cursesライブラリ

      [root@localhost ~]# yum install ncurses-devel
      
    • Perl

      [root@localhost ~]# yum install perl
      

     インストール要件ではありませんが、mysqlサーバのためのグループとユーザを用意しておきます。UIDとGIDはRed Hat Enterprise Linux 4 Reference Guide 6.2. 標準ユーザに従って27としています。

    [root@localhost ~]# groupadd -g 27 mysql
    [root@localhost ~]# useradd -u 27 -r -g 27 mysql
    
  3. ビルドファイルを作成する

     cmakeをつかってビルドファイルを作成します。cmakeにオプションを与えることで、インストール先のディレクトリなどを調整することができます。 指定できるオプションについてはcmake . -LHReference Manualを参照してください。 ビルドの要件を満たしていない場合、cmakeの処理は中断されます。

     例えば、インストール先のディレクトリを /usr/local/mysql-5.6.13 として、 デフォルトの文字セットをUTF-8、 照合順序をutf8_general_ciと指定する場合は次のようにcmakeを実行します。

    [root@localhost mysql-5.6.13]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.13 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
    

     次に、cmakeのエラー例をいくつか示します。

    • “CMAKE_CXX_COMPILER-NOTFOUND” was not found.

      CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
      

       C++コンパイラが正しくインストールされているか確認してください。

    • Curses library not found.

      -- Could NOT find Curses  (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
      CMake Error at cmake/readline.cmake:85 (MESSAGE):
        Curses library not found.  Please install appropriate package,
      
            remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
      

       Cursesライブラリが正しくインストールされているか確認してください。

     cmakeの処理が終了してMakefileが作成されていれば、ビルドの段階へすすみます。

  4. ビルドとインストール

     ビルドとインストールにはmakeを使います。ディスクの容量が充分足りていることを確認してください。

    [root@localhost mysql-5.6.13]# make && make install
    

     makeの処理が無事に終了したらインストールは完了です。 cmakeの-DCMAKE_INSTALL_PREFIXに指定した位置にファイルが展開されているはずです。PREFIXを指定していなかった場合は”/usr/local/mysql”になります。

    [root@localhost mysql-5.6.13]# /usr/local/mysql-5.6.13/bin/mysqld --version
    /usr/local/mysql-5.6.13/bin/mysqld  Ver 5.6.13 for Linux on x86_64 (Source distribution)
    

インストール後

 データディレクトリの初期化、MySQLユーザの設定などを行なっていきます。

 そのほか、必要に応じて、my.cnfの設定、起動スクリプトの設置、自動起動の設定、実行バイナリへのパスの設定を行なってください。 ソースコードのアーカイブには、標準のLSB起動スクリプトが用意されています。

  [root@localhost mysql-5.6.13]# cp support-files/mysql.server /etc/init.d/mysqld

動作を確認する

MySQLクライアントからMySQLサーバへアクセスして動作を確認してみます。

[root@localhost mysql-5.6.13]# ./bin/mysql -u root -p -h localhost

  Enter password:
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  Your MySQL connection id is 1
  Server version: 5.6.13 Source distribution

  Copyright (c) 2000, 2013, 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> SELECT version();

  +-----------+
  | version() |
  +-----------+
  | 5.6.13    |
  +-----------+
  1 row in set (0.00 sec)

参考

関連記事