Fedora Core 4 データーベース


前書き

データベース(以下DB)は主にMySQLとPostgreSQLがあります。
私は、Webコンテンツの作成を仕事でやっている関係で両DBをインストールしています。
自分の用途にあったDBをインストールしてください。

MySQLのインストール

まずはMySQL用のアカウントとグループを設定

グループ "mysql" の登録

# /usr/sbin/groupadd mysql

ユーザーアカウント "mysql" の登録

# /usr/sbin/useradd -g mysql mysql

ソースファイルを MySQL公式 から入手
執筆時点で最新版(4.1系列)は4.1.15になります。
Windowsなど他のPCでダウンロードしてFTPを使ってアップなど行なってください。

入手したソースファイルを展開します。

$ tar zxf mysql-4.1.15.tar.gz

コンフィグとmake(コンパイル)をして、インストールします。
ここは各自の環境に合わせてオプションを設定してください。
ここでは、標準的なオプションのみを指定しています。
(参照:公式 一般的な configure オプション)

$ cd mysql-4.1.15
$ ./configure --with-charset=ujis \
--with-extra-charsets=all \
--with-mysqld-user=mysql \
--prefix=/usr/local/mysql
MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.

Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.

Thank you for choosing MySQL!

これが表示されればOKです。
特にエラーもなく終了したらmakeします。

$ make

rootに昇格してインストール。

$ su
password:

#make install

インストールしたMySQLを初期化します。

# /usr/local/mysql/bin/mysql_install_db --user=mysql
# chown -R mysql /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# mkdir /var/run/mysqld
# chown mysql.mysql /var/run/mysqld
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
# /usr/local/mysql/bin/mysqladmin -u root password xxxxxxx

※xxxxxxxは任意のパスワードを入力

自動起動設定

/usr/local/mysql/share/mysql のディレクトリに起動スクリプトが用意されているので、これを /etc/rc.d/init.d にコピーします。

# cd /usr/local/mysql/share/mysql
# cp mysql.server mysql
# chmod 755 mysql
# mv mysql /etc/rc.d/init.d

各起動レベルへシンボリックリンクを貼ります。

# cd /etc/rc.d/rc0.d/
# ln -s ../init.d/mysql K13mysql
# cd ../rc3.d/
# ln -s ../init.d/mysql S90mysql
# cd ../rc5.d/
# ln -s ../init.d/mysql S90mysql

現在、MySQLを実行中なら上記記載のコマンドで停止させて、自動起動設定ができているか確認します。

# /etc/rc.dini.d/mysql start

ここでアクセスできない・・などのエラーが出る場合、パーミッションを確認してください。
/usr/local/mysqlに対して x の実行パーミッションが立っていますか?
立っていない場合、下記のコマンドでフォルダに対してパーミッションを設定します。

# chmod 755 /usr/local/mysql

XOOPS対応化

XOOPSに対応させるための追加処理です。
MySQL 4.1系では、パスワードハッシュアルゴリズムに基づく認証プロトコルが使用されていますが、これは旧クライアントが使用しているものと互換性がありません。
サーバを 4.1 にアップグレードすると、旧クライアントで接続しようとした場合に、以下のエラーメッセージが発生する可能性があります。

shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client

以下のいずれかを行ってください。

  • 全クライアントプログラムをアップグレードして、4.1.1 以降のクライアントライブラリを使用するようにする。
  • 4.1 より前のクライアントから接続する場合は、旧パスワードでユーザアカウントを使用する。
  • 4.1 より前のクライアントを必要とするユーザをリセットし、旧パスワードを使用するようにする。
    mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
        -> WHERE Host = 'some_host' AND User = 'some_user';
    mysql> FLUSH PRIVILEGES;
  • サーバが旧パスワードハッシュアルゴリズムを使用するように指定する。
    • --old-passwords を指定して mysqld を開始する。
    • ロングパスワードを持っているユーザすべてのパスワードを設定する。これらのユーザは、以下で調べることができる。
      SELECT * FROM mysql.user WHERE LEN(password) > 16;

File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2) について

MySQLを運用始めるとapacheのエラーログに File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2) というエラーが吐き出される場合があります。
これはPHPのデフォルト設定では、MySQLのinclude・libディレクトリを
/mysql/include
/mysql/lib
にあると認識してしまい、実際にインストールした環境と異なるために起こるようです。
MySQLを /usr/lib/mysql にインストールした方は、

# cd /usr/local/mysql
# ln -s /usr/include/mysql/ include
# ln -s /usr/lib/mysql/ lib

を実行してから、PHPのconfigure時に

--with-mysql=/usr/local/mysql 

を追加してみてください。



Last-modified: 2015-04-23 (木) 15:17:33 (1332d)