ホーム > MySQL

MySQLのアーカイブ

MySQL5.5.16の起動エラーとyum update

管理しているサーバのMySQLが停止して監視システムからのメールが届き始めた。
思い当たることがなく慌ててサーバに接続して確認してみたが、メモリーが不足したり、アクセスが過大になったような形跡はなかった。MySQLを再起動してみても失敗と表示されるだけで起動できない。何度か試行錯誤しているうちに原因がyumの自動アップデートではないかと思い当たった。MySQLの起動時のメッセージか2点を修正すれば動作すると予測した。

エラーメッセージの原因は以下の2点。
1. MySQL5.5.16では、利用できないオプション名をmy.cnfで使っている
2. データ側のアップグレードが必要

項目1は、エラーメッセージに従い下記のように修正した。

default-character-set=utf8
↓↓↓
character-set-server=utf8

record_buffer
↓↓↓
read_buffer_size

その他、詳細はこのページで確認できます。
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html

mysql_upgrade -p

mysqlのrootのパスワードで実行すると正しくチェックを行いエラーは表示されなくなった。

この方法で複数台を修正した。
最後に1台だけyumのアップデートが途中で停止するサーバがあった。
管理しているサーバの中では一番古いので、ファイル構成などが違っているようだ。
エラーの出るレポジトリが存在していたので、正常なサーバと見比べて不要だと確認してファイルを削除した。
その後、以下のコマンドを実行して

yum clean all
yum repolist

yum -y update

アップデートすると、更新されていなかった208ファイルをダウンロードして更新できた。

Plesk MySQLへ管理者権限で接続

  • 2010/8/28 土曜日 22:49:08
  • MySQL | VPS

使えるネットのVPSで使用されているMySQLに管理者権限でアクセスしたい思ったが、パスワードがわからず困っていた。探してみるとこのパスワードでアクセスできた。

cat /etc/psa/.psa.shadow

sshで接続してこれを実行すると確認できる。
下記のようにしてMySQLに管理者権限でアクセスできた。

mysql -uadmin -p`cat /etc/psa/.psa.shadow`

osCommerceを軽快に2 テーブル分割

注文管理関連のテーブルは、何年もサイトを運営していると何十万件というデータが保存されることになる。1つのテーブルに大量のデータが保管されると、新規データの登録時に時間がかかる。そこで、テーブルを分割するというアイデアが浮かんでくるが、テーブルの分割をプログラム側で対応すると、手間がかかりすぎるし、切り替え時にサーバを止めるタイミングも難しい。

実は、MySQLにはこのような状況に対応するためのMERGEテーブルというものがある。データが多くなったらMERGEテーブルとUNIONで既存のテーブルと新規のテーブルを1つのテーブルとして扱うようにすればいい。検索を実行するときは新旧テーブル全体を対象にして、データを登録するときは新しいテーブルを対象にできるなど、非常に都合がいい。テーブルの作り方を工夫すると連番も前のテーブルを自動的に引き継ぐのでさらに安心だ。

お客様のサーバで複数のテーブルを分割したが、osCommerceを稼働させたまま瞬時に作業を終わることができた。
ただし、準備に時間はかかった。

http://dev.mysql.com/doc/refman/4.1/ja/merge.html

ホーム > MySQL

Page 1 of 3123
フィード
メタ情報

ページの上部に戻る