読者です 読者をやめる 読者になる 読者になる

(Debian squeeze) 公式パッケージ MySQL 5.5 のインストール

Debian squeeze に MySQL 公式パッケージの 5.5 系をインストールした際の作業メモです。
MySQL 用ユーザーやグループを作ってくれなかったり、mysql_install_db が失敗したりと意外と手数が必要でした。

公式パッケージのダウンロード

MySQL :: Download MySQL Community Server から Debian 用のパッケージをダウンロードします。
今回は、mysql-5.5.27-debian6.0-x86_64.deb をダウンロードしました。

ローカルリポジトリの作成

ダウンロードした MySQL パッケージのあるディレクトリで、apt-ftparchive コマンドを実行し、ローカルリポジトリを作成します。
/var/local/deb_pkg をローカルリポジトリ先としました。

$ cd /var/local/deb_pkg
$ sudo sh -c "apt-ftparchive packages . | gzip -c9 > Packages.gz"
$ sudo sh -c "apt-ftparchive sources . | gzip -c9 > Sources.gz"

/etc/apt/sources.list にローカルリポジトリ設定を追加します。

$ deb file:///var/local/deb_pkg/ ./
$ deb-src file:///var/local/deb_pkg/ ./

MySQL 用ユーザーとグループの作成

$ sudo groupadd -r mysql
$ sudo useradd -r -g mysql -d /opt/mysql/server-5.5 -s /bin/false mysql

MySQL のインストール

$ sudo aptitude update
$ sudo aptitude install mysql

MySQL の初期設定

/etc/my.cnf を準備して、mysql_install_db を実行します。
この時、/etc/mysql/my.cnf があると以下のようにエラーとなりますので、削除します。

FATAL ERROR: Could not find mysqld

The following directories were searched:

    /usr/libexec
    /usr/sbin
    /usr/bin

If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.

my.cnf はサンプルファイルを利用しました。

$ cd /opt/mysql/server-5.5
$ sudo cp -a ./support-files/my-large.cnf /etc/my.cnf
$ sudo rm -rf /etc/mysql
$ sudo ./scripts/mysql_install_db --user=mysql

MySQL の自動起動と諸々の設定

自動起動設定を行い、MySQL を起動します。

$ cd /opt/mysql/server-5.5
$ sudo cp ./support-files/mysql.server /etc/init.d/mysql
$ sudo chmod 755 /etc/init.d/mysql
$ sudo update-rc.d mysql defaults
$ sudo /etc/init.d/mysql start

.bashrc にパス設定をします。

export PATH=$PATH:/opt/mysql/server-5.5/bin

root のパスワード設定や不要なデータベースを削除します。

$ cd /opt/mysql/server-5.5
$ sudo ./bin/mysql_secure_installation


MySQL :: The world's most popular open source database