さてみなさん、ご無沙汰の木村です。
私は以前からデータベース各種連載を[勝手に補足]してきたのですが、どうやらミックさんの連載については
第1回を補足していなかったみたいなので、四年たってからやっとの補足です。。。。
幸い元記事はWEB+DB
PRESSの総集編でも読めますし、以下のWeb版も読めますので、是非チェックしてみてください!
DBアタマアカデミー
さて、勝手に補足の時間です(Web版を元にしてます)♪雑誌記事一回分を2〜3回に分割してWeb版になってます。(今回は(1)〜(3)で(2)へのツッコミ)
…
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
Original post - http://anothermysqldba.blogspot.com/2014/08/mysql-foreign-keys-example-error-1452.html
だから私は、フィールドを更新する必要が扱っ今日の状況に偶然出会ったため、ユーザは、関連する外部キー制約をそうすることができませんでした。
このブログ投稿では、外部キーを示すとどのようにあなたがそうしなければならない場合は、それらを更新するための簡単な例であると。
まず私たちは簡単なテーブルを作成してみましょうと、ランダムなデータを移入。
CREATE TABLE `table_w_code` (
`SOMECode` varchar(50) COLLATE utf8_unicode_ci NOT
NULL,
`NameofCode` varchar(50) COLLATE …
MySQLのInnoDBストレージエンジンのテーブルの長いvarcharカラムを含むカラムにインデックスを生成しようとしたことがあれば、このエラーを見たことがあるだろう。
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
文字数制限は、使っている文字コードに依存する。例えば latin1
であればインデックスを生成できる最大カラムは varchar(767)であるが、
utf8 の場合は varchar(255) までである。
インデックスあたり、3072バイトという別の制限もある。767バイトはカラムごとの制限なので、複数のカラムを(それぞれが767バイト以下で)3072バイトまで格納できる。
(MyISAMは少々異なり、インデックスに対し1000バイトの制限があり、カラムごとの制限はない)。
…
[さらに読む]MariaDB 10.1の新機能を触っている時、(馬鹿げていると思うことの1つだが)一般ユーザはスロークエリログを無効にする方法が分からないのではないかと気づいた。
この機能を実装したりドキュメントを書いていて、色々なログの情報がバラバラになっていて、それらを有効にしたり無効にするのが意外と難しいのではないかとも思った。
これを解決するため、MariaDBのドキュメント(KB)に、MariaDBにもMySQLにも役立つだろうと思って「Overview of the MariaDB logs」というエントリを作った。
そのコピーがこの記事だ。コメントや追加して欲しい内容があれば、 …
[さらに読む]
Percona Server 5.6.19にMroonga(故あってGroonga 3.1.0のnightly +
Mroonga 3.10だけど)を載せようとしたら、configureスクリプトが転けた。
$ ./configure CFLAGS=-O3 CXXFLAGS=-O3 PKG_CONFIG_PATH=/usr/groonga/3.1.0.20131209/lib/pkgconfig --with-mysql-source=/usr/local/src/percona-server-5.6.19-67.0 --with-mysql-config=/usr/local/percona5619/bin/mysql_config
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
..
checking mysql source... yes
checking mysql_config... /usr/local/percona5619/bin/mysql_config
checking for libmysqlservices.a directory... configure: error: libmysqlservices.a is not found in </usr/local/percona5619/lib/mysql/> and </usr/local/percona5619/lib/mysql/mysql/>
libmysqlservices.aが見つからないんだって。
…
我々が興味深いと思うMariaDBの機能を紹介するシリーズ、最初の記事では、バイナリログイベントのレプリケーションを選択的にスキップする機能を取り上げる。この機能は、MariaDB 5.5と10から使用可能だ。
…
[さらに読む]
ぱっと見で見当たらなかったので書いた。
SQLで取得した値を評価して、Nagiosさんに戻り値を返すスクリプト。
https://github.com/yoku0825/my_script/blob/master/nagios_for_mysql.pl
こんな風に使う。
$ ./nagios_for_mysql.pl --user root --password xxxx --host 127.0.0.1 --port 64056 --sql "SELECT COUNT(*) FROM information_schema.processlist WHERE state IN ('update', 'updating') AND time > 10" --warning 10 --critical 20
$ echo $?
3
走行中(というかgrn_io_lock待ちだ)のスレッドの数を数えてみたり。
$ perl ./nagios_for_mysql.pl --user root --host 127.0.0.1 --port 64056 --sql "SELECT table_rows FROM information_schema.tables WHERE table_schema = 'mysql' AND …[さらに読む]
July 29, 2014 by Peter Zaitsev
MySQLのダウンタイム発生の、よくある原因の一つは、コネクション数が不足することだ。こんなエラーを見たことはないだろうか?
ERROR 1040 (00000): Too many connections
MySQLをある程度長く触っている人なら、間違いなく見たことがあるだろう。成功したトランザクションと失敗したトランザクションが混じって一時的に見えるエラーが発生したり、しっかり監視していない場合に限って、いくつかのプロセスが正常に実行されず色々なおかしな現象を引き起こしたり、なかなかに厄介なエラーだ。
…
[さらに読む]MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。
MySQL のレプリケーションのおさらい
MySQL のレプリケーションは次のような仕組みで動作しています。
- マスターの更新トランザクションが binlog を書く
- スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く.
- マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する
- binlog が追記されるのを待ってさらにスレーブに送る
- スレーブのSQLスレッドが relaylog を再生する
MySQL 5.5 でよくあったレプリケーション遅延
…
[さらに読む]
2、3日前にmysqlnd_msをフィリピンのPHPユーザーグループに発表できたことをうれしく思っている。MySQLのマスタ-スレーブ構成での、mysqlndプラグインは、mysqlndエクステンション(訳注:
mysqlndはPHP言語に対するPHPライセンスのMySQLネイティブドライバであり、PHP5.3以降には組込となっている)への透過的レイヤである。
これによって、アプリケーションを一切変更することなく、Read-Writeを分離したりスレーブへの読取りを負荷分散させたりできる。
しかし、このプラグインで、高可用の1つのパターンが実現できることをご存知だろうか? …