Archive for the ‘mysql’ Category

 

skip-name-resolve | mysql

2月 28th, 2012

ドメインで利用しないとき ip だけで接続。 my.cnf skip-name-resolve 起動オプションに付けるときは –skip-name-resolve

Read full article | コメントは受け付けていません。

mysql buckup | mysqlhotcopy or mysqldump

1月 12th, 2012

http://dev.mysql.com/doc/refman/5.5/en/backup-methods.html http://dev.mysql.com/doc/refman/5.5/en/mysqlhotcopy.html mysqlhotcopyしようと思ったらinnodbでは使えないとのこと。 #!/bin/sh SRC_IP=’000.000.000.000′ SRC_DIR=”/home/bkup/data/bkup/mysql” TO_IP=’1.1.1.1′ TO_DIR=”/home/bkup/data/${SRC_IP}/mysql” DATESTR=`date ‘+%Y%m%d%H%M%S’` MYSQL_NAME=’wordpress’ # test touch /home/bkup/data/bkup/mysql/db.$DATESTR # touch /home/bkup/data/bkup/mysql/db.${DATESTR} mkdir -p ${SRC_DIR} # mysqldump -u root –all-databases > ${SRC_DIR}/${MYSQL_NAME}.${DATESTR} # gzip ${SRC_DIR}/${MYSQL_NAME}.${DATESTR} ssh ${TO_IP} mkdir -p ${TO_DIR} CMD_STR=”rsync -auz ${SRC_DIR}/${MYSQL_NAME}.${DATESTR}.gz ${TO_IP}:${TO_DIR}/${MYSQL_NAME}.${DATESTR}” $CMD_STR こんな感じで。dumpしてrsync

Read full article | コメントは受け付けていません。

PDOのdsnにcharset が必要だった。|mysql php

12月 26th, 2011

mysql:host=slave.mysql.tranode.com;dbname=tranode;port=99999;charset=utf8; みたいな。 charsetを指定しないと文字化けした。phpからだけ見てるとわからないけど mysqlから直接見ると文字化けしてたので、文字コードが間違えて入ってるっぽい。

Read full article | コメントは受け付けていません。

skip slave sql error | mysql

12月 15th, 2011

slaveでsqlエラーが出ると mysql > show slave status; Slave_IO_Running: Yes Slave_SQL_Running: No — Last_Errno: Last_Error: Error ‘xxx’ となりました。 (原因はいろいろですが、単純な場合は、slave側でstart slaveの前に何かsqlを実行してそれが邪魔しているとか 飛ばしても良いエラーの場合は、 stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave; でスキップします。 ==== データがある状態からstart slaveするときは。 master のポジションを確認 FLUSH TABLES WITH READ LOCK; // マスターの書き込みを停止。& dump & copy show master status; // file positionを確認 +——————+———-+————–+——————+ | File | Position […]

Read full article | コメントは受け付けていません。

can not use current_timestamp on 2 timestamp columns | mysql

12月 14th, 2011

create table でこれがエラーになる。 `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, http://dev.mysql.com/doc/refman/5.5/en/timestamp.html あってそうだけど、2個 timestamp型にCURRENT_TIMESTAMPを使えないらしい。 テーブル内の1つの TIMESTAMP カラムに対して、現在のタイムスタンプをデフォルト値と自動更新値として指定する事ができます。現在のタイムスタンプを、カラムを初期化するデフォルト値にする事、または自動更新のデフォルト値にする事、またはその両方にする事が可能です。現在のタイムスタンプを、1つのカラムを初期化するデフォルト値にし、別のカラムの自動更新のデフォルト値にする事は不可能です。 ということで。 `created_at` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00′, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, instert into で NOW() を入れてみる。 mysql> select * from users; +———+——–+——+———-+———————+———————+ | id | authid | mail | […]

Read full article | コメントは受け付けていません。

generate id by procedure | mysql

12月 14th, 2011

作成時は、delimiter // で ; を変えておく必要があります。 autoincrementのIDを作成して返します。 mysql > delimiter // CREATE PROCEDURE check_user (IN s_id VARCHAR(255), OUT r_id INT(11)) BEGIN SELECT id INTO r_id FROM users WHERE authid=s_id; IF r_id is NULL THEN INSERT INTO users( authid ) values( s_id ); SELECT id INTO r_id FROM users WHERE authid=s_id; END IF; END // mysql > […]

Read full article | コメントは受け付けていません。

mysqld_multi で複数起動&レプリケーション mysql_safe | mysql 5.5

12月 13th, 2011

とりあえず、2つ動かして、master-slaveをテスト環境で作る。 適当に入れて適当に起動したら。 まだ作ってませんがTRANODEもよろしくお願いします。 user tranodeで動かします。 /etc/my.cnf [mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin user=root ~/.my.cnf [mysqld1] datadir = /home/tranode/data/my/data1 socket = /home/tranode/data/my/mysql1.sock pid-file = /home/tranode/data/my/mysqld1.pid port = 50431 server-id=1 log-error=/home/tranode/log/my/mysqld1.log sync_binlog=1 log-bin=mysql-bin log-bin-index=mysql-bin relay-log=relay-bin relay-log-index=relay-bin # slave [mysqld2] datadir = /home/tranode/data/my/data2 socket = /home/tranode/data/my/mysql2.sock pid-file = /home/tranode/data/my/mysqld2.pid port = 50432 server-id=2 master-host=127.0.0.1 master-port=50432 master-user=tranode master-password=******** […]

Read full article | コメントは受け付けていません。

mysql error | Error message file ‘/usr/share/mysql/english/errmsg.sys’ had only 480 error messages

5月 13th, 2011

remiをいれたり、i386が入ってしまったりするとエラーになるので、いったん削除して入れなおす。 #yum remove mysql* #yum –enablerepo=remi install php-mysql mysql-server 起動できないときは、エラーの内容によっていかを試す。 http://dev.mysql.com/doc/refman/5.1/ja/installation-programs.html * mysql_install_db * mysql_upgrade 110513 19:16:13 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it

Read full article | コメントは受け付けていません。

httpdプロセスがとまる件2

1月 4th, 2010

httpdプロセスが停まってしまう件 を書きましたが、残念ながらたまり続けます。。。 close_waitについては、ちゃんと消えているのですが、httpdプロセスが消えてくれません。 yahooやgoogleのcrawlerが多かったのですが、特に相手が悪いわけではなく原因は少しわかってきました。 タイムアウトするリクエストのタイムアウトを待たずにリトライして別プロセスで新しいものを取得すると・・・発生するようです。 とりあえずもう少し処理を修正してタイムアウトがちょっとでも起きないようにして行きたいと思います。 MySQLとの接続関連の何かがプロセスを切らせない何かがあるようです。 しかし slowqueryもないのでわからない。。。

Read full article | コメントは受け付けていません。

Mysql Union 複数テーブルから結果を取得

11月 6th, 2009

where句も2つの結果の並べ替えもOKのようです。 mysql> (select title from bid where match(title,description) against(“*W1:3,2:1 DVD” in boolean mode) limit 2) UNION ( select title from bid_0910 where match(title,description) against(“*W1:3,2:1 high” in boolean mode) limit 2) order by title\G; *************************** 1. row *************************** title: amazonの中古最低価格より安い!新品「TOEFL GrammarWorkbook」T *************************** 2. row *************************** title: 人気の一体型 DESKPOWER LX50M●CelD 2.9G 512M 300G Sマルチ *************************** 3. row […]

Read full article | コメントは受け付けていません。