MySQL

Mysql::Error Got a packet bigger than max_allowed_packet

trac のデータを redmine に移行していて MySQL のエラーが発生しました sudo rake redmine:migrate_from_trac RAILS_ENV="production" --trace (省略) ................rake aborted! Mysql::Error: Got a packet bigger than 'max_allowed_packet' bytes: …

mysqlbinlog で unknown variable 'default-character-set=utf8' エラー

mysqlbinlog コマンドでバイナリログを確認しようと思い実行したところ $ mysqlbinlog ./mysql-bin.000001 mysqlbinlog: unknown variable 'default-character-set=utf8' というエラーのため実行できませんでした。 調べてみると以下サイトのとおりで解決し…

MySQL/Ruby インストール

http://tmtm.org/mysql/ruby/ MySQL の .h(ヘッダファイル)、libmysqlclient.so が必要なので、 MySQL の shared , devel パッケージをインストールする必要があります。 参考:http://d.hatena.ne.jp/zankey/20080710 あとは、上述サイトのとおりでした。 $…

mysql.h をインストールする

http://dev.mysql.com/doc/refman/4.1/ja/linux-rpm.html より ・ MySQL-devel-VERSION.i386.rpm Perl モジュールなど、その他の MySQL クライアントをコンパイルする場合に必要なライブラリとインクルードファイル。 MySQL-devel-VERSION.i386.rpm を以下か…

libmysqlclient.so をインストールする

http://dev.mysql.com/doc/refman/4.1/ja/linux-rpm.html より ・MySQL-shared-VERSION.i386.rpm このパッケージには、特定の言語とアプリケーションが MySQL を動的にロードして使用するために必要な共有ライブラリ(libmysqlclient.so*)が含まれている。 …

MySQL の Changes を見て怖いのを見つけたのでメモ

大量にデータを削除した後にIndexファイルが壊れる http://bugs.mysql.com/bug.php?id=22384 エンジン:MyISAM 修正されたバージョン:Fixed in 4.0.28, 4.1.22, 5.0.26, 5.1.12. SELECT文のサブクエリー内で order by ?? limit 1 を指定すると mysqld が cr…

ERROR 1305 (42000): FUNCTION テーブル名.NEXTVAL does not exist

Perl + Class::DBI を使っていて、以下のエラーが発生しました。 ERROR 1305 (42000): FUNCTION テーブル名.NEXTVAL does not exist 原因は、DBアクセサ側で sequence を設定していたからでした。 例) __PACKAGE__->sequence(qw(id)); ↑を設定すると、シーケ…

アクティヴなセッション情報を取得する

以下の2つのSQLで、アクティヴなセッション情報を取得できますよ。 mysql> show status like 'Threads_connected';

MySQL で InnoDB が利用可能かどうか調べる(have_innodb)

MySQL を利用していて、InnoDB が利用可能な状態か確認するコマンドの紹介です。 mysql> show variables like "have_inno%"; 利用可能な場合の出力結果 + Variable_name Value + have_innodb YES + 1 row in set (0.00 sec) 利用できない場合の出力家kk + …

MySQL5.0 が停止できないときは、kill -9 プロセスID

ちょーアドホックな対応をご紹介。 LinuxESに rpm でインストールした MySQL5.0が停止できなくなりました。 停止方法 # /etc/init.d/mysql stop エラーログを見ると以下が出力されていました。 070607 21:34:06 mysqld started 070607 21:34:06 InnoDB: Erro…

Issuing rollback() for database handle being DESTROY'd without

Apache2 + mod_perl2 + Class::DBI の環境で掲題のエラーが Apacheのログに出力されました。 Issuing rollback() for database handle being DESTROY'd without explicit disconnect() ... 検索したところ、今回の原因については以下のあたりで当たりました…

MySQLで全文検索がしたい

MySQLを使って全文検索がしたいという要件があり調べました。 普通のINDEXは、text/blog型には貼れません。 そこで、FULLTEXT INDEX の登場です。 ただし、日本語を扱うためにはイロイロと制約があります。 LIKE検索に比べるとパフォーマンスの向上が劇的だ…

character_set_filesystem とは?

文字コードが統一されているかステータスを以下のSQLで確認したところ、 mysql> show status like 'char%'; character_set_filesystem だけが binary と表示されて調べました。 LOAD DATA INFILE区時に使用されるような記述があったけど、 5.1からは削除…

ERROR 1005 (HY000): Can't create table './database_name/table_name.frm' (errno: 150)

CREATE TABLE 時に、外部制約の部分でエラーになりました。 出力されたエラーは以下のとおり。 ERROR 1005 (HY000): Can't create table './database_name/table_name.frm' (errno: 150) 調べてたら以下のような情報が、 http://dev.mysql.com/doc/refman/4.…

datetime型にDEFAULT制約を設定できない

以前エントリしたように、timestamp型を使用すると、 UPDATE時に自動更新されてしまうということで、datetime型を使用しています。 それでdatetime型に対して DEFAULT制約 で NOW() を設定したかったんですが、ダメらしい。。 サイズが異なるなるから当たり…

timestamp型 のカラムに対して、現在日時が自動設定される

MySQL5.0.x を利用していて、スキーマ中に timestamp型 を定義していたところ、 Update文を実行した場合に、その timestamp型 のカラムに現在日時がが自動でセットされました。。 会社で同じ思いをした人から情報をもらい解決しましたが、 エー、な感じ。 発…

Falcon と InnoDB の違い

Falcon という新しいストレージエンジンが MYCOMジャーナル で紹介されていました。 その中でいいなぁと思った箇所を抜粋させてもらいます。 リサーチされた方々ありがとうございます。 Falcon は、InnoDBやMyISAMと同じ領域のユーザを対象としており、トラ…

オラクル、オープンソースのMySQL買収に失敗

オラクルがMySQLを買収しようとしていたそうです。 しかしMySQL側が断ったため頓挫したとのこと。偉い! データベースメーカーがこのままの状況で推移するとは思えません。 そんな中でもMySQLが買収されて非オープンソースになったら、とても多くの会社が影…

MySQLの問い合わせ計画

Update文の問い合わせ計画を確認したかったのに、MySQL(4.1.14)では出来ない・・・(5.1のドキュメントを見てもSELECCTだけっぽい) 同じシステムのPostgreSQL8.0.3で確認しましたよ。。

ERROR 1016: Can't open file: 'db1.table1'. (errno: 1)

--err-log内容 051110 11:17:09 InnoDB: Started; log sequence number 0 43645 /usr/sbin/mysqld: ready for connections. Version: '4.1.14-standard' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition - Standard (GPL) 051110 1…

MySQLで異なる文字コードを持ったデータベースを運用する方法

MySQLをrpmでインストールした状態で、utf8のデータベースとujisで運用していたXoopsを並列で稼動するために取った方法を説明します。 [環境] MySQLをrpmでインストール => latin1 データベース1 -> utf8 データベース2 -> ujis *データベース2 = xoops …

Client does not support authentication protocol requested by server

[エラー] Client does not support authentication protocol requested by server [原因] MySQL4.1ではパスワードハッシュアルゴリズムに基づく認証プロトコルが使用されているが、これは旧クライアントと互換性がない。 サーバが4.1で旧クライアントから接…

mysqldump: Error 1030: Got error 127 from storage engine when dumping

mysqldumpでバックアップを取ろうとしたら、特定テーブルでエラーが発生してそれ以上進まなくなった。 [コマンド] mysqldump -F -x -q --all-databases -u some_user -p | gzip > dumpall.gz 2>&1 [エラー内容] mysqldump: Error 1030: Got error 127 from s…

PostgreSQLのデータをMySQLに移行する方法

PostgreSQLのデータをMySQLに移行する方法。 [バージョン] PostgreSQL:8.0.3 MySQL:4.1.14 [データ移行] PostgreSQL -> MySQL ダンプ $ psql データベース名 psql> \pset format unaligned psql> \pset fieldsep '\t' psql> \pset null '\\N' # MySQL(LOAD…

mysqltest returned unexpected code 15872, it has probably crashed

MySQL4.1.14をソースからビルド/インストールで上手くいかなかった。[現象] make test でエラー [mysql@myhost mysql-4.1.14]$ make test cd mysql-test; perl mysql-test-run.pl && perl mysql-test-run.pl --ps-protocol No ndbcluster support Killing Po…

[Warning] mysql.user table is not updated to new password format; Disabling new password usage until mysql_fix_privilege_tables is run

権限テーブルのアップグレードをしなさい!という警告 [対応方法] mysqlが稼動している状態で↓ $ mysql_fix_privilege_tables --password=root_password This script updates all the mysql privilege tables to be usable by MySQL 4.0 and above. This is …

[Warning] Asked for 196608 thread stack, but got 126976

↓からダウンロードしたRPMをインストールしました。 http://download.softagency.net/MySQL/Downloads/MySQL-4.1/MySQL-server-4.1.14-0.i386.rpm MySQLを起動すると表題の警告がerr_logに出力されていました [Warningの原因?] http://oshiete1.goo.ne.jp/k…

レプリケーション by MySQL4.1.11

http://tsuttayo.sytes.net/mysql/replication/ ↑を参考に、MySQLのレプリケーションを試してみました。 動作確認ができたのでとりあえず今日は良しです。 それにしても、相変わらずユーザ周りで混乱します。 普段はPostgreSQLユーザなのでより↑のように感じ…