Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1821 to 1830 of 3187 « Previous | Next »
SQL_SLAVE_SKIP_COUNTER がまずいもう一つの理由

レプリケーションがおかしくなって、キーの重複や対象行が存在しないといった問題で行の更新や削除が出来なくなった時、 STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; を実行して解決するというのは、MySQLの世界ではよくあることだ。これがうまくいって、不正な行やSQL文を修正できることもあるだろう。しかし、その文が複数の文からなるトランザクションの一部だったらどうなるだろう?そうすると、面白いことに、不正な行をスキップすることで、トランザクション全体がスキップされてしまう。これは、 ドキュメント にはちゃんと書かれている。例を見てみよう。

マスタには3行存在している。

 master> …
[さらに読む]
InnoDBのB+木リーフノードの整合性チェック

2013/7/26 by Aleksandr Kuzminsky

InnoDBのページがいくつのレコードを含んでいるかを知るには二通りある。

  • ページヘッダの PAGE_N_RECS フィールドを見る
  • レコード一覧の下限から上限まで全てを確認してレコード数を数える

Percona Data Recovery Tools for InnoDB の 以前のリビジョン で、 constraints_parser コマンドで出力されたダンプデータに、短いサマリが付くようになった。

しかし、ページが失われてしまって、しかも page_parser …

[さらに読む]
MySQL Proxyで認証をフックしようと悪戦苦闘(ユーザー名だけ書き換えはOK)

前回 の続き。
要件はこんな感じ。

  • ユーザー名に"+"が含まれていた場合、"+"とそれ以降の文字列を握りつぶす。
    • mysql -uroot+yoku0825 -p だったら、rootに変換してやる。
  • パスワードやその他のオプションは入力されたものを素通し。
  • クライアントはmysqlコマンドラインクライアントとは限らない。


取り敢えず判ったところまででは、

  • MySQL Proxy 0.8.3以降はto_response_packetにserver_capabilitiesの指定が必須になったっぽい。
  • server_capabilitiesに使える値の一覧はinclude/mysql_com.hに書いてある。
  • 取り敢えず …
[さらに読む]
Wiresharkのプロトコルデコード機能を使ってMySQLのパケットを覗く

port 3306なら余計なことをしなくてもWiresharkが勝手にMySQLプロトコルとしてデコードしてくれるんだけど、残念ながら3306以外の場合は手動で設定してやらんといかん。

取り敢えずキャプチャー。
MySQLが浮いてるのはLinuxで、俺が使ってるのはWindows。

# tcpdump -i any -w /tmp/mysql55.cap port 64055
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
^C21 packets captured
42 packets received by filter
0 packets dropped by kernel


64055番ポートにMySQL 5.5.32が浮いているのでそれをキャプチャーしてみた。

$ mysql55 --protocol=tcp
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.32-log Source distribution

Copyright (c) 2000, 2013, Oracle …
[さらに読む]
MySQL Proxyで認証をフックしようと悪戦苦闘(成功してない)

色々あって、MySQL ProxyでMySQLの認証パケットを書き換えたい。
具体的にはこんな感じ。

  • ユーザー名に"+"が含まれていた場合、"+"とそれ以降の文字列を握りつぶす。
    • mysql -uroot+yoku0825 -p だったら、rootに変換してやる。
  • パスワードやその他のオプションは入力されたものを素通し。
  • クライアントはmysqlコマンドラインクライアントとは限らない。


で、まあ取り敢えずソースコードに付属していたExampleのLuaスクリプトを覗いてみる。

https://github.com/cwarden/mysql-proxy/blob/master/examples/tutorial-scramble.lua

Lua読めないけど感じ的に、「user: …

[さらに読む]
MySQLのサンプルデータベース

Original post http://anothermysqldba.blogspot.com/2013/07/mysql-sample-databases.html

私は上の記事を見たforums.mysql.comサンプルデータベースに関するサイトを、私はそれが他の人のためにそれらに簡単な概要を与えるポスト価値があるかもしれないと思った。

サンプルデータベースは、ここで見つけることができます: …

[さらに読む]
mysqlコマンドラインクライアントの改変と社内LT

社内LT用にmysqlコマンドラインクライアントをネタ改変したものの、たぶん他所でやることもないと思うのでこっちに書いてみる。


さんをつけろよデコ助野郎 from yoku0825
やってることはシンプルに単なるネタ。
書き上げたパッチをMySQL 5.6.12に適用してやると、mysqlコマンドラインクライアントに"さん"をつけないと怒る様にできます。

ここから

$ cd mysql-5.6.12

$ wget https://gist.github.com/yoku0825/5932320/raw/d715a496707357a220e5ebde34866cc2af656686/decosuke.patch

$ patch -p0 < decosuke.patch
patching file client/mysql.cc

$ cmake .
..

$ make mysql …
[さらに読む]
MySQLにおける自分のステータス変数にチェックイン。

Original post: http://anothermysqldba.blogspot.com/2013/07/check-in-on-your-status-variables-in.html

だから、あなたにも予想通りあなたのデータベースを実行している。
しかし、それは何ですか? それは、より良い動作していませんか?

あなたのステータス変数の一部でチェック最後の時間はいつでしょうか?

監視するためのいくつかの重要なステータス変数は以下のとおりです。

  • …
[さらに読む]
MySQLの分布調査

私は、この一般的なMySQLの分布調査を作成しました。結果は、調査の終了時に利用できるようになります。すべての質問が必要な(唯一の4問)私はこのブログがログインに提示されていることを言語にそれぞれ調査をターゲットにしようとしています

結果は、しかし、ここでパブリックビューイングのためのMySQLディストリビューションのいずれかに行くされていません。

調査をここにご利用ください:

http://www.surveymonkey.com/s/KMH9FZD

のMySQLから直接CSVをエクスポート

Original post: http://anothermysqldba.blogspot.com/2013/07/export-csv-directly-from-mysql.html

最初にこのことについて別のブログ記事はここにある:

しかし、以来、私は、これはに掲載見 …

[さらに読む]