本日も乙

ただの自己満足な備忘録。

さくらVPS(CentOS 6.2)でソースからMySQL5.5.28をインストール

前回MySQLyumでインストールしたが今回はソースからインストールしてみる。

インストールしたバージョンは、MySQL5.5.28。

  1. 必要なパッケージのインストール
  2. $ sudo yum install gcc gcc-c++ ncurses-devel cmake bison
    
    MySQL 5.5ではcmakeを使うみたいなので入れる。
  3. ソースのダウンロード
  4. $ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/
    $ tar zxvf mysql-5.5.28.tar.gz
    
    ソースコードの取得方法
    1. http://dev.mysql.com/downloads/mysql/#downloads に飛ぶ。
    2. Select Platform で「Source Code」を選択する。
    3. Generic Linux (Architecture Independent), Compressed TAR Archive のDownload をクリックする。
    4. 「No thanks, just start my download!」をクリックする。

  5. cmakeの設定
  6. $ cd mysql-5.5.28
    $ sudo cmake \
    . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_unicode_ci
    
    文字コードと照合順序は各自設定する。 パッケージが足りない等で失敗したら、yum で必要なパッケージをインストールし、CMakeCache.txt を削除してからやり直す。 エラー内容をググれば、何をインストールすれば良いかは大抵分かる。
  7. MySQLのインストール
  8. $ sudo make
    $ sudo make install
    
    上手く通ればインストールが完了する。 次から設定に入る。
  9. グループとユーザの作成
  10. $ sudo groupadd mysql
    $ sudo useradd mysql -M -g mysql -s /sbin/nologin
    
    mysqlグループ を作成し、mysqlユーザを追加する。 mysqlユーザはMySQL専用ユーザなので、ログインできないように -s /sbin/nologin を付ける。 useradd に-M オプションを付けると、ホームディレクトリを作成しないでユーザを追加してくれる。
  11. データベースの初期化
  12. $ sudo /usr/local/mysql/scripts/mysql_install_db \
    --basedir=/usr/local/mysql \
    --datadir=/usr/local/mysql/data \
    --user=mysql
    
    Installing MySQL system tables...
    OK
    Filling help tables...
    OK
    
  13. 権限書き換え
  14. $ sudo chown -R mysql:mysql /usr/local/mysql
    
  15. my.cnf の設定
  16. $ sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
    
    どのファイルをコピーするかは以下のURLで確認する 参考URL: http://okdtsk.hateblo.jp/entry/20111219/1324249008 http://ta2blog.air-nifty.com/seclusion/2006/06/linuxcpu_cb54.html
    $ sudo vim /etc/my.cnf
    
    my.cnf で文字コードを設定する。
    [client]
    default-character-set=utf8
    
    [mysqld]
    character-set-server=utf8
    
  17. 起動スクリプト作成
  18. $ sudo cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
    $ sudo chmod +x /etc/rc.d/init.d/mysqld 
    $ sudo chkconfig --add mysqld
    $ sudo chkconfig mysqld on
    $ chkconfig mysqld
    $ chkconfig --list mysqld
    
    mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
    
  19. 起動確認
  20. $ sudo /etc/rc.d/init.d/mysqld start
    Starting MySQL...                                          [  OK  ]
    
  21. パスを通す
  22. MySQLの実行ファイルが/usr/local/mysqlにあるのでそのままでは実行できないため、/usr/binにシンボリックリンクを張る
    $ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    $ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
    $ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
    
    主に使うmysql, mysqladmin, mysqldump コマンドにシンボリックリンクを貼った。 他に使うコマンドがあれば随時リンクを貼っていく。
    $ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    $ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
    $ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
    
    追記(2013年6月7日) コマンドのシンボリックリンクを貼らずに、/usr/local/mysql/bin をパスに通す方が楽。
    $ sudo vim /etc/profile
    
    最終行に以下を追記
    PATH=$PATH:/usr/local/mysql/bin
    export PATH
    
    $ source /etc/profile
    
    他ユーザも使うことを想定して、/etc/profile に記述している。 (追記終わり)
  23. rootパスワードの設定
  24. $ mysqladmin -u root password "パスワード"
    
    rootでログインできるか確認する。
    $ mysql -u root -p
    Enter password: 【rootパスワード入力】
    

これでひと通り設定が完了した。 ユーザの追加やデータベースの作成は後ほど。

参考URL: http://d.hatena.ne.jp/hekyou/20110905/p1 http://blog.77jp.net/mysql-5-5-9-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-linux-cmake http://ratememo.blog17.fc2.com/blog-entry-761.html