Vine-3.2 から、Vine-4.0 にアップグレードしたとき...
MySQL が起動しない...メモ
2006/12/2
H.Suzuki <setter at i-red dot info>
#ちなみに、私は、MySQL-Max 使ってました。
### 注 ### 整理されてない文章です。
BACK
DB サーバなので、DB のバックアップはとってあるという前提です...
# 私の場合、ディレクトリベースのバックアップしかとってなかったりして...(^^;
apt で Vine-3.2 を Vine-4.0 に
アップグレード!
しかし...
MySQL が立ち上がりません
(;;)Coppermine Photo Gallery や、xoops が動きません(;;)
しかたないので、一度、Vine-3.2 の MySQL-4.x に戻すことに...
# /etc/rc.d/init.d/mysql stop # 一応
# apt-get remove MySQL-Max
# apt-get remove php-mysql
などで、MySQL 関連を全て削除。
バックアップを復元。
# cd /var/lib
# rm -rf mysql
# tar -zxvf mysql-bkup.tar.gz
FTP で、Vine-3.2 の MySQL* と、php-mysql の rpm を拾ってくる。
# rpm -ivh MySQL*
# rpm -ivh php-mysql // 一応。
php-mysql を アップグレード。
# apt-get install php-mysql
このとき、MySQL-shared もアップグレードされる。
MySQL をアップデート対象から外しておく。
RPM
{
Hold
{
"^MySQL"; これを追加。
}
}
データベースをチェック・修正。
# mysqlcheck -uroot -r -A
で、
これで、Vine-4.0 で MySQL4.x が動くようになり、アプリも動くようになった。
ふぅ...
...で、後日もう一度アップデート。
まず、MySQL 4 でデータベースをダンプ。
$ mysqldump \
-uroot \
-hlocalhost \
--all-databases \
--opt \
--allow-keywords \
--flush-logs \
--hex-blob \
--master-data \
--max_allowed_packet=16M \
--quote-names \
--result-file=mysql4-bkup.SQL
あら、root のパスワードがない(^^;;;;;;
既に書いてありますけど、やってなかったら、ダンプできなかったので、
# mysqlcheck -uroot -r -A
を実行。-> ダンプ成功。
恐いので、念のため。
# /etc/rc.d/init.d/mysql stop
# cd /var/lib
# tar -zcf mysql20061202.tar.gz mysql
MySQL 5 を入れる前に、既存データベースを削除
apt のアップデート対象を復元。
# vi /etc/apt/apt.conf
RPM
{
Hold
{
"^MySQL"; これを削除。
}
}
MySQL を 4 -> 5 にアップグレード。
# apt-get update; apt-get upgrade
MySQL 5 が立ち上がっているはず。
ダンプしてあるデータをインポートしました。
で、xoops を開いたら、おばけの行進(;;)
何回か、MySQL 4 <-> 5 行ったり来たりするはめに...
ML のアドバイスやら、ググりまくりで、なんとかこぎ着けた。
/etc/my.cnf に
default-character-set = ujis
skip-character-set-client-handshake
などを追加(実際に使っている my.cnf は最後に)。
そして、
# /etc/rc.d/init.d/mysql stop
# /etc/rc.d/init.d/mysql start
MySQL 5 が起動しているはず。
起動していない場合、ログファイル
をチェック。
やっと、データをインポート。
# mysql -u root < mysql4-bkup.SQL
ERROR 1067 (42000) at line 1614: Invalid default value for 'title_indication'
げっ、エラー...(;;)
負けるものか...と、ググったら...近い症状が見付かった!
該当行の、default '' や、default '0' を削除
# mysql -u root < mysql4-bkup.SQL
よし、これでオッケーだろう!
ログインできない...orz
権限テーブルを修正する必要があるそうだ。
# mysql_fix_privilege_tables
おしまい(^^)。
####### Content of /etc/my.cnf #######
[client]
#password = your_password // B< You MUST set Password !!!
port = 3306
socket = /var/lib/mysql/mysql.sock
set-variable = default-character-set=ujis << 追加
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=8M
set-variable = long_query_time=1
# log-bin
server-id = 1
set-variable = default-character-set=ujis << 追加
skip-character-set-client-handshake << 追加
[mysqldump]
quick
set-variable = max_allowed_packet=16M
set-variable = default-character-set=ujis << 追加
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
set-variable = default-character-set=ujis << 追加
[isamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[mysqlhotcopy]
interactive-timeout
|
|
DB の状態。
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
|
->