VMWare Fusionで遊んでみる(MySQLソースインストール編)

VMWare Fusionで遊んでみる(MySQLソースインストール編)

2012.07.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今まではCentOSがメインで仮想OSを作ることが多かったんですが、現在はUbuntuの流れっぽいので、慣れてないのになれるべくUbuntuの最新バージョンを入れてみる。

  1. VMWare Fusion上にUbuntu 12.04 LTSをインストールする
  2. apache2のパッケージインストール
  3. MySQL5.5.24のインストール
  4. MySQLのmy.cnfの設定

まずはUbuntu 12.04 LTSのisoファイルをダウンロードします。その後、VMWare Fusionの仮想マシンライブラリを立ち上げて新規作成をクリックしてUbuntu12.04の仮想OSをインストールします。

無事仮想OSのインストールが終わったらまずはubuntuのアップデートがあるので、それを先に処理してしまいましょう。

では仮想のubuntuを起動して、早速Apache2からインストールします。

			
			
$ sudo apt-get install apache2

		

まずはMySQLのソースダウンロードから

			
			
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.24.tar.gz/from/http://mysql.ntu.edu.tw/

		

ダウンロードのファイル名がindex.htmlになっていたらのでリネームしました。

			
			
$ mv index.html mysql-5.5.24.tar.gz
$ tar xvfz mysql-5.5.24.tar.gz

		

ソースからインストールするのでcmakeを入れます。

			
			
$ sudo apt-get install cmake
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
$ sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=true -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=ON

		

するとエラーが出ましたので、メッセージの通りCMakeCache.txtを削除して、libncurses5-devをいれます。

			
			
$ sudo rm -rf CMakeCache.txt
$ sudo apt-get install libncurses5-dev

		

再度cmakeを実行してみます。

が、またエラーです。。。 bisonがいるっぽい

			
			
$ sudo apt-get install bison

		

で、再度cmakeするが、またまたエラーが。。。

CMake Error at /usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:37

もうあいかわらず面倒なんだから。。。

			
			
$ sudo apt-get install -y g++ libncursesw5-dev sysv-rc-conf

		

で依存パッケージを入れて再々度のcmakeでようやくエラーなく終了しました。 次はmakeです、、、エラーなくいくでしょうか。。。

			
			
$ sudo make

		

エラーなく完了♩ 次はソースからインストールする場合はpacoを入れておくと便利っぽいので入れておきます。

			
			
$ sudo apt-get install -y paco

		

これを入れておけば、下記のように普通にmakeインストールと同様の処理を行うことができます。

			
			
$ sudo paco -D make install

		

下記のようにコマンドをたたけば、アンインストールもできてしまうので便利。

			
			
$ sudo paco -r application_name

		

ではpacoを使ってインストール

			
			
$ sudo paco -D make install

		

Ubuntuなので

			
			
$ sudo sysv-rc-conf

		

で対話的に設定する。 次にディレクトリの所有権をmysqlユーザに設定する。

			
			
$ cd /usr/local/mysql/
$ sudo chown -R mysql .
$ sudo chgrp -R mysql .

		

binのシンボリックリンクを作成しておきます。

			
			
$ sudo ln -s /usr/local/mysql/bin/ /usr/local/bin/

		

ログファイルの前準備をしておきます。

			
			
$ sudo mkdir /var/log/mysql/
$ sudo touch /var/log/mysql/error.log
$ sudo touch /var/log/mysql/query.log
$ sudo touch /var/log/mysql/slow.log
$ sudo chown -R mysql. /var/log/mysql/

		

ソケットディレクトリの所有者設定

			
			
$ sudo chown -R mysql:mysql /var/run/mysqld

		

confファイルを用意する。

			
			
$ cd /usr/local/mysql
$ sudo cp support-files/my-large.cnf /etc/my.cnf
$ sudo vi /etc/my.cnf

		

mysqlのサービスが自動で立ち上がるように設定しておく

			
			
$ sudo cp support-files/mysql.server /etc/init.d/mysql.server
$ sudo sysv-rc-conf mysql.server on 
$ sudo chkconfig --add mysql.server 
$ sudo chkconfig --list mysql.server
mysql.server              0:off  1:off  2:on   3:on   4:on   5:on   6:off
$ sudo vi /etc/profile

		

/etc/profileに下の行を追加してmysqlのbinのパスを通します。

			
			
export PATH="$PATH:/usr/local/mysql/bin"

		

ファイルを読み込んでPATHを有効化する。

			
			
$ source /etc/profile

		

MySQL初期化スクリプトを実行

			
			
$ sudo ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

		

ディレクトリの所有権を戻す

			
			
$ sudo chown -R root:root ./
$ sudo chown -R mysql:mysql ./data

		

起動してみましょう。

			
			
$ sudo bin/mysqld_safe --user=mysql &

		

別のターミナルを開いてmysqlを起動してみると、、、

			
			
$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

		

となってエラーになった。。。

どうやら

			
			
[mysqld]
socket = /var/run/mysqld/mysqld.sock

		

として設定ファイルに記述しているのですが、[client]側も同様に記述しておかないとだめっぽいです。もしかするとclient側はsocket=/tmp/mysql.sockを見ているのかもしれません。なので[client]側に対して明示的に以下の行を追加してみました。

			
			
$ sudo vi /etc/my.cnf

		
			
			
[client]
socket = /var/run/mysqld/mysqld.sock

		

を追加して再度、mysqlを起動してみる。

			
			
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.24-log Source distribution

Copyright (c) 2000, 2011, 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>

		

無事起動できたようです。

では最後にrootにパスワードを設定しておきます

			
			
$ mysqladmin -u root password "任意のパスワード"

		

rootでログイン確認します。

			
			
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or ¥g.
Your MySQL connection id is 8
Server version: 5.5.12-log Source distribution
(省略)

		

匿名アカウントを削除しておきます。(mysqlには接続したままで)

			
			
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
Query OK, 1 row affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

		

文字コードを確認しておきます。(mysqlには接続したままで)

			
			
mysql> show variables like "char%";
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

mysql>

		

無事インストール完了です。お疲れさまでした。

この記事をシェアする

FacebookHatena blogX

関連記事