*目次 [#tdd3341a]
#contents

*準備 [#p29ba481]
-mysqlユーザを作成
 # /usr/sbin/useradd -d /usr/local/mysql mysql
 # chmod 755 /usr/local/mysql/


*インストール [#p5af8c48]

ソースダウンロード先~
http://dev.mysql.com/downloads/mysql/?rz=gdl#downloads

参照~
:SmartSmart|[[http://www.rfs.jp/sb/perl/08/10.html]]

-作業用ディレクトリを作成
 # mkdir /usr/local/src/mysql-5.0.45
 # chown mysql.mysql mysql-5.0.45

-解凍
 # su mysql
 $ tar xvzf mysql-5.0.45.tar.gz

-コンパイル
 $ cd mysql-5.0.45
 $ ./configure \
   --prefix=/usr/local/mysql \
   --with-charset=ujis \
   --with-extra-charset=all \
   --with-mysqld-user=mysql \
   --with-innodb
 $ make

-インストール
 $ su
 # make install

-データベースの初期化
 # /usr/local/mysql/bin/mysql_install_db


*設定 [#x4a4be2b]

**自動起動の設定 [#d1e405d3]

-起動スクリプトをコピー
 # cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
:起動|
 # /etc/rc.d/init.d/mysql start
:停止|
 # /etc/rc.d/init.d/mysql stop
-自動起動に追加
 # /sbin/chkconfig --add mysql

**パスの設定 [#s516e782]
ユーザmysqlにmysqlコマンド群へのパスを通す

 # su mysql
 $ vi ~/.bashrc

下記を追記
 PATH="$PATH":/usr/local/mysql/bin

設定の反映
 $ source ~/.bashrc


*はまった事 [#id410e9c]

phpのモジュールとして組み込む場合、configureに--with-mysql=/usr/local/mysqlオプションをつけるが、~
Cannot find MySQL header files under~
とエラーがでる。

どうやら~
/usr/local/mysql/include/mysql~
にあるヘッダーファイルを読み込めていないらしい。

 $ ln -s /usr/local/mysql/include/mysql /usr/local/include/mysql
と、/usr/local/include/にシンボリックリンクを張ることで解決するのがスマートかと。

*RPMでのインストール [#x81570ed]

 # yum install mysql mysql-devel mysql-server
 # /etc/rc.d/init.d/mysqld start

自動起動の追加

 # /sbin/chkconfig --add mysqld
 # /sbin/chkconfig mysqld on
 # /sbin/chkconfig --list mysqld

PHPから使用する場合、socketの指定

 # vi /usr/local/lib/php.ini
 mysql.default_socket = /var/lib/mysql/mysql.sock

ssh経由でデータを閲覧した際に文字化けする場合

 # vi /etc/my.cnf

 [client]
 default-character-set=utf8

追加してMySQLを再起動してみる。

*CentOS6系でMySQL5.7を使用する [#c5d0e354]

 # rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
 # yum info mysql-community-server
 # yum install mysql-community-server
 # mysql --version

起動して立ち上がらなく、以下のようなエラーが /var/log/mysqld.log ファイルに残っている場合、

 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!

3ファイルを削除します。~
ib_logfile0, ib_logfile1, ibdata1

 # rm -f /var/lib/mysql/ib*

すると以下のエラーが発生し、MySQLが起動しなくなります。

 Fatal error: mysql.user table is damaged. Please run mysql_upgrade.

セーフモードで起動します。

 # mysqld_safe --skip-grant-tables &

別の画面から mysql_upgrade を実行します。

 # mysql_upgrade -u root

停止します。

 # /etc/rc.d/init.d/mysqld stop

また my.cnf に以下の設定があるとエラーになるので、書き換えます。

 [mysqld]
 #default-character-set=utf8 # エラーになる
 character-set-server=utf8


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS