Linux-Java-Memo.com
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 エラー
Posted at 12:00午前 6 02, 2008 by pochi in DB |
メモ: MySQLのメンテナンス
稼働状況の調査
- mysqladmin [ping|status|extended-status]
- myisamchk データファイル.MYI
を実行して、エラーメッセージが表示された場合 - mysqldを停止させる。(必須)
- myisamchk -r 対象データファイル.MYI
- -rオプションで直らない場合、
- myisamchk -o 対象データファイル.MYI
- mysqldの再起動
参照: MySQLの高度な管理とチューニングテクニック(1/2)
Posted at 09:22午前 5 16, 2008 by pochi in DB |
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では、わりとすんなり動いたんだけどな。
Posted at 04:10午後 5 21, 2007 by pochi in DB |
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 日本語設定ガイド
Posted at 04:47午後 5 11, 2007 by pochi in DB |
MySQL: InnoDBのデータファイルを小さくするには
MysqlではInnoDBのデータファイルがどんどん大きくなってしまうらしい。MySQL 4.1では下記の方法でファイルサイズを小さくできるようだが、4.0だとDBごとインストールしなおすしかない? やっかいだな。
めんどうだが以下の手順で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
Posted at 09:38午後 4 11, 2007 by pochi in DB |
MySQL: InnoDBのデフラグメント
以下を実行することによりMySQLがInnoDBテーブルを再構築します。
ALTER TABLE tablename TYPE=InnoDB 参照: MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 7.5.13.3 InnoDB テーブルのデフラグメント化
Posted at 07:48午後 4 02, 2007 by pochi in DB |
MySQLでのsequence
MySQLだとsequenceが無いのでAUTO_INCREMENT属性を利用する。
AUTO_INCREMENTでは、次に採番される番号を取得できない。
last_insert_id()を利用して、同一セッションで最後に取得した番号を得る方法しかない。
そこで、テーブルを使ってsequenceをシミュレートする方法が、MySQLのリファレンスマニュアルに記載されていました。
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.3.6.2 その他の各種関数
Posted at 07:07午後 3 12, 2007 by pochi in DB |
MySQL の AUTO_INCREMENT の値をリセットする
ALTER TABLE table_name AUTO_INCREMENT=max_id_number
Posted at 05:58午後 3 12, 2007 by pochi in DB |
LVS
naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使うより。
LVSの話がいろいろ載っている。MySQLの負荷分散に良さそう。
| Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 | |
![]() | デージーネット 秀和システム 2005-11 売り上げランキング : 7103 おすすめ平均 ![]() ミッションクリティカルなサーバを構築するなら 構築から運用まで担当する方向け 高度だが説明はわかりやすいAmazonで詳しく見る by G-Tools |
Posted at 03:13午後 9 10, 2006 by pochi in DB |
超・極める!MySQL
なんか、強気の本です。
MySQL使いならまずこれを読め!堅牢なDB環境を手に入れるためのMySQL専門誌
MySQLを使うすべての人が疑問に思うこと、知りたいことを全部解決するために、業界随一の技術を持つ執筆陣の書き下ろし記事を集めて作りました。
この1冊で、他の本ではわからなかった“MySQLを操るツボ”を理解することができます。
とのこと。
| 超・極める!MySQL | |
![]() | 坂井 恵 志村 和彦 ひろせ まさあき 翔泳社 2006-10-04 売り上げランキング : Amazonで詳しく見る by G-Tools |
Posted at 04:56午後 9 08, 2006 by pochi in DB |
MySQL文字コードの扱い
my.confにdefault-character-set = ujisと設定するのだが、MySQL 4.0 → 4.1で設定が微妙に異なる。
Posted at 02:45午後 8 08, 2006 by pochi in DB | 投稿されたコメント[0]
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 | | +-----------+---------------+------+-----+---------+----------------+
とやっても、過去日も含め全部表示されてしまった。MySQLの場合、select * from table where timestamp >= 'today';
としないとダメでした。(MySQL 4.0)select * from table where timestamp >= current_date();
MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数
MySQL 4.1 リファレンスマニュアル :: 6.1.7 MySQL での予約語の扱い
Posted at 12:00午後 7 27, 2006 by pochi in DB | 投稿されたコメント[0]
PostgresがSQLインジェクション脆弱性を修正
【PostgreSQLウォッチ】第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響
PostgreSQL 7.2以前のバージョンは修正されないとか。Debian Woodyのパッケージは? ...なんて古いのはもう修正されないでしょうね。
Posted at 11:54午前 5 30, 2006 by pochi in DB | 投稿されたコメント[0]
MySQL5構築ガイド
秀和システム (2006/04)
Posted at 11:48午前 4 12, 2006 by pochi in DB | 投稿されたコメント[0]


ミッションクリティカルなサーバを構築するなら
構築から運用まで担当する方向け

