DBとユーザー作るSQL

コピペ用。 一番最初の3行。 [code] CREATE DATABASE <データベース名> DEFAULT CHARACTER SET utf8; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON <データベース名>.* TO <ユーザ名>@localhost IDENTIFIED BY ‘<パスワード>’; FLUSH PRIVILEGES; [/code]

Published
Categorized as memo, MySQL

MySQLでCONCATするフィールドの値に1つでもNULLがあると、戻りがNULLになる

うーんとIFNULLでデフォルト値を設定する。 [code] SELECT CONCAT(pref, city, area) FROM area; [/code] ↓ [code] SELECT CONCAT( IFNULL(pref, ”), IFNULL(city, ”), IFNULL(area, ”) ) FROM area; [/code] そもそも、NULLじゃなくて、空文字列をDBに入れているつもりだったのに。。。 と思っていたらMDB2がNULLに変換している。 Oracleとの互換のため、これがデフォルトになっているようだけど、 Oracleは使いません。 ので、空文字列を突っ込めるようにします。 接続オプションのportabilityで設定します。 [code] $db->setOption(‘portability’, MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL); [/code]

MySQLでrootのパスワードを忘れたとき

え? 何か? [sourcecode language=”plain”] –skip-grant-tables [/sourcecode] オプション付きでmysqlを起動するか、/etc/my.confに以下のように記入して、mysqlを再起動。 [sourcecode language=”plain”] [mysqld] skip-grant-tables [/sourcecode] すると、パスワードなしでrootで入れるようになるので、入って、 [sourcecode language=”plain”] UPDATE user SET Password=PASSWORD(‘新しいパスワード’) WHERE User=’root’; FLUSH PRIVILEGES; [/sourcecode] して、 skip-grant-tablesは消して、再起動して、もとに戻すのだけ絶対忘れちゃダメ。 以上です。 参考URL http://dev.mysql.com/doc/refman/4.1/ja/resetting-permissions.html

Published
Categorized as MySQL

mysqldumpオプションメモ

メモメモ。 #where句で絞り込んでdump mysqldump -u ユーザ名 -p -t “–where=カラム名=’文字列'” データベース名 テーブル名 > ファイル名 #1行ずつのINSERT文でdump mysqldump -u ユーザ名 -p -c –order-by-primary –skip-extended-insert データベース名 テーブル名 > ファイル名

Published
Categorized as memo, MySQL