MySQL

Semisynchronous Replication (半同期レプリケーション?)を試してみた

今までの非同期レプリケーションでは、同期完了前にマスターが死んだ場合に、データのロストが起きるが、MySQL5.5から導入された Semisynchronous Replication(半同期?)を使うと、スレーブ側のバイナリログの更新までが同期で行われるのでデータのロスト…

MySQL のGDBによるデバッグ環境構築メモ

MySQL5.1からは、自作のストレージエンジンや自作の関数用のAPIが公開されている。 自作のストレージエンジンは気軽には作れないと思うが、自作の関数については検討の価値ありだと思う。 その際に役立つかもしれないデバッグ環境の構築メモ。その前に、ここ…

MySQL のソースビルド

最近 が評判が良いので読んでいる。そこにMySQLのソースレポジトリへのアクセス方法が書かれている。 とりあえず、レポジトリをローカルに作ってテストしてみたのでそのときのメモ。 環境設定 Understanding MySQL Internals によると、以下の手順でローカル…

Full-Text Parser PluginsでMecabを使った全文検索

「mysql5.1にテキスト解析プラグインとしてMeCabを組み込んでみる」を参考にして、MySQL5.1から導入されたFull-Text Parser PluginsでMecabを使って日本語全文検索を試してみた。 MecabのRPM作成&インストール 適当なsrc.rpm をダウンロードしてインストー…

CentOS5 にMySQL+Mecab+SennaをRPMでインストールしたときのメモ

Mecab、Senna、いずれもCentOS用のRPMパッケージがまだ無いので作成。 MySQLへのSennaのパッチも当てたRPMを作成する。 Mecab のrpm作成&インストール まずspecファイルのために、src.rpmの取得&インストール。Fedora Core 7用のsrc.rpmを取得。 # wget ft…

バイナリログメモ

/etc/my.cnf の中を以下のように設定するとログを取れる [mysqld] log-bin ログのフラッシュ # mysqladmin flush-logs リストア # mysqlbinlog xxx-bin.000001 | mysql # mysqlbinlog xxx-bin.000002 | mysqlまたは、 # mysqlbinlog xxx-bin.00000? | mysql…

MySQLで暗号化・複合化

参照URL http://blog.graffiti-web.org/archives/cat_system.php SELECT HEX(AES_ENCRYPT('hogehoge', 'abcdeabcdeabcdea')) AS encrypted; +----------------------------------+ | encrypted | +----------------------------------+ | 2BF77B6863989EAD59…

バックアップ&リストア Backup & Restore

/usr/bin/mysqldump -u root -p\'$pass\' --flush-logs \ --delete-master-logs --all-databases | /usr/bin/gzip > /backup/$server/dbdump.sql.gz

my.cnf/my.ini ファイル

メモリ1GBのMySQLのサンプル [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwo…

innodb テーブルを1テーブル1ファイルにするには

「mysqld」 セクションに「innodb_file_per_table」オプションを記述する。

一定期間内のMySQLサーバーの状態を知る

以下のコマンドで、SHOW STATUS の差分を取得できる。 mysqladmin -uxxx -pxxx -i10 -r -c10 extended-status > status.txt -i インターバル -r 差分を取る -c 回数

mysql_pconnect と mysql_connect の比較

テストコード mysqltest.php 上記のスクリプトを、ab -n 10 http://localhost/mysqltest.phpmysql_pconnectだと、1,2回(リクエスト数が増えると、少し増える。)しかMySQLにコネクトせず、その…

ログの設定

[mysqld] basedir=C:/mysql datadir=C:/mysql/data log_slow_queries <- long_query_time秒以上かかったクエリを記録する。 long_query_time = 1 log-long-format <- log_slow_queriesで、インデックスを使わなかったものもログする。 log <- 接続、クエリな…

パスワードの設定

mysql> UPDATE user SET Password=PASSWORD('mynewpassword') WHERE User='root'; mysql> FLUSH PRIVILEGES;

クエリーキャッシュさせない方法

SELECT SQL_NO_CACHE * FROM テーブル名又は、 SELECT 文のスペースを1つ追加するなどクエリを変更すればOK。

インデックスのメモ

一覧方法 SHOW INDEX FROM テーブル名;インデックスの利用状況を調べる方法 EXPLAIN select column1, column2, ... from table where column1 = 100 AND ...;追加方法 CREATE INDEX index_name ON tbl_name (index_col_name,...)PRIMARY KEY の追加方法 ALTE…

Windowsのサービス登録

mysqld-nt --install-manual これでOK。

zipファイルからのインストールメモ

zipファイルを解凍しただけのインストール時に、MySQLがなぜか以前の環境を覚えていることがある。「apachefriends/xampp」とか。 Windows/my.iniの中の basedir = datadir = の2つのエントリを修正すればOK。 それにしてもエラーメッセージも不親切だし。ま…

ユーザ追加方法

grant all privileges on *.* to monty@localhost identified by 'password' with grant option; grant all privileges on *.* to monty@'%' identified by 'password' with grant option; パスワード変更 # mysqladmin -u root -p12345 -hlocalhost passwor…