purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

mysql

mysqlでのリテラル指定

最近意識してなかったのでメモ mysqlの場合はこのあたりのマニュアルに書いてあります MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.1 リテラル値 引用符で囲むと文字リテラル指定となる 文字リテラルとする場合、↓のように引用符でくくると文字リテラル…

SQLSTATE[HY000] [2019] Can't initialize character set UTF-8 (path: /usr/share/mysql/charsets/ エラー

環境 PHP 5.3.6 MySQL 5.1.69 PDOから接続すると SQLSTATE[HY000] [2019] Can't initialize character set UTF-8 (path: /usr/share/mysql/charsets/). こんなエラーがでた 何のことはない ✕・・・UTF-8 ○・・・utf8

JOINについてお勉強

SQLのJOINについてメモ。間違いもきっとあります。あしからず。引用は全てこちらより SELECT構文:JOINを使ってテーブルを結合する | Smart -Web Magazine まずJOINとは JOINは複数のテーブルを連結させるために用意されたキーワードです。単純にテーブルを…

mysql4とmysql5の共存の時にエラーがでた

/usr/local/mysql/bin/mysqladmin: connect to server at '127.0.0.1' failed error: 'Host 'localhost' is not allowed to connect to this MySQL server' mysql5の設定とかとバッティングして ↓のようなmysql4の初期pw設定とかが出来ない /usr/local/mysql…

Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

MySQL4、MySQL5を共存しようとしてこんなエラーがでました。 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist とりあえずやったこと デフォルト /etc/my.cnf を見に行くのでmysql5用のは退避。あとで戻す # m…

mysqldの起動オプションを変更する

たぶんCentOSとかだと /etc/rc.d/init.d/mysqldubuntuは慣れてないのでデフォルトかどうかわからないが LAMPを簡単構築出来るあれでインストールしたときは # vi /etc/init.d/mysql みたいだけど、--logオプションを設定しようと思ったけどどうもそれらしい…

my.cnfの場所を探す

ubuntuでLAMPを簡単に構築できるのはいいけど my.cnfが見つからない。 ということで探します。 # mysql --help | grep cnf すると order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf /etc/my.cnf /et…

CentOS6にMySQL4.0.27を入れようとしたがmakeでエラーが出た。

CentOS6.2にMySQL4.0.27入れようとしたんですけど mysql.cc: In function ‘void print_table_data(MYSQL_RES*)’: mysql.cc:1650: error: expected primary-expression before ‘?’ token mysql.cc:1650: error: expected ‘:’ before ‘)’ token mysql.cc:1650:…

DB 物理削除 論理削除

いままでは、企業サイトCMSをメインで作ってきて あまり考えることなく論理削除にしてきてた。 物理削除の最大のメリットは 一つのテーブルのデータ量が軽減される だと思う。これにより、複雑なシステムになるほど、selectのレスポンスが良くなる。 論理削…

mtで「Got an error: データベース接続の設定に誤りがあります: エラーが発生しました: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)」

久しぶりにMovableTypeの3.3を触ることがあって「Got an error: データベース接続の設定に誤りがあります: エラーが発生しました: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)」って出たのですがphpMyAdminの「サーバ変数と…

MySQL ライセンスについて 覚書

via I'LL OPEN SOURCE - アイル・オープンソース 解釈が違うかもですが覚書です。 MySQL Community Server 無償版 基本GPL 商用利用可能 コアのソースコード書き換えなければ基本何も考える必要はなさそう MySQL Classic/Pro/Advanced 商用版 組み込み用途(…

DROP DATABASEで、データベースを削除出来ない場合

mysqlのファイルを物理的に削除してしまえばいい。(強制的というか強引だけど)今回は /etc/my.cnf に 物理ファイルの場所が /var/lib/mysql だと書いてあったので cd /var/lib/mysql をしてそのディレクトリに移動して rm -rf db_name ↑※確認無し削除なの…

varcharの最大文字数

via http://tech.hapicky.com/archives/93 http://www.shylph.info/blog/programming/sql/163 MySQL 5.0.3以降で仕様が変わっている 5.0.3より前 … 0〜255バイトまで 5.0.3以降 … 0〜65535バイトまで 文字コードがUTF-8の場合 半角文字は1バイト 全角文字は3…

mysqldumpで一行しかダンプされない><

・・・と思ったら実は全てのデータが1行にまとめられているだけだった。 ということがあります。 webminとかでdumpするといつもの書式が違ってあせりました。まーSSHで mysqldump -u root -p --skip-extended-insert test-db > /var/www/html/dump.sql skip-…

mysql4.0.27でのエラー

Warning: mysql_pconnect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /usr/home/hoge/admin/inc/connectdb.php on line 6 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.soc…

たまに接続が出来ない、重い時にチェックするもの

via オデの日記@WEB系: MySQLで「Too many connections」のエラー MySQLの接続数が多いときのチューニング | KennyQi PHP Blog 注意する点 max_connections = 最大接続数 (デフォルトは100) 例)200にする wait_timeout = 接続維持時間 (デフォルトは8時間)…

DB容量の取得

show table status DBごとにMB単位で表示 select table_schema, sum(data_length+index_length) /1024 /1024 as MB from information_schema.tables group by table_schema order by sum(data_length+index_length) desc テーブルごと show table status fro…

php5からmysql4に接続できない。

こことかみてlocalhost:3306にしてもmysql5をみてしまう。 http://2007.document.secure.ne.jp/tools/db/db.php なのでCPIさんに問い合せてみたところ 回答 php5ではmysqliを有効にするため、MySQL5のライブラリを 読み込むようになっております。 その為、…

日本語(ひらがな)ソートをする方法

via MySQLの日本語のソートがうまくいかない現象について@あらき家 select * from テーブル名 order by cast(列名 as char); これでいけるみたい。 試してないけど、漢字はできないと思う。

登録されていないデータのみを表示

via MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.2.3 ANY、IN、SOME とともに使用したサブクエリ ポイントだけ引用メモ // サブクエリのSELECTでHITしたものをリターン SELECT s1 FROM t1 WHERE s1 IN(SELECT s1 FROM t2); // サブクエリのSELECTでHI…

selectの条件に正規表現を使う

値が数値である WHERE id REGEXP '^[0-9]+$'; 値が数値ではない WHERE id NOT REGEXP '^[0-9]+$'; via にゃほ〜 - MySQL の RLIKE REGEXPの否定

意味不明なエラー

エラー: Unknown column 'A' in 'where clause' via Auto Lock MOD をインストール後、エラーメッセージが出現します・・・ :: phpBB2 日本語サポートフォーラム こちらによると Aなんてカラムはないよ! っていう意味か、たしかにAなどというフィールドを…

指定期間内のデータを抽出

前にMYSQLでDATE型とかDATETIME型と年で比較 - purazumakoiの[はてな]で、その年のデータを抽出するのは作ったが、今回は年月日で検索する。 【テスト環境】mysqlの4.0x系 フィールドの型はDATE型 結論としてこんなSQLになればいい*1 /* 2009-01-01 〜 2009-…

MySQLのキャラクターセット(文字コード)

参照 MySQLではまったこと - ぱんぴーまっしぐら キャラクターセット MySQL4.0はサーバのみで文字コードを設定して、それがテーブル等(クライアント)の設定となる が、4.1、5.0はサーバとクライントで別々に設定でき、相互に変換する そのため4.0ではテー…

時間の取得

○時以降は違う条件でSELECTしたい時とかに使う 引用:MySQL Reference Manual for version 3.21.31. - MySQL 言語リファレンス # CURTIME() # CURRENT_TIME 現在の時刻を HHMMSS または 'HH:MM:SS' の形式で返します。これは CURTIME() が数値または文字列の…

バックグラウンドで処理をする(引数を渡す)

バッチ処理をする時など、バックグラウンドで処理をしたい時は往々にしてあります。 参考にしたところ PHP第2回:PHP中級(外部プログラムの実行/バックグラウンドでの実行) コマンドライン引数を受け取る - phpspot 上記のリンクを参考にして以下のコードを…

MYSQLでDATE型とかDATETIME型と年で比較

わざわざYEARとかMONTHとかDAYのフィールドを作らなくてすむ 例えば、今年のデータだけ取り出したいとかはこう書く。 ※dateフィールドはDATE型です date_format関数を使えばいいんですね。これで検索時のMYSQL内の値を整形できるようだ。 PHPで書く場合 DAT…

vistaだと4文字バイトが打ててしまう件について

会社の先輩に聞いたことだけど ・mysqlは内部エンコーディングに関係なく4文字バイトに対応してないので、NULLとして登録してしまうらしい。 ・XPまではOSのIMEで4文字バイトの文字が出てこなかったので、 それでもよかったけど、vistaは打ててしまう。 参照…

mysqlでシンタックスエラー

何かエラーがでたのです。 Date:[2008/01/29 11:16:40] User:1 File:ファイルのパス Line:43 Message:MDB2 Error: syntax error SQL:SELECT id,group FROM m_group; 何か実行できない!「syntax error」え!合ってるよね多分>< mysqlが5になったからなのか…

MYSQLで期間内のデータのみ抽出する為のSQL関数

CURRENT_DATE()を使えばいいのです。 僕の会社は今mysql4.0xを使ってるので、これで使える関数をSQL実践リファレンスってのを読んで調べたのです。 更にこんなページを参照したりして、 MYSQLの日付関数で、NOW(),SYSDATE(),CURRENT_DATE()の違いを教えて下…