mysql

mysqlが起動できない

マンションの停電でサーバーの再起動をしたらmysqlが起動していないようなので確認。 [user@sv mysql]#tail -20 /var/log/mysqld.log 110926 21:51:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql /usr/libexec/mysqld: Can't f…

MyISAMからI nnoDBに変更した際の注意点

MySQLのエンジンを変更したらMySQLが起動しない。 といった経験はおありでしょうか?もしくは現在そういった状況でしょうか? 落ち着いてください。 http://dev.mysql.com/doc/refman/5.1/ja/innodb-restrictions.html MySQL システムテーブルを mysql デー…

mysqldumpのデータから一部のテーブルだけ復旧するにはl

みなさん一度はやったことがあるはずのテーブル削除。 やった瞬間顔面蒼白になりますが、落ち着いてください。 これだけ覚えておけば5分以内に復旧できます。 まずdumpデータの加工処理 csplit dump.sql /^DROP/ {*} egrep -rn 'CREATE TABLE `テーブル名`'…

REPAREできない

mysqlでテーブルがクラッシュしてしまいREPAREしたが、修復できない場合 Incorrect key file for table テーブル名 というエラーが表示されます。 MySQL 4.0.2 から、REPAIR に USE_FRM モードが導入されています。 `.MYI' ファイルがない、またはそのヘッダ…

オートインクリメントで連番が飛ぶ(欠番?)

http://mysql.blic.net/doc/refman/4.1/ja/innodb-auto-increment-column.html カウンタから値が割り当てられるときは、オートインクリメントのメカニズムによって、 ロックとトランザクションの処理が省略されます。 このため、カウンタから数値を取得した…

年齢算出

誕生日から年齢を算出して検索とかするtips 誕生日 = "0000-00-00";$w["and"]["(YEAR(CURDATE())-YEAR(誕生日)) - (RIGHT(CURDATE(),5)<RIGHT(誕生日,5))"] = "$f = "(YEAR(CURDATE())-YEAR(誕生日)) - (RIGHT(CURDATE(),5)<RIGHT(誕生日,5)) as age";$this->Model->findAll($w,$f); ■参考URL http://dev.mysql.com/doc/refman/4.1/ja/date-calculations.html</right(誕生日,5))"]>

mysqldumpを定期的に行うシェル

毎日一度行う処理、とっさに全データdumpしたい場合も日付と時間で吐き出ししているのですぐ使えます。 #!/bin/sh backupdate=`date +%Y%m%d%H%M` mysqldump -u dbmaster --password='任意のパスワード' -x --all-databases > /var/backup/alldump_$backupda…

SQL tips

いつも調べてる気がするので。 日付の差 SELECT DATEDIFF(NOW(),created):

mysqlの文字コード

毎回クエリを流すのがめんどくさいので必ずサーバに接続したクライアントのキャラクタセットを初期化。my.cnf [mysqld] init-connect=SET NAMES 文字コード」 確認 mysql>SHOW VARIABLES LIKE 'char%'; character_set_client character_set_connection chara…

クエリのログファイルが指定できない

my.cnf [mysqld] log=/var/log/mysql/query.log でmysqlを再起動してmysqld.log [ERROR] Could not use /var/log/mysql/query.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: …

ファイルがアップロードできない(データサイズ編)

/etc/my.cnf [mysqld] max_allowed_packet=16M 一つのパケットの最大サイズで、使用したい最大のBLOBと同じくらい大きくするべきです。 max_allowed_packet のプロトコル制限は MySQL 3.23 で 16MB、MySQL 4.0 で 1GBらしい。 [user@hoge ~]# /usr/bin/mysql…

mysql_info()の返り値

mysql_info() 最後に実行したクエリに関する情報を表す文字列を取得。どうしても一行処理の時返り値がなくて困ってたらしっかりマニュアルに書いてありました。 http://dev.mysql.com/doc/refman/4.1/ja/mysql-info.html 注意: mysql_info() は、INSERT ... …

mysqlのパスワード忘れた

というか、自動セットアップファイルを作って間違って設定したのですが・・・ 簡単にメモ。 [user@hoge ~]# service mysqld stop [user@hoge ~]# /usr/bin/mysqld_safe --user=root --skip-grant-tables & [user@hoge ~]# mysql -u root コレで権限を無視して入…