Dell Optiplex GXa |
SolarisTM 9 x86 9/04 |
Mysql-4.0.22
必要なソフトウェア:
gccのバージョンダウン:
gccの現時点のSolaris-9用の最新パッケージである3.4.1では、Mysql-4.0.22のmakeがうまく動かなかった。
解凍展開したソースディレクトリのINSTALL-SOURCEを見ると、Sun Solaris の x86 版はSolaris8の記述のみで
Solaris9については触れられていない。Solaris8 x86の場合のgccは3.2.3を使用するように書かれているので、
Solaris9用のgcc-3.2.3で実際に進めてみるとやはりmakeで引っ掛かってしまう。
そこで、このSolaris9 x86に Solaris8 x86用の gcc-2.95.3をインストールして作業を行った。(問題なく動いた)
インストールされいるパッケージのgccを調査する。
# pkginfo | grep gcc
application SMCgcc gcc
application SMClibgcc libgcc
インストールされているgccを削除する。
# pkgrm SMCgcc
# pkgrm SMClibgcc
Solaris8のgcc-2.95.3と、libgcc-3.0をダウンロードする。
# cd /opt/pkg
# wget http://sunsite.sut.ac.jp/pub/sun-info/Solaris/intel/8/gcc-2.95.3-sol8-intel-local.gz
# wget http://sunsite.sut.ac.jp/pub/sun-info/Solaris/intel/8/libgcc-3.0-sol8-intel-local.gz
ダウンロードしたパッケージを解凍する。
# gunzip gcc-2.95.3-sol8-intel-local.gz
# gunzip libgcc-3.0-sol8-intel-local.gz
インストールする。
# pkgadd -d ./gcc-2.95.3-sol8-intel-local
# pkgadd -d ./libgcc-3.0-sol8-intel-local
OpenSSL:
OpenSSLはソースからデフォルトインストールしているので、/usr/local/ssl/内に入っている。
このままでは、mysqlのconfigure時に--with-opensslを指定していてもうまく認識されない。
そのため、/usr/の直下に/usr/local/sslのシンボリックリンクを張っておく。
# cd /usr/
# ln -s /usr/local/ssl ./
また、後述のconfigure時に --with-openssl-includes=/usr/local/ssl/include を明示的に指定しているにも
かかわらず、make中に
"../include/my_global.h:1174: openssl/opensslv.h: No such file or directory"
というエラーでコンパイルが止まってしまう現象に遭遇した。そのため、以下の対処で回避することにした。
# cd /usr/local/include/
cp -r /usr/local/ssl/include/openssl ./
インストール:
作業ディレクトリを作成する。
$ mkdir /opt/src/mysql-4.0.22
作成した作業ディレクトリに移動する。
$ cd /opt/src/mysql-4.0.22
アーカイブをダウンロードする。
$ wget http://www.softagency.co.jp/MySQL/Downloads/MySQL-4.0/mysql-4.0.22.tar.gz
解凍展開する。
$ tar xozf mysql-4.0.22.tar.gz
展開されたディレクトリに移動する。
最適化スクリプトを実行する。 (※ LDFLAGSを定義してしまうと、後のmakeが通らなくなったので定義しない)
$ CC=gcc
CFLAGS="-O3 -fno-omit-frame-pointer"
CXX=gcc
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--libexecdir=/usr/local/mysql/bin \
--with-extra-charsets=complex \
--enable-thread-safe-client \
--enable-local-infile \
--enable-shared=yes \
--with-innodb \
--with-charset=ujis \
--with-extra-charsets=all \
--with-mysqld-user=mysql \
--with-raid \
--with-openssl \
--with-openssl-includes=/usr/local/ssl/include \
--with-openssl-libs=/usr/local/ssl/lib \
--with-libwrap=/usr/local/lib/libwrap.a \
| tee configure001.log
コンパイルする。
SuperUseになる。
インストールする。
# make install | tee make_install001.log
設定から起動:
データディレクトリを作成する。
# mkdir /usr/local/mysql/data
DBをインストールする。
# /usr/local/mysql/bin/mysql_install_db
Preparing db table
Preparing host table
Preparing user table
Preparing func table
Preparing tables_priv table
Preparing columns_priv table
Installing all prepared tables
031230 16:36:01 /usr/local/mysql/bin/mysqld: Shutdown Complete
To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h ns1 password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests
Please report any problems with the /usr/local/mysql/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com
mysql グループを作成する。
mysql ユーザーを作成する。
# useradd -d /usr/local/mysql -g mysql -s /bin/false mysql
mysqlディレクトリのユーザーを変更する。
# chown -R mysql:mysql /usr/local/mysql
設定ファイルの見本をコピーする。
# cp /opt/src/mysql-4.0.22/mysql-4.0.22/support-files/my-medium.cnf /etc/my.cnf
起動スクリプトをコピーする。
# cp /opt/src/mysql-4.0.22/mysql-4.0.22/support-files/mysql.server /etc/init.d/
コピーした起動スクリプトに実行権限を与える。
# chmod u+x /etc/init.d/mysql.server
ディレクトリを移動する。
OS起動時に自動起動するように、起動スクリプトのシンボリックリンクを作成する。
# ln -s ../init.d/mysql.server ./S99mysql.server
起動させる。
# /etc/rc2.d/S99mysql.server start