MySQLのインストール

データベースを管理するためのサーバは高価なものから無償のものまで幅広くある。Unix上で動作する無償のサーバで代表的なものが、MySQLとPostgreSQLである。今回はMySQLをLinux上にインストールする方法を紹介する。  PostgreSQLとMySQLはどちらもフリーで利用できる。機能性を比較してみると、PostgreSQLはかなり実用的であり、MySQLは比較的シンプルなアプリケーションである。それに伴ってMySQLはPostgreSQLよりも処理速度は速い。それほど高度なシステムを構築しないのであればMySQLでも充分である。  最近のLinuxではMySQLがインストールCDにパッケージングされていることもある。インストールされているバージョンが新しければそのまま使用してもよいが、ディレクトリ構成がわかりにくくなっているので充分確認をしてから使うことをお勧めする。

MySQL
DefaultPort : 3306(MYSQL)

1)「/usr/local/src/」以下でMySQLのアーカイブを解凍し、展開されたディレクトリへ移動してコンパイルを行う。インストール先は「/usr/local/mysql」以下を指定している。

# cd /usr/local/src/
# tar zxvf mysql-3.23.52.tar.gz
# cd mysql-3.23.52/
# ./configure --prefix=/usr/local/mysql --enable-local-infile \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--with-charset=ujis --with-low-memory
# make

(MySQLのソケットは通常/tmpに作成されるが、他人に勝手に削除されるのを防ぐためにここでは上記のようにパスを変更している。文字コードはここではujis(EUC)を指定しているが、Shift-JISにしたければsjisを指定する。  なおVer3.23.49からデフォルトでLOAD FILE LOCAL文が使用できなくなっている。もしphpMyAdminでCSVファイルのアップロード等を行う必要がある場合、上記のように「--with-local-infile」オプションをつけるか、mysqlコマンドで「--local-infile=1」というオプションをつけて実行することで有効になる。)

2)インストールを行った後、データベースを初期化する。また(1)で指定したソケットのパスが生成されるためのディレクトリを作る。作成後は読み書き権限を与える。

# make install
# scripts/mysql_install_db
# cd /usr/local/mysql/
# mkdir tmp/
# chmod 1777 tmp/

※MySQLを再インストールする場合は、コンパイルしてmake installを行うだけでよい。誤ってデータベースを初期化してしまわないように注意する。

3)MySQLの管理者ユーザとグループを作成し、必要に応じてログインパスワードを設定する。その後インストールディレクトリ以下の所有者をmysqlに変更。

# groupadd -g 75 mysql
# useradd -u 75 -g mysql -d /usr/local/mysql mysql
# passwd mysql
# chown -R mysql:mysql /usr/local/mysql/

4)MySQLを起動する。自動起動のスクリプトは、展開されたソース内のsupport-files/mysql.serverであり、このファイルに実行権限を与えて、「/etc/rc.d/init.d」の中に「mysqld」という名前でコピーする。その後chkconfigコマンドで自動起動ができる。この場合/etcディレクトリ下にmy.cnfという設定ファイルをコピーする必要がある。この設定ファイルもsupport-filesディレクトリ下にあるので、自分の環境に適しているものをコピーすればよい。

# cp /usr/local/src/mysql-3.23.49/support-files/mysql.server \
/etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# cp /usr/local/src/mysql-3.23.49/support-files/my-medium.cnf \
/etc/my.cnf
# service mysqld start

とりあえずmysqlを動かすなら、以下のコマンドで起動することもできる。(自動起動スクリプト

# /usr/local/mysql/bin/safe_mysqld &

5)mysqlでよく使用する実行ファイルは、パスの通ったディレクトリへシンボリックリンクを張っておく(または「/usr/local/mysql/bin」へパスを通す)。その後、mysql管理者のパスワードを設定する。

# cd /usr/local/bin/
# ln -s /usr/local/mysql/bin/mysql mysql
# ln -s /usr/local/mysql/bin/mysqladmin mysqladmin
# ln -s /usr/local/mysql/bin/mysqldump mysqldump
# mysqladmin -u root password "****"
(****は設定するパスワード)

6)セキュリティの設定を行う。ここでは空ユーザ名および空パスワードのユーザからのアクセスを禁止している。この設定は必ずしも行う必要はないが、サーバを外部に公開するという場合はやっておいたほうがよい。

# mysql -u root -p
(この後パスワードを入力)
> USE mysql
> DELETE FROM db WHERE User = "";
> DELETE FROM user WHERE Password = "";
> FLUSH PRIVILEGES;
> exit;

7)mysqlを停止する場合は、以下のコマンドで停止する。

# /usr/local/mysql/bin/mysqladmin -u root -p shutdown (この後パスワードを入力)

phpMyAdmin

1)PHPのインストール後、Apacheのドキュメントルートにアーカイブを解凍する。

# cd /home/httpd/
# tar zxvf phpMyadmin-2.2.6-php.tar.gz
# mv phpMyAdmin-2.2.6 phpMyAdmin
# cd phpMyAdmin/

2)設定ファイルを書き換える。

# cp config.inc.php config.inc.php-dist
# vi config.inc.php
   $cfgPmaAbsoluteUri = 'http://ホスト名/phpmy/';
   $cfgServers[$i]['password'] = 'パスワード';
   $cfgDefaultLang = 'ja-euc';

※$cfgPmaAbsoluteUriは、phpMyAdminのインストールパス、実際にブラウザでアクセスさせるURLを記述する。ただしホスト名をlocalhostとしてはいけない。パスワードはmysqladminで設定したパスワードを設定する。表示を日本語EUCにしたい場合は$cfgDefaultLangに「ja-euc」を指定する。なおここで指定した表示形式は、$cfgPmaAbsoluteUriで指定したURL(のホスト名)でのみ適用される。

3)必要に応じて、Apacheのhttpd.confを修正し、Apacheをリスタートする。

# vi /usr/local/apache/conf/httpd.conf
Alias /phpmy/ "/home/httpd/phpMyAdmin/"
# service httpd restart

4)phpMyAdminは公開すると、誰でもデータベースを閲覧したり変更したりすることができてしまうため、.htaccessによるBasic認証をかけておくほうがよい。その後指定したURLで、指定した言語で、正しくphpMyAdminのページが見られることを確認する。

TOP OF PAGE