Linux-Java-Memo.com

月曜日 6 02, 2008

MySQL4.1以前のクライアントから4.1移行のサーバにアクセスする時

エラーメッセージが発生してアクセス出来ない場合がある。

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

サーバ側で旧パスワードでのアクセスを許可する方法を用いて対処。

    mysql> UPDATE user SET Password = OLD_PASSWORD('mypass') WHERE Host = 'some_host' AND User = 'some_user';
    mysql> FLUSH PRIVILEGES;

参照: MySQL :: MySQL 4.1 リファレンスマニュアル :: A.2.4 Client does not support authentication protocol エラー

金曜日 5 16, 2008

メモ: MySQLのメンテナンス


稼働状況の調査

  • mysqladmin [ping|status|extended-status]
MyISAMテーブルの修復
  • myisamchk データファイル.MYI
    を実行して、エラーメッセージが表示された場合
  • mysqldを停止させる。(必須)
  • myisamchk -r 対象データファイル.MYI
  • -rオプションで直らない場合、
  • myisamchk -o 対象データファイル.MYI
  • mysqldの再起動

参照: MySQLの高度な管理とチューニングテクニック(1/2)

月曜日 5 21, 2007

MySQL4.1でJDBC接続できない



debian sargeのMySQL4.1に、Java 1.4でJDBC接続を試みているのだがうまく動かない。エラーの内容は、

Illegal mix of collations (ujis_bin,IMPLICIT) and (ujis_japanese_ci,IMPLICIT)...
というもので、Java側とMySQL側で文字コードに違いがあるようだ。my.cnfのdefault-character-setやJDBC接続オプションのuseUnicode,characterEncodingをいろいろいじってみたのだが、結局解決方法が見つからなかった。

etchのMySQL5.0では、わりとすんなり動いたんだけどな。


金曜日 5 11, 2007

MySQL5.0での日本語処理での注意事項



MySQL4.0→5.0に移行した際、javaから日本語カラムが扱えなくなった。以下のようなことが関係あるようだが...

  • ujisよりeucjpmsを利用すべき?
  • カラムに日本語を使う場合の注意事項
    CREATE TABLE文中で指定する。
    CREATE TABLE hoge ... CHARACTER SET eucjpms;

  • いろいろやってみたがうまくいかず、結局、JDBCドライバの設定で、
    characterEncoding=UTF-8
    で指定したところうまく動いた様子。なぜUTF-8?

MySQL 5.0 日本語設定ガイド

水曜日 4 11, 2007

MySQL: InnoDBのデータファイルを小さくするには



MysqlではInnoDBのデータファイルがどんどん大きくなってしまうらしい。MySQL 4.1では下記の方法でファイルサイズを小さくできるようだが、4.0だとDBごとインストールしなおすしかない? やっかいだな。

2007.04.12 追記
めんどうだが以下の手順でInnoDBデータファイルを作り直すことにより縮小化出来た。
  • 全データベースのバックアップ
    mysqldump -A -a -e -F -q -u root -p --add-drop-table > mydb.dump
  • InnoDBを使用しているテーブルもしくはデータベースを削除する。
    drop database .. or drop table ...
  • mysqlサーバをシャットダウン
  • my.cnfのinnodb_data_file_pathを追記もしくは書き換えて、違うデータファイル名にする。
    innodb_data_file_path = ibdata2:100M:autoextend
  • mysqlデータディレクトリの、ib_logfile? を削除もしくはリネームする。
  • mysqlを起動
  • ダンプファイルをリストアする。
    mysql < mydb.dump


月曜日 4 02, 2007

MySQL: InnoDBのデフラグメント



以下を実行することによりMySQLがInnoDBテーブルを再構築します。

ALTER TABLE tablename TYPE=InnoDB


参照: MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 7.5.13.3 InnoDB テーブルのデフラグメント化


月曜日 3 12, 2007

MySQLでのsequence



MySQLだとsequenceが無いのでAUTO_INCREMENT属性を利用する。
AUTO_INCREMENTでは、次に採番される番号を取得できない。
last_insert_id()を利用して、同一セッションで最後に取得した番号を得る方法しかない。

そこで、テーブルを使ってsequenceをシミュレートする方法が、MySQLのリファレンスマニュアルに記載されていました。

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.3.6.2 その他の各種関数

MySQL の AUTO_INCREMENT の値をリセットする



ALTER TABLE table_name AUTO_INCREMENT=max_id_number


日曜日 9 10, 2006

LVS


naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使うより。

LVSの話がいろいろ載っている。MySQLの負荷分散に良さそう。

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編デージーネット

秀和システム 2005-11
売り上げランキング : 7103

おすすめ平均 star
starミッションクリティカルなサーバを構築するなら
star構築から運用まで担当する方向け
star高度だが説明はわかりやすい

Amazonで詳しく見る
by G-Tools


金曜日 9 08, 2006

超・極める!MySQL


なんか、強気の本です。

MySQL使いならまずこれを読め!堅牢なDB環境を手に入れるためのMySQL専門誌
MySQLを使うすべての人が疑問に思うこと、知りたいことを全部解決するために、業界随一の技術を持つ執筆陣の書き下ろし記事を集めて作りました。
この1冊で、他の本ではわからなかった“MySQLを操るツボ”を理解することができます。

とのこと。
超・極める!MySQL
超・極める!MySQL坂井 恵 志村 和彦 ひろせ まさあき

翔泳社 2006-10-04
売り上げランキング :


Amazonで詳しく見る
by G-Tools

火曜日 8 08, 2006

MySQL文字コードの扱い

my.confにdefault-character-set = ujisと設定するのだが、MySQL 4.0 → 4.1で設定が微妙に異なる。

 MySQL各種Tips

木曜日 7 27, 2006

MySQL: 現在時刻などの取得

Postgresだと'today'や'now'などが使える。MySQLでも同じように使えると思っていたのだが、'today'など期待したとおりに動いてくれない場合がある。よく調べてないのだが、型が異なるとダメ?

+-----------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------+------+-----+---------+----------------+ | id | int(11) | | PRI | NULL | auto_increment | | name | varchar(255) | | | | | | timestamp | timestamp(14) | YES | | NULL | | +-----------+---------------+------+-----+---------+----------------+
こういうので、
select * from table where timestamp >= 'today';
とやっても、過去日も含め全部表示されてしまった。MySQLの場合、
select * from table where timestamp >= current_date();
としないとダメでした。(MySQL 4.0)

MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数
MySQL 4.1 リファレンスマニュアル :: 6.1.7 MySQL での予約語の扱い

火曜日 5 30, 2006

PostgresがSQLインジェクション脆弱性を修正

【PostgreSQLウォッチ】第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響

PostgreSQL 7.2以前のバージョンは修正されないとか。Debian Woodyのパッケージは? ...なんて古いのはもう修正されないでしょうね。

木曜日 4 27, 2006

データベース設計の本

楽々ERDレッスン
楽々ERDレッスン
posted with amazlet on 06.04.27
(株)スターロジック 羽生 章洋
翔泳社 (2006/04/18)

水曜日 4 12, 2006

MySQL5構築ガイド

MySQL5構築ガイド?Open Source High Speed Database
堀江 美彦
秀和システム (2006/04)

Calendar

tags

Feeds

Search

Links