MySQL 総合 Part13
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL
2008/01/30(水) 03:49:10ID:???前スレ[MySQL 総合 Part12] http://pc11.2ch.net/test/read.cgi/db/1190512649/
[関連スレと過去ログ]
http://find.2ch.net/index.php?STR=MySQL
http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on
[MySQL Developer Zone] http://dev.mysql.com/
[MySQL 日本語リファレンスマニュアル] http://dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual] http://dev.mysql.com/doc/internals/en/
[MyNA] http://www.mysql.gr.jp/
[MLja] http://lists.mysql.com/mysql-ja
ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
MyNAでの「心得の条」
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0
・関連ツール及びユーティリティ
・関連書籍
>>2
| .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| /
. | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / /
| | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ /
| | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ /
. |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./
,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| /
`'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..''
.`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l
.\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l
.ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, /
ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| drop tableは1日10回な!
.\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l
`ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ
./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ
/ /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ
// /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ
/ / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ
./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.|
0002NAME IS NULL
2008/01/30(水) 03:49:54ID:Q+2wuCXB[phpMyAdmin] http://www.phpmyadmin.net/
[phpMyBackupPro] http://www.phpmybackuppro.net/
[MySQLCC] http://www.mysql.com/products/mysqlcc/
[MySQL-Front] http://www.mysqlfront.de/
[mytop] http://jeremy.zawodny.com/mysql/mytop/
[Common SQL Environment] http://www.hi-ho.ne.jp/tsumiki/cse_1.html
MySQL ABでの各種GUIツールはMySQL GUI Toolsとして統合されています
(WorkbenchはGUI Toolsから独立しました。)
http://dev.mysql.com/downloads/gui-tools/5.0.html
・MySQL Administrator
・MySQL Query Browser
・MySQL Migration Toolkit
http://dev.mysql.com/downloads/gui-tools/5.0.html#Workbench
・MySQL Workbench
【関連書籍】
[MySQL Books]
http://dev.mysql.com/books/
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL
0003NAME IS NULL
2008/01/30(水) 15:44:59ID:???全スレ997の者です。
.inputrcに
set convert-meta off
set meta-flag on
set output-meta on
を記述してTerminal.appは再起動、bash上では日本語の入力は出来ています。
$ echo 漢字
漢字
mysql5の使用中のみ、漢字入力が?????になるのです。
mysql> select * from jpzip where area='???';
Empty set (0.71 sec)
(神奈川県、って入力してます)
お知恵拝借願います。
MacOS X 10.5.1
MySQL Server version: 5.0.51 Source distribution
0004NAME IS NULL
2008/01/31(木) 01:09:20ID:???GROUP BY について質問があります。
----TABLE_A----
|DataA|DataB|DataC|
------------------
| AAA | WWW |1111
| BBB | XXX |2222
| AAA | YYY |3333
| DDD | ZZZ |4444
この様なテーブルがあった場合に、DataAカラムがAAAの物を選び出し、
更にDataCの中の最大値を調べ、最大値となった行のDataBを抜き出す方法はあるのでしょうか?
自分でやってみた方法として以下の様なSQLを試してみたのですが
SELECT DataB MAX(DataC) FROM TABLE_A WHERE(DataA=AAA) GROUP BY DataA
このSQLだとDataBのカラムがMAX(DataC)と同じ行の値にはならない様です。
なにか句が足りないのでしょうか?
また、上記の抽出をDataAがAAAであるカラムに限定せずに行いたいのですが、何か良い方法はありませんでしょうか。
具体的には以下の様な抽出結果を求めています。
----結果----
|DataA|DataB|DataC|
------------------
| AAA | YYY |3333 (AAAグループの中の最大値を持つ行を抽出)
| BBB | XXX |2222 (BBBグループの中の最大値を持つ行を抽出)
| DDD | ZZZ |4444 (CCCグループの中の最大値を持つ行を抽出)
0005NAME IS NULL
2008/01/31(木) 01:16:45ID:???すいません。スレ間違えました><
SQL質問スレにいってきます。
0006NAME IS NULL
2008/01/31(木) 01:39:20ID:???http://journal.mycom.co.jp/news/2008/01/29/057/index.html
0007NAME IS NULL
2008/02/01(金) 02:19:12ID:7TNjcR3oをすると、エラーになります。
COUNTした場合、WHEREを使って抽出出来ないのでしょうか?
ORDER BYでソートするのは出来ます。
MySQLのバージョンは4.1.22です。
0008NAME IS NULL
2008/02/01(金) 09:36:59ID:???何をしたいのか今ひとつわからんけど
カラム id の値が重複したレコードの件数を取得したいなら
こんな感じかな
select id, count(*) from test group by id having count(*)>1;
0009NAME IS NULL
2008/02/01(金) 09:42:53ID:???COUNT()値の様な条件判定はHAVINGに記述するのが
SQLでは基本です。
00107
2008/02/01(金) 11:39:10ID:???WHEREじゃなくて、HAVINGなんですね。知りませんでした。
HAVINGを使うとやりたいことが出来ました。ありがとうございました。
0011NAME IS NULL
2008/02/02(土) 15:19:29ID:ff4pjUXHユニークな文字列を追加したいと思っています。
PHPを使わずに、MySQLの関数のみでその様な事って、出来ないでしょうか?
(オートインクリメントではないです)
0012NAME IS NULL
2008/02/02(土) 15:28:18ID:???トリガでUUID()を入れるってのはどう?
http://dev.mysql.com/doc/refman/5.1/ja/miscellaneous-functions.html
レプリケーションでダメと書いてあるが。
どうだめなのかよくわからんな。
0013NAME IS NULL
2008/02/02(土) 16:13:54ID:ff4pjUXHありがとうございます。UUIDを使ってみます。
0014あやか
2008/02/02(土) 18:39:32ID:qcb6dBmi実は今、会社の売上表のデータ確認作業をしているのですが、
ある製品のみ計算式とは違う値が入っているのに気付きました。
セルには、計算式「=ROUND(0.004*A2),2」と入っているのですが、
その値が、=0.004*A2の値でないものが入っているんです。
その値は、計算式による値よりも、すべて14.925多く、
明らかに故意による操作と思われるのですが、
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???
どなたかご存知でしたら教えてくださいませM(__)M
0015NAME IS NULL
2008/02/02(土) 19:06:52ID:???0016NAME IS NULL
2008/02/02(土) 19:57:50ID:???このへんかな?
Excel総合相談所 64
http://pc11.2ch.net/test/read.cgi/bsoft/1200819992/
0017あやか
2008/02/02(土) 21:17:46ID:qcb6dBmiそちらで質問してみますね。
0018NAME IS NULL
2008/02/02(土) 21:43:52ID:???0019NAME IS NULL
2008/02/03(日) 00:30:57ID:???0020NAME IS NULL
2008/02/03(日) 14:49:01ID:???0021NAME IS NULL
2008/02/03(日) 23:03:38ID:???MySQL 5.0以上なら複合インデックスが使える。
http://labs.unoh.net/2007/06/mysql5.html
002221
2008/02/03(日) 23:25:09ID:???0023NAME IS NULL
2008/02/04(月) 02:33:44ID:???例えば、
select 0x4142 ; # <-- AB
select 0x4142 + 0 ; # <-- 16706
select cast(0x4142 as unsigned) ; # <-- 16706
となると思うんですが、
これを、ユーザー定義変数にsetしてからやると、
SET @aaa = 0x4142;
select @aaa ; # <-- AB
select @aaa + 0 ; # <-- 0
select cast(@aaa as unsigned) ; # <-- 0
となってしまいます。
これは、マニュアルなんかによると、set @var = *** で文字列として @var に格納されてしまうからと思うんですが、
変数にSETしつつ、この16進なデータを’数値’として認識させせることは可能でしょうか?
マニュアルの関係ありそうなところを、ずっと(5時間位)探してるんですが、それらしきものを見つけられません。
ちなみにVersionは、5.0.50-Win32です。
0024NAME IS NULL
2008/02/04(月) 22:55:26ID:???使ってくれないときに「これ使え」って指示するのってなんだっけ?
0025NAME IS NULL
2008/02/04(月) 23:12:50ID:???FORCE をつかえ。
0026NAME IS NULL
2008/02/04(月) 23:19:03ID:???select conv(hex(@aaa),16,10); で良いか?
0027NAME IS NULL
2008/02/05(火) 00:13:49ID:h+XFJgnDというSQLで、aaaテーブルとbbbテーブルを結合しています。
LEFT JOINにしているのは、aaaテーブルに登録されている値が
すべてbbbと連結しているわけではないからです。
上記のSQLに
「bbbテーブルのtypeが1であれば、nameが存在する必要がある(NULLは駄目)」
という条件式を入れたいのですが、どのように書けばいいのでしょうか?
IF(bbb.type=1,bbb.name IS NOT NULL)
を追加しても、上手くできませんでした。
0028NAME IS NULL
2008/02/05(火) 00:24:27ID:???USE KEY (…)
0029NAME IS NULL
2008/02/05(火) 02:09:38ID:???マスター・ヨーダ乙
0030NAME IS NULL
2008/02/05(火) 03:08:42ID:???うおー、でけたー!!!
すごく感動しました。
0031NAME IS NULL
2008/02/05(火) 21:10:48ID:s4DX1xogid |name |photo |class
----------------------
1 |yamada |0 |4
2 |tanaka |1 |4
3 |miyata |0 |4
4 |tukaji |1 |4
質問1:
上記のテーブルに select * from `tbl` where `class`=4 order by `photo` desc
とした場合に返ってくる結果って、idの値の大小はキープされたままですよね?
(tanaka,tukajiの順番で…) この認識でOKでしょうか? 一応テストはしたんですが、、
質問2:
上記のselect文のようにphotoの値を降順にして、なおかつidも降順で取得する方法って
ありますか?
優先順位は、photoの値が降順>idの値が降順 です
ど素人なので、質問自体意味不明だったらすみません
回答をよろしくお願いします
0032NAME IS NULL
2008/02/05(火) 21:50:28ID:BphyAXBx0033NAME IS NULL
2008/02/05(火) 21:51:17ID:???order by phpto,id
0034NAME IS NULL
2008/02/05(火) 22:07:34ID:???ありがとうございます!
質問1の疑問についても、間違ってないってことでいいですよね?
ありがとう
0035NAME IS NULL
2008/02/05(火) 22:16:37ID:???1は間違い
0036NAME IS NULL
2008/02/05(火) 23:41:13ID:???まちがってますか?
すみません、どう間違っているのか教えてもらえませんか?
0037NAME IS NULL
2008/02/05(火) 23:57:13ID:???現在望む形で取得できているのはたまたま
0038NAME IS NULL
2008/02/06(水) 01:01:43ID:???SELECT id FROM aaa LEFT JOIN bbb ON aaa.id=bbb.id AND (bbb.type != 1 OR name IS NOT NULL)
0039NAME IS NULL
2008/02/06(水) 04:26:35ID:???自宅の同環境で作成し、問題なく度鬱していたPHPソフトウェアをレン鯖(coreserver.jp)にアップしたところ、
PDOのprepareステートメントでエラーが発生してしまって困っています。
具体的には
$pdo = new PDO(接続文字列)
$stmt1 = $pdo->prepare(クエリ);
$stmt2 = $pdo->prepare(クエリ);
$stmt3 = $pdo->prepare(クエリ);
$stmt1->execute();
$stmt2->execute();
$stmt3->execute();
等と複数のprepareステートメントを作成し、利用しようとした時にエラーになってしまうようです。(原因とは限りませんが)
PHP、PDO、MySQLの組み合わせた場合、設定等によってprepareの同時作整数に制限等が出る場合はあるのでしょうか?
また、複数のprepareステートメントを作成して利用する方法自体について、Webソフトウェア並びに、MySQLの使用方法として、
問題があるのかどうか等、ご教示願えませんでしょうか。
0040NAME IS NULL
2008/02/06(水) 19:20:32ID:???自己解決しました。ありがとうございます。
0041NAME IS NULL
2008/02/07(木) 13:40:29ID:???ありがとう そういうものなんですね 助かりました
0042NAME IS NULL
2008/02/08(金) 17:36:51ID:???ゲームidごとに、同じユーザーのデータが入ったりしています。
仮にuserid ,gameid,updatetimeとします。
この中から、ゲームid関係無く
ユーザーidと、そのユーザーidの持っている時間が最も早いもの
だけを取ってきたいのですが何か良い方法はありますか?
0043NAME IS NULL
2008/02/08(金) 17:43:26ID:???GROUP BY userid
では?
MAXだかMINだか正確ではないけど。
0044NAME IS NULL
2008/02/08(金) 17:44:07ID:???0045NAME IS NULL
2008/02/08(金) 17:44:39ID:???カブりスマソ
0046NAME IS NULL
2008/02/08(金) 17:48:59ID:???ありがとうござました
0047NAME IS NULL
2008/02/08(金) 19:05:23ID:???0048NAME IS NULL
2008/02/08(金) 19:11:57ID:???0049NAME IS NULL
2008/02/08(金) 20:10:31ID:???0050NAME IS NULL
2008/02/08(金) 20:14:24ID:???体重120
0051NAME IS NULL
2008/02/08(金) 20:53:48ID:ENc+AoR00052NAME IS NULL
2008/02/09(土) 00:09:04ID:???ああ、確かに見るからに頭は空っぽだね。
0053NAME IS NULL
2008/02/09(土) 00:48:34ID:???0054NAME IS NULL
2008/02/09(土) 18:33:21ID:???・Prepare configuration
・Write configuration file
まではいくのですが
・Start service
・Apply security settings
が、行なえません。(チェックが入らない。また、パスワードを入力する画面が無いまま「Execute」の画面にいってしまう)
どうすれば良いのか、もしくはどういった点を調べれば良いのか教えて下さい。
005554
2008/02/09(土) 18:50:49ID:???ttp://www.ddsystems.info/ex/ex_cgi/260115.html の 『 Install As Windows Service 』
にチェックが入っていません。(選択出来ないようになっている)
ttp://www.ddsystems.info/ex/ex_cgi/260116.html の画面にいきません。
ttp://www.ddsystems.info/ex/ex_cgi/260117.html の上2つしかチェックが入りません。
自分のパソがwin98だからでしょうか?なにか参考になるサイトなどありましたら教えて下さい。
0056NAME IS NULL
2008/02/09(土) 19:19:24ID:lDXdLt0jサービスというのはXP NT 2000向けの話
98ではサービスとして起動させるのは出来ない。
005756
2008/02/09(土) 19:23:16ID:lDXdLt0jhttp://dev.mysql.com/doc/refman/4.1/ja/win95-start.html
0058NAME IS NULL
2008/02/09(土) 20:42:01ID:???ありがとうございます。熟読してきます。
0059NAME IS NULL
2008/02/09(土) 21:43:48ID:???ってどういう意味?
32ビットなのに6バイト使うの?
許されるの?
0060NAME IS NULL
2008/02/09(土) 22:40:33ID:???0061NAME IS NULL
2008/02/10(日) 00:12:39ID:???知ったか乙
5桁しかねーだろwww
0062NAME IS NULL
2008/02/10(日) 12:29:37ID:???>>2に記載されてませんでしたが、DBDesignerというソフトがあるそうです。
もし使われている方がいましたら、教えて頂けないでしょうか。
MySQL4.1、5.0でも DBDesignerは使えるのでしょうか?
バージョンアップされてないから心配してます^^;
困っているのは
接続できますが、モデルが開けません・・・orz
ということです。
これは、DBDesigner4はMySQL4.1以降には対応していないって事でしょうか。
フリーでかなり良さそうなツールだったので、ダメならすごく残念。
どなたか、ご存知でしたら、どうぞ教えてください。
0063NAME IS NULL
2008/02/10(日) 16:50:13ID:???ヒント。負数
0064NAME IS NULL
2008/02/11(月) 21:16:14ID:???0065NAME IS NULL
2008/02/12(火) 00:05:59ID:tZT7Xc+W今、 ttp://allabout.co.jp/internet/database/closeup/CU20020721/index.htm ここやってます。
ファイル名:tab1.txt
create table tab1 (number int(10) unique not null,name char(40) not null,note char(60));
insert into tab1 values(1,'abcdefg','apple');
insert into tab1 values(2,'hijklmn','banana');
insert into tab1 values(3,'opqrstu',"");
insert into tab1 values(4,'vwxyz',"pine");
insert into tab1 values(5,'あいうえお',"日本語もOK");
insert into tab1 values(6,'かきくけこ',"漢字");
で、select * from tab1;すると、日本語部分(5と6)が表示されません。
my.iniでは[client]、[mysql]、[mysqld]の下に
default-character-set=utf8 を足しました。
0066NAME IS NULL
2008/02/12(火) 00:28:15ID:???WindowsでUTF8を表示できるのか?
[client]、[mysql]はcp932で
[mysqld]だけutf8にするんじゃない?
006765
2008/02/12(火) 00:53:50ID:???ダメでした。全部cp932と全部sjisなど試しましたが、表示されません。
???みたいに出てくれれば良いのですよね?自分の場合、該当部には何も表示されません。
0068NAME IS NULL
2008/02/12(火) 09:18:15ID:???0069NAME IS NULL
2008/02/12(火) 16:00:40ID:nqXO5xFaからの接続しか受け付けないようにするために簡単な方法はありますか?
一応 iptables で遮断したりして外からのアクセスは受けないように
したりして気をつけてるんですが,根本的な解決になってないような気がして.
0070NAME IS NULL
2008/02/12(火) 16:26:29ID:???iptables で全ポートふさいだなら、出入り口無くなってるんだから十分では。
0071NAME IS NULL
2008/02/12(火) 16:32:47ID:???LANの線抜いて、直結のコンソールからメンテ。
これで >>69 しかいない夢の世界。
0072NAME IS NULL
2008/02/12(火) 17:12:59ID:nqXO5xFaFLUSH TABLES WITH READ LOCK;
で固めてしまっても,ダンプからの回復とか
しようと思うと結局 UNLOCK TABLES; しないといけないし.
0073NAME IS NULL
2008/02/12(火) 17:34:31ID:nqXO5xFaTCP ポート使わないようにしてデーモン上げ直して
ローカルコンソールから mysql コマンド
(これは unix ソケット経由で接続?)でメンテすればいいか.
別にローカルコンソールじゃなくても SSH 経由でもいいけど.
0074NAME IS NULL
2008/02/13(水) 23:03:56ID:kRFJlRI3PHPからSQLコマンドを叩いてINSERTする際に、そのこれからINSERTする行のidを知るにはどうすれば一番効率的でしょうか。
0075NAME IS NULL
2008/02/13(水) 23:35:04ID:???007675
2008/02/13(水) 23:39:08ID:???SELECT * FROM [テーブル名] [テーブル名のイニシャル]
が出ますよね?
それで、ある一部のテーブル名だけ
SELECT * FROM '[テーブル名]' [テーブル名のイニシャル]
とシングルクオートで囲まれて出てきます。
このせいでアプリケーションでの検索ができません。
何が原因でしょうか?テーブル作成時もほかのテーブルと同じように作ったのですが・・・
0077NAME IS NULL
2008/02/14(木) 00:03:53ID:W0dvrvI0テーブル名何よ?
0078NAME IS NULL
2008/02/14(木) 00:10:31ID:???inner と outer です。
これ予約語かなんかなのでしょうか?
bgm とか frame とかは問題ありません
0079NAME IS NULL
2008/02/14(木) 00:52:32ID:???新しいデータエンジンFALCONではトランザクション内でセーブポイントを
セットすることができるらしいのですが、
このセーブポイントて何に役に立つのでしょうか?
0080NAME IS NULL
2008/02/14(木) 02:24:45ID:???0081NAME IS NULL
2008/02/14(木) 03:44:12ID:???0082NAME IS NULL
2008/02/14(木) 09:10:23ID:+eBGuLyLあれ,そうだったけか.
すでにすっかり忘れてるな,俺.
最近はケータイでできるみたいだしやってみるか.
0083NAME IS NULL
2008/02/14(木) 09:32:46ID:???0084NAME IS NULL
2008/02/14(木) 11:41:28ID:???予約語。
JOINの時使うでしょ?
0085NAME IS NULL
2008/02/14(木) 11:54:13ID:???そうなのですか。JOIN使ったこと無かったのでわからなかったです。
ありがとうございました
0086NAME IS NULL
2008/02/14(木) 16:49:03ID:DlPYtTfBそのとき、それぞれに上からnumberをつけることはできませんか?
できるならどのようにすればいいか教えてください。
0087NAME IS NULL
2008/02/14(木) 23:38:43ID:???MySQLでEXPLAIN を実行すると、実行プランは表示されますが、実際にかかっ
た時間は表示されません。
クエリの各部分の実際の実行時間はどうやったら取得できるのでしょうか?
(PostgreSQL の EXPLAIN ANALYZE に当たるような機能のことです)
0088NAME IS NULL
2008/02/15(金) 00:34:57ID:???MySQLでコネクションプールを使うと性能が良くなると聞いたのですが、
コネクションプールとは具体的に何のことでしょうか?
いろいろネットで調べてみたのですが、説明が難しくていまいち理解ができないです。。
自分のイメージとしては、通常クライアントから接続がある度にスレッドを生成しているものを、
コネクションプールというものを使って、最初からスレッドを生成しておき、
それを使いまわすというイメージでよいでしょうか?
0089NAME IS NULL
2008/02/15(金) 06:28:27ID:???MySQLクライアントでそのまま実行したらでるけどそれじゃだめなん?
mysql> select * from customer where c_id = 400;
〜
10 rows in set (0.32 sec)
>>88
あってるよそれで。
でもMySQLは新規接続もともと速いから性能向上度合いは少ないよ。
Oracleだと新規接続0.1秒とかかかったりするのでコネクションプール必須。
0090NAME IS NULL
2008/02/15(金) 17:03:12ID:vc/j93idだとインデックスは使われないですが、何か良い方法はないでしょうか
0091NAME IS NULL
2008/02/15(金) 17:10:08ID:???InnoDBにもあるよ > savepoint
トランザクションを入れ子にしたいと思ったことがある人には有用
009287
2008/02/15(金) 17:41:17ID:???> MySQLクライアントでそのまま実行したらでるけどそれじゃだめなん?
ありがとうございます。残念ですが、あまり良くないです。
SQL全体にかかった時間ではなく、細かい実行プランが表示されて、その各パー
トでそれぞれどれだけ処理時間がかかったかを見たいのです。
0093NAME IS NULL
2008/02/15(金) 18:35:46ID:cVT3m7qO以下のようにテストユーザーを作ってみました。
grant all on *.* to testUser identified by 'test';
そして、以下でログインできました。
mysql -u testUser -h 127.0.0.1 -p
ですが、ローカルから以下のようにするとパスワード無しでログインできてしまうのですが、パスワードは利かないのでしょうか?
mysql -u testUser
宜しくお願いします。
(mysql5.0.54)
0094NAME IS NULL
2008/02/15(金) 19:05:33ID:???どうしたらよいでしょう?
0095NAME IS NULL
2008/02/15(金) 19:40:20ID:???0096NAME IS NULL
2008/02/15(金) 21:04:18ID:???以下カラム
id : name : titlebody :mtime : (modification time)
0097NAME IS NULL
2008/02/15(金) 21:05:19ID:???0098NAME IS NULL
2008/02/15(金) 23:58:00ID:???0100NAME IS NULL
2008/02/16(土) 13:34:51ID:???I/Oとかどんな感じでしょうか。
ファイルではなく、
普通に数百MBのデータベースを処理するだけで、
かなりI/Oがあがってしまい、CPUとかメモリには余裕があっても
かなり速度が遅くなってしまいます。
データベースで管理すると管理面で便利そうな反面、
ここがボトルネックになりそうな気がしてます。
識者の方アドバイスおながいします。
0101NAME IS NULL
2008/02/16(土) 17:01:59ID:???数百MB程度で遅いのなら、インデックスが適切に作成されていない可能性あり。
「ファイル入れて」って、「本来ファイルにあるべきデータをテーブルに入れて」って意味?
0102NAME IS NULL
2008/02/16(土) 17:04:40ID:???set @cnt=0;
select @cnt:=@cnt+1,col1,col2,col3 from tbl1, ......
0103NAME IS NULL
2008/02/16(土) 17:06:11ID:???mysqldを削除してしまいました。
yumでmysql-serverをインストールしても見つからないのですが、
mysqldはどこで落とせますか?
0104NAME IS NULL
2008/02/16(土) 20:03:14ID:???説明内容が複数の意味に取れる部分が多すぎて、
内容がはっきり掴めません。
動画ファイルの扱いなどで例えてください。
0105NAME IS NULL
2008/02/16(土) 22:43:10ID:???0106NAME IS NULL
2008/02/17(日) 00:47:28ID:lcJDrNJvinsert into a(a) value("あ");
コマンドラインで打つとうまくいくのですが、perlのDBIではうまくいきません。助けてください。
0107NAME IS NULL
2008/02/17(日) 00:51:27ID:???0108NAME IS NULL
2008/02/17(日) 01:56:04ID:???文字コード
0109NAME IS NULL
2008/02/17(日) 19:27:17ID:???「うまくいきません」を具体的に。
0110NAME IS NULL
2008/02/17(日) 22:02:44ID:mw1ACUy/http://www.nicovideo.jp/watch/sm2336941
伊藤静「じゃあ、次もwww」
後藤邑子「斬ったほうがいい?www」
伊藤「次は斬る?www」
後藤「どうするww」
伊藤「ペンネーム『心が綺麗な天使』から頂きましったww(フンッwww) 私はこの日本に住むのにはピュアすぎます。どのようにしたら天使のような私がこの今の日本に馴染めるのでしょうか?」
後藤「.........ウザい」
二人「キャッハハハハハwwwww」
伊藤「ちょほんとさあ、大丈夫?www」
後藤「おい天使、おいおい自称天使ww」
伊藤「自分が天使だと思ってること自体がちょっと間違ってんじゃないの?っていうねwww」
後藤「うん。ね。ちょっと軽く(精神病院に)通院してみたほうがいいんじゃないの?www もしくは、今の日本に馴染めるようにちょっと汚れちゃえよwwww」
伊藤「それかもう日本出て行ったらいいんじゃないの?www」
後藤「天使が住める国にwwwwwww なんかエルフの国とかに行ったらいいんじゃないの?wwww」
伊藤「妄想の中とかに(プフッww)行っちゃえばいいんじゃないのwww」
後藤「コワイヨーwwwコワイヨーwwwww」
二人「クックックックwwww」
0111NAME IS NULL
2008/02/17(日) 22:15:36ID:???オレが責任をもってゆりしーを嫁にするから、板違いな話題は控えてくれ
0112NAME IS NULL
2008/02/18(月) 11:34:56ID:???まずは環境を。
OS:CentOS release 4.6 Linux version 2.6.9-55.0.12.ELsmp
MySQL:4.0.27
やりたいことは、mysqlとWebデータのバックアップを1日1回で取りたく、
ググルで『mysqldump .sh』などで検索し、それを参考にbackup.shという名称で以下を作ってみました。
#!/bin/sh
cd /home/hoge
tar zcvf /mnt/nas/web-backup/`date +%Y%m%d`/hoge.tar.gz ./web
tar zcvf /mnt/nas/web-backup/`date +%Y%m%d`/hoge-cgi.tar.gz ./cgi-bin
mysqldump -uroot -phoge hoge --opt > /mnt/nas/web-backup/`date +%Y%m%d`/hoge.sql
パーミッションを700に変更し、crontabに登録。
結果、hoge.tar.gzとhoge-cgi.tar.gzはバックアップが取れているのですが、
SQLデータだけファイルサイズ0でバックアップを取れません。
cronではなく手動で、/home/hoge/backup.sh とやるとSQLデータもキチンと取れます。
まずはどこから疑ったら良いでしょうか?
宜しくお願い致します。
0113NAME IS NULL
2008/02/18(月) 13:18:00ID:???0114NAME IS NULL
2008/02/18(月) 13:19:48ID:???ごめん取り消し
mysqldump のパスが通ってないだけとか
0115NAME IS NULL
2008/02/18(月) 13:26:28ID:Ev8JrmO8この原因を突き止めるにはどうすればいいのだろうか.
でかいウェブアプリで,どの処理がこいつの原因に
なっているのかわからず途方に暮れています.
とりあえずチューニング中です,とか何とか言って
ごまかしているけど.
0116112
2008/02/18(月) 15:52:54ID:???有難う御座います。
パスが通っていないのが原因みたいです・・・orz
/usr/local/bin/mysqldump -uroot -phoge hoge --opt > /mnt/nas/web-backup/`date +%Y%m%d`/hoge.sql
に改めたところ、ちゃんとデータが入ったファイルが生成されました。
今まで気にしたことが無かったのですが、いつもは echo $PATH でパスの通りを確認した時
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:(以下略
と、『/usr/local/bin』の記述があるのでパスが通っているものだと思っていたのですが、
crontabの時はrootとは別の.bash_profileが機能しているのでしょうか?
ついで質問で申し訳ないのですが、ご教授いただけますでしょうか?
宜しくお願い致します。
0117NAME IS NULL
2008/02/18(月) 19:59:30ID:???mysql じゃなくて unix の話になっちゃうけど、、、
cron で起動した場合は root ユーザがログインして実行する訳じゃないから
.bash_profile は読み込まれない
必要な環境変数は crontab ファイルの中に記述するか
起動されるスクリプトの中に書いておく
0118112
2008/02/18(月) 20:44:41ID:???すみません、『ここはMySQL板です』って言われるの覚悟だったのですが
話の流れでお聞きできればとおもったので。
/etc/crontabの中にもPATH=設定があるんですね・・・勉強になります。
ご教授有り難う御座いました。
0119NAME IS NULL
2008/02/18(月) 20:47:17ID:DnOVHGDT0120NAME IS NULL
2008/02/19(火) 08:34:43ID:???1つのDBでやる必要性と複数DBがもてるのかどうか
ただ、モールのように複数店等やる場合セッションの引き継ぎ等で
同一DBでやる場合もあるから一様にいえないよね
0121NAME IS NULL
2008/02/19(火) 11:57:30ID:???0122NAME IS NULL
2008/02/19(火) 12:51:39ID:???今はとりあえずプロトタイプとして10涸ほどテーブル持ってる感じ
カラム数は多くても7,8涸で、まあ今後2つとも増やしていく予定
最初は複数DBで運営しようかと考えていたのだけど、ユーザー認証用のtbが既にあるサービスで使うように作ったDBの中に突っ込んじゃった訳ね
摘出してユーザー関連のDB作ってもいいのだけど、こういう作り方ありなのかな〜と思ったので質問させてもらった
機能の拡張性考えたらやっぱりDB分割した方がいい?
0123119
2008/02/19(火) 13:02:21ID:???inner joinで結合したりしてるから無理だ
やっぱ一つのDBで済ますしかないのかな・・・・
0124NAME IS NULL
2008/02/19(火) 13:06:35ID:???0125NAME IS NULL
2008/02/19(火) 17:38:32ID:???0126NAME IS NULL
2008/02/19(火) 21:30:21ID:???0127NAME IS NULL
2008/02/19(火) 23:05:34ID:???0128NAME IS NULL
2008/02/20(水) 00:50:39ID:???ものすごい時間かかるよね
0129NAME IS NULL
2008/02/20(水) 00:51:18ID:???mysql> show variables like 'log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log | OFF |
+---------------+-------+
1 row in set (0.00 sec)
MySQLのバージョンは、5.0を使っております。
0130NAME IS NULL
2008/02/20(水) 07:39:29ID:???my.cnf に次のように書いて mysqld を再起動。
[mysqld]
log = filename
0131NAME IS NULL
2008/02/20(水) 11:07:44ID:u/qQnTAYテーブルロックがかかってしまう問題は
5.1では解決された(る)のでしょうか?
0132NAME IS NULL
2008/02/20(水) 11:24:41ID:???デフラグってどうやってやるんだっけ?
一度ダンプして入れなおすしかないって
聞いたことあんだけどアレ嘘?
0133NAME IS NULL
2008/02/20(水) 14:37:10ID:t1FXjQC1InnoDBにしなければいけない、MyISAMだと使用出来ないと
マニュアルに書いています。
しかし、速度の面からすべてのテーブルをMyISAMにしているのですが、
InnoDBにする利点ってトランザクション・コミット以外にあるのでしょうか?
0134NAME IS NULL
2008/02/20(水) 19:17:37ID:???0135NAME IS NULL
2008/02/20(水) 20:20:46ID:Sgz5aacp本やらネットで調べて
/etc/my.cnf に
[mysqld]
default-character-set=ujis
[client]
default-character-set=ujis
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis
と書き加えてみたのですが、何か上手くいってない雰囲気なのですが。
0136NAME IS NULL
2008/02/20(水) 20:47:07ID:???うちは
cat /etc/my.cnf
[mysql]
default-character-set=ujis
[mysqld]
default-character-set=ujis
で上手くいってますが。
0137NAME IS NULL
2008/02/20(水) 21:17:18ID:o//3cEXb一個のデータベースにまとめたいのですが、
mysqldumpでダンプしてからリカバリーしようとすると、
新しいものに上書きされてしまって、一つにまとめることができません。
なにか良い方法はないでしょうか?
宜しくお願いします。
mysqldumpがテーブル毎にダンプできればいいのですが・・・
0138NAME IS NULL
2008/02/20(水) 22:12:56ID:???MERGEテーブルなんてどうだい?
ttp://dev.mysql.com/doc/refman/4.1/ja/merge.html
0139NAME IS NULL
2008/02/21(木) 00:31:24ID:???OPTIMIZE TABLE という命令がある。
0140NAME IS NULL
2008/02/21(木) 00:33:12ID:???テーブル毎にダンプできるよ。
というか、mysqldump の出力はテキストなんだから好きに加工すればいい
0141NAME IS NULL
2008/02/21(木) 08:58:10ID:???なぜか、/var/db/mysql/{database名}以下にデータが出来てしまい
困っております。
[mysqld]
datadir = /home/xxxx/db
データのディレクトリを変えられるところって他にありましたでしょうか?
ちなみに、環境はFreeBSD6.3R+MySQL5.2です。
どうかお助け下さい
0142NAME IS NULL
2008/02/21(木) 13:24:45ID:???その /home/xxxx/・・・
ってのは、ユーザーのホームdirっぽいんが、ユーザー:mysqlが、読み書き出来るパーミッションがあるのかね?
0143NAME IS NULL
2008/02/21(木) 13:30:57ID:AwIQMyrc0144NAME IS NULL
2008/02/22(金) 15:51:51ID:???遅くなりましたが、ありがとうございました。
0145NAME IS NULL
2008/02/22(金) 21:59:19ID:W58pTgXpc1 c2
001 abc
001 hyu
002 ded
002 iopsa
001 yui
こんな感じにテーブルがあるとします。
これを一度の処理でこんな感じに取り出したいです。
001 abc
001 hyu
001 yui
002 ded
002 iopsa
distinct を使ったりしてみたのですがどうにも上手くいかず…
ご教授お願いします。
0146NAME IS NULL
2008/02/22(金) 23:41:31ID:???意味わからん
select c1, c2 from TBL order by c1,c2;
じゃねーの?
0147NAME IS NULL
2008/02/22(金) 23:55:03ID:???INSERT INTO recipe (aaa,bbb) VALUES('日本語',1);
がエラー1366で実行できません。
設定はutf8です。
INSERT INTO recipe (aaa,bbb) VALUES('abc',1);
であれば、実行できます。
もしかして、utf8に設定していると、コマンドから直接入力が無理なのですか?
0148NAME IS NULL
2008/02/23(土) 00:12:14ID:???cp9332とかが良いってばっちゃが言ってた
0149NAME IS NULL
2008/02/23(土) 00:46:54ID:???cp932
0150NAME IS NULL
2008/02/23(土) 10:35:49ID:plV93xd4MySQLで便利なSQLの実行時間がわかる方法ってないでしょうか?
0151NAME IS NULL
2008/02/23(土) 15:48:17ID:M9EfVzmKselect
a + b
from
〜
こんな感じの場合、a,bどちらかがnullだと結果全部nullになるんですが、
nullは0とて計算したい場合、どのようにすればよいんでしょうか?
m(_ _)m
0152NAME IS NULL
2008/02/23(土) 16:02:37ID:qXPAWXxvCOUNT処理を高速化するために、何か方法はないでしょうか?
前にどっかのサイトで、innoDBでのCOUNT処理を速くするテクニックが書かれていたと思うのですが、
どこだか見つけることができませんでした。
宜しくお願いします。
0153NAME IS NULL
2008/02/23(土) 16:39:57ID:???行レベルレプリケーションとは具体的にはどういうものでしょうか?
0154NAME IS NULL
2008/02/23(土) 16:45:15ID:???innodbのcount(*)検索が遅いのは、クラスタインデックスという仕組みのためらしいです。
これを怪傑する方法としては、force keyを使って、
主キーインデックス以外のカラム(もちろんindexはらないとだめ)を
指定するのが常套手段だったと思います。
これの方法だと、1レコードのサイズが大きいほど劇的に性能あがりますね。
0155>>154
2008/02/23(土) 16:47:39ID:???force keyじゃなく、force indexだった。
select count(*) from test_table force index(col);
0156NAME IS NULL
2008/02/23(土) 16:52:23ID:???そういうときは、caseだ。ばか。
0157NAME IS NULL
2008/02/23(土) 17:18:48ID:???select ifnull(a,0)+ifnull(b,0) ...
0158NAME IS NULL
2008/02/23(土) 17:32:11ID:???今まではクエリを転送してスレーブ側で実行していたが、変更されたレコードデータその物を転送するようになった。
0159NAME IS NULL
2008/02/23(土) 23:01:13ID:rFdPd3m0どのようなコマンドを打てばいいのでしょうか。
0160160
2008/02/23(土) 23:20:53ID:???HDDが飛んでしまったようです。
0161NAME IS NULL
2008/02/24(日) 11:39:20ID:???Handler_read_rnd_nextはテーブルのフルスキャンで何行読んだかを
示しているので、log_slow_queriesに加えてlog_queries_not_using_indexesを
ONにするとどのクエリがやらかしてるのか分かると思う。
>>159
show create view XXX
0162NAME IS NULL
2008/02/24(日) 12:01:12ID:???そのテーブルとテーブル内のフィールドのCollationの値を
すべて変更したいんですが、どうやるのが一番かっこいいんでしょうか?
おねがいします。phpMyAdminは使えます。
0163NAME IS NULL
2008/02/24(日) 14:30:31ID:???DROP DATABASE "DB名";
これが一番最強でクール。
0164NAME IS NULL
2008/02/24(日) 14:46:35ID:???すでにデータが少し入ってるので消したくないんです。
0165NAME IS NULL
2008/02/24(日) 15:13:59ID:???100000 rows in set (1.26 sec)
と表示されます。
1.26secかかったことになっているのですが、実際には25秒かかっています。(
実際の実行時間を表示するにはどうすればよいのでしょうか?
0166NAME IS NULL
2008/02/24(日) 16:05:37ID:???0167NAME IS NULL
2008/02/24(日) 16:09:06ID:???hogeデータベースのfugaテーブルのみにアクセス可能なユーザを
設定したいのです。
0168NAME IS NULL
2008/02/24(日) 16:13:12ID:???釣りですか?
0169NAME IS NULL
2008/02/24(日) 16:47:56ID:PjrHaGxS消費されているからなぁ.その分は1.26秒には
入っていないでしょ.
0170NAME IS NULL
2008/02/24(日) 18:22:21ID:???select count(*) from
(
計りたいSQL
);
というのをよくやる
0171名無しさん
2008/02/25(月) 00:10:58ID:9FzPKS4K頑張って勉強するお
0172NAME IS NULL
2008/02/25(月) 00:24:21ID:???administratorとQueryBrowserいれとけよ、便利だから
0173NAME IS NULL
2008/02/25(月) 00:30:39ID:???1.26secというのはクエリをサーバーに投げてから結果が返ってくるまでの時間。
25秒は表示にかかった時間も計っているのでは?
0174NAME IS NULL
2008/02/25(月) 00:31:59ID:???alter table xxxx convert to charset utf8
とか?
0175NAME IS NULL
2008/02/25(月) 00:34:07ID:???表示をころすわけね
0176NAME IS NULL
2008/02/25(月) 01:53:59ID:z+rzzFbc↑で
「ストアド ルーチン内 (ステートメントをストリングとして動的に構築し、実行する場 ) で動的 SQL を使うことはできない。」
という記述を見つけたんだけど、ストアド内でSQL文字列を構築して実行っていうのができないってことですか?
0177NAME IS NULL
2008/02/25(月) 02:13:10ID:z+rzzFbcselect * from tbl where fld in (@vals);
@valsが動的に変わる場合、↑のようなことをやる良い方法はないでしょうか?
0178phpMyAdminの使いかた
2008/02/25(月) 03:07:09ID:Zgifsms/現在、次の環境でphpMyAdminをインストールしようとしいるのですが最後の"pma"
ユーザに対するパスワードの設定がうまくいきません。
その為、動作確認の為に次のURLにアクセスをしたところトップページ
は表示されるのですが、幾らパスワードを入力しても弾かれてしまいます。(エラー発生)
http://localhost/phpMyAdmin/
【エラーメッセージ】
エラー #1045 - Access denied for user 'pma'@'localhost'
(using password: YES)
【環境】
・Linux(CentOS5)・MySQL5・PHP5
・(phpMyAdmin-2.11.4-all-languages-utf-8-only
(これをインストールする予定)
【phpMyAdminの設定ファイル】
# vi config.inc.php
17 $cfg['blowfish_secret'] = 'tekitounamoziwoireta';
/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
37 $cfg['Servers'][$i]['controluser'] = 'pma';
38 $cfg['Servers'][$i]['controlpass'] = 'pass';
どうすればphpMyAdminを使える様になるのでしょうか?
0179phpMyAdminの使いかた
2008/02/25(月) 03:20:06ID:Zgifsms/【参考サイト】
http://www.okku.jp/wiki/hiki.cgi?(Linux)CentOS+4.1%A4%C7phpMyAdmin%A4%F2%BB%C8%A4%A6
【エラーが発生するコマンド】
set password for pma@localhost=password('pass');
【エラーメッセージ】
ERROR 1133 (42000): Can't find any matching row in the user table
どなたか詳しい方お願い致します。
0180>>165
2008/02/25(月) 10:42:16ID:???みなさんは、性能実測行うときにどのような方法でやられているのでしょうか?
私は、時計使ってやっているのですが、、
0181NAME IS NULL
2008/02/25(月) 11:28:26ID:???MySQLにpma@localhostが登録されてないんじゃね?
0182NAME IS NULL
2008/02/25(月) 17:10:30ID:pyl/7W05300回に1回程度、実行速度が5秒くらいになることがあります。
アクセスが多い(平均35クエリー/秒)ので、それが原因かもしれませんが、
他にひっかかりそうなボトルネックになるような箇所は考えられませんね。
0183179
2008/02/26(火) 01:21:13ID:vmOg1J9DMySQLの登録ユーザに"pma"を追加するという事でしょうか?
(つまり、rootユーザの様にコマンドラインからユーザを追加するSQLを
流すという事)
0184179
2008/02/26(火) 02:19:02ID:vmOg1J9Dありがとうございます。
解決しました^^;
0185NAME IS NULL
2008/02/26(火) 09:47:14ID:yVz26w0r怒られるのですが、10000文字程度を格納しているフィールドがありVARCHARに出来ないのですが、何かよい方法はありますか?
ヨロシクお願いします。
0186NAME IS NULL
2008/02/26(火) 14:39:58ID:???メモリが足りなくてスワップしてるとか
0187NAME IS NULL
2008/02/26(火) 22:58:36ID:1h0phFuNmysqlにインポートしたいのですがERROR 1064 (42000)がでます
mysqlimport -u root -L corpus /dir/data/*.txt
mysqlimportコマンドのどこがいけないでしょうか
0188NAME IS NULL
2008/02/26(火) 23:34:15ID:???エラーの詳細をkwsk
txtファイルの内容は間違いないの?
改行コードが2バイトになってるとか
0189NAME IS NULL
2008/02/27(水) 00:26:54ID:???>300回に1回程度、実行速度が5秒くらいになることがあります。
このとき、MySQLクライアントでshow processlist;したら何かわかりませんか?
0190NAME IS NULL
2008/02/27(水) 01:44:17ID:???080227 10:20:35 [ERROR] Slave I/O thread: error connecting to
master 'replications@hoge:3306': Error: 'Lost connection to
MySQL server during query' errno: 2013
retry-time: 60 retries: 86400
たぶんerrno: 2013がその理由だと思うのですが、
このエラー番号の意味ってどこを見ればわかるんでしょうか?
0191NAME IS NULL
2008/02/27(水) 09:12:12ID:Ry3s+xrT今日だけのデータを取りだしたい時に、下のようにやると、
INDEXが機能せず、フルスキャンになってしまいます。
TO_DAYS(NOW()) = TO_DAYS(field_name)
何か実装方法としていい方法はないでしょうか?お願いします。
0192NAME IS NULL
2008/02/27(水) 09:53:05ID:???日時の場合は、当日以上翌日未満にすればよいです。
0193NAME IS NULL
2008/02/27(水) 12:19:22ID:???INNODBとMYISAMって使い分けをした方がいいでしょうか?
データーベースの中にトランザクションを必要とするものがありまして、
全部INNODBにしているのですが、トランザクションを必要としないものを
MYISAMにするかどうか検討しています。
HPを色々見ても、大して変わらないという人や、むしろINNODBの方が速いという人までいて、
決めかねています。皆さんのご意見をお伺いできたらと思っています。
私は、5.1を使っています。ヨロシクお願いします!
0194NAME IS NULL
2008/02/27(水) 13:09:00ID:???0195NAME IS NULL
2008/02/27(水) 14:47:14ID:3YI/hApE0196NAME IS NULL
2008/02/27(水) 15:11:45ID:???長短所を理解すれば答えはおのずと出るはずです。
>>195
それ、2,3月も前の話でしょ。 もうコバルトの話とかいらんでw
0197NAME IS NULL
2008/02/27(水) 20:50:25ID:IDLP0qwHとして結果が0(ヒットしない)場合、WHEREの条件を無しにして
全体のレコードを取得したいと思います。
上記をどのように変更すればいいのでしょうか?
0198NAME IS NULL
2008/02/27(水) 21:03:08ID:???0199NAME IS NULL
2008/02/27(水) 21:51:08ID:IDLP0qwHすみません、あくまで「id=検索値」の結果が無かった場合に
全体のレコードを取得したいので、最初から全体を取得するのではないです。。
0200NAME IS NULL
2008/02/27(水) 22:08:07ID:???0201NAME IS NULL
2008/02/28(木) 00:09:47ID:???そのシステムが命に関わるような場合、迷わずInnoDB
そのシステムが途中でデータ消えてもいいのでとにかく早くしたい場合MyISAM
(MyISAMでも一時間に一回バックアップとればそんなに問題にはならないでしょう。)
0202NAME IS NULL
2008/02/28(木) 00:26:11ID:???実際違うなら、トランザクション使えるし、InnoDBの方がよくねぇ?
0203NAME IS NULL
2008/02/28(木) 00:34:52ID:???このMyISAMならデータが消えるって、何を前提にしてんだ?
0204NAME IS NULL
2008/02/28(木) 02:13:50ID:???>>201じゃないが、実際に両方とも運用していると、
MyISAMは一ヶ月に1回位、データがクラッシュする。
「XXXX marked as crashed」とかっていうエラーを吐き出す。
その場合は、REPAIRすると95%は直るが、5%はREPAIREも失敗する。
信頼性を犠牲にして速度を速めているのがMyISAMという認識でいる。
0205NAME IS NULL
2008/02/28(木) 09:41:04ID:???読み出しと重ならなくても、更新が多い場合は避けるようにした。
追記だけとか、読むだけのテーブルなら良いと思うけど。
あんまり使ってないけど、MyISAMでもFixedなら壊れたことはないかな。
0206NAME IS NULL
2008/02/28(木) 10:30:38ID:???車に例えれば、時々ブレーキが利かなくなることがあるってことだろ?
Oracleと比べるのは酷だが、どんなに機能が充実してOracleに近づいたといっても、
クリティカルなところ(お金に関わる部分や基幹業務、公共インフラ)では採用できないDBだな。
0207NAME IS NULL
2008/02/28(木) 13:16:55ID:???0208NAME IS NULL
2008/02/28(木) 14:20:53ID:vUxSrTHj全文検索用のインデックスを作って検索を高速化してくれるようなMySQLのアドオンってないでしょうか?
やっぱり正攻法でそういうことは全文検索用のソフトウェアにさせるべきなのでしょうか?
0209NAME IS NULL
2008/02/28(木) 14:57:51ID:???それはちょっとちゃうな。
君はコンビニに買い物に行くとき、防弾チョッキ着て、護衛を付け、
遭難用携帯食料3日間分を念のため持って出かけるわけかい?
0210NAME IS NULL
2008/02/28(木) 19:00:53ID:???どっちも両極端な意見すぎ!
特徴を理解した上で適材適所で使え。
0211NAME IS NULL
2008/02/28(木) 23:43:23ID:???誰もMySQLの信頼性の話してない。
壊れやすいといっているのはMyISAMの話。
MyISAMの信頼性の話をしている。
MyISAMの信頼性が低いのは事実だが、
全体バックアップ+バイナリログで普通に復旧できるので壊れてもすぐに復旧できる。
0212NAME IS NULL
2008/02/28(木) 23:46:25ID:???おれの周りでは、"ミィザム"とか"マイサム"とか
"エムワイアイエスエーエム"とかいろいろなんだが、
統一しないか?
0213NAME IS NULL
2008/02/29(金) 00:00:14ID:???0214NAME IS NULL
2008/02/29(金) 00:41:08ID:???Tritonn
0215NAME IS NULL
2008/02/29(金) 00:42:11ID:???0216NAME IS NULL
2008/02/29(金) 01:33:15ID:???0217NAME IS NULL
2008/02/29(金) 03:23:40ID:???なぜか新しい環境でユーザーは適用されているもののパスワードが反映されないです。
パスワード無しで接続できてしまい、逆に前の環境のパスワードを指定すると弾かれます。
mysql.userテーブル見てみたんですが、一応それぞれのユーザーに別々のパスワードは付与されているみたい。
なんでパスワードが適用されないんでしょう
教えてえろい人
0218NAME IS NULL
2008/02/29(金) 11:38:26ID:???0219NAME IS NULL
2008/02/29(金) 13:28:53ID:q3z3v3NLこういうものがあったとは.
namazu とかで別途全文検索機能は実現するかぁ,
とか思っていたけどこりゃ便利そうだ.
というか,MySQL の FULLTEXT っていつの間にか
UTF-8にも対応していたのか.といっても分かち書きが
必要なので結局は Tritonn のお世話にならなきゃってことですね.
0220NAME IS NULL
2008/02/29(金) 18:05:13ID:???mysql> select sum(1+2) as sum from dual;
+----------+
| sum |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
この場合、sumと問い合わせ時間(0.00 sec)を返してほしいです。
0221NAME IS NULL
2008/02/29(金) 18:24:59ID:???度々似たような質問を見かけるんだが、
前スレにもあったように、問い合わせの時間が表示されるのは、mysql(クライアントプログラム)の独自機能であって、
mysqld(サーバー)の機能ではない。
よって時間を得たければ、例えばPerlなら、use Time::HiRes ; とすりなり、
PHPなら microtime(true) するしかないじゃないの。(てか俺はそうしてる。)
0222NAME IS NULL
2008/02/29(金) 19:16:51ID:???Win機でODBC接続してVB6でデータ取得について質問
MyODBC-3.51.06試したけどダメだった...
で myodbc-3.51.06-conv_ujis.zip 拾って使ってます。
HPからのリンク切れてるけどこれ使ってもいいの?
0223NAME IS NULL
2008/02/29(金) 21:18:05ID:???移動したいのですが、
.frm .MYD .MYI をそのまま移動させて
使用することってできるのでしょうか?
以前SQL文でエクスポートしてたんですが、
文字化けとかでかなり手こずった記憶がありまして、
できれば簡単な方法が良いなと思っています。
0224NAME IS NULL
2008/02/29(金) 21:26:22ID:dsP0ZzyDエラーを起こします。
mysqlのバージョンは一緒だし、文字コードも show variable で見るとmasterと
slaveは同じものだし、、、
どうもバイナリー項目の辺りでおかしいのかな?と思いますが、なぜだかわかりません。
どなたか、解決方法ご存知の方、おりませんか?
0225NAME IS NULL
2008/02/29(金) 23:13:19ID:i7o2Y2Yb1万件の場合と、1000万件の場合で処理速度が大幅に変わりますか?
ログ系のテーブルなので、これからどんどん溜まっていったときに、
どんどん処理が遅くなるんじゃないかと不安に思っているのですが・・・
InoDBは確かBTREEだったと思いますが、BTREEの作成コストがその大きさに依存するかどうか知りたいです。
宜しくお願いします。
0226NAME IS NULL
2008/03/01(土) 01:32:50ID:???同じバージョンならできる。
0227NAME IS NULL
2008/03/01(土) 01:33:24ID:???バイナリログの中のエラーになったクエリを見ればいいんじゃないかな。
0228NAME IS NULL
2008/03/01(土) 10:51:32ID:???レプリケーションの方式として、
1master-複数slave
という方式と
mutil-master
という方式があるみたいなのですが、
どういう場合にどちらを選ぶべきなのでしょうか?
変わる。
もちろんインデックスのサイズとメモリ量による。
ログ系のテーブルなら、そんな複雑なインデックス貼らないだろうし(created_onとserver_idとstatusくらいか)
1000万件くらい大丈夫だと思うが。だめならパーティショニング。
それよりストレージエンジンをどうするか考えたほうがいいと思う。InnoDBかMyISAMかARCHIVEか。
>>228
シングルマスタはマスタがフェイルポイントになる。
マスタが死ぬと更新がまったく出来なくなる。
スレーブ1台をマスタに昇格させて復旧させる。
デュアルマスタはフェイルポイントがない。
auto_increment問題は、auto_increment_incrementとauto_increment_offsetを設定すれば大丈夫。
unique keyの重複したINSERTと、同一行の更新をどうするかが問題となる。
追加・更新のクエリを片方に寄せるというのも手。
3台以上のマルチマスタは手間の割にあまり利点ないので略。
0230NAME IS NULL
2008/03/01(土) 17:49:39ID:4HUS0plAスレーブであるっていう設定のこと?
んで,3台以上ってのはそれをリング状にしたってこと?
0231NAME IS NULL
2008/03/01(土) 19:12:32ID:???0232NAME IS NULL
2008/03/01(土) 19:13:47ID:???0233NAME IS NULL
2008/03/01(土) 19:40:11ID:???そう。
あと、それぞれのマスタにスレーブをぶら下げたりもできる。
0235NAME IS NULL
2008/03/01(土) 23:52:18ID:4HUS0plAデュアルマスタまではやったことあるけど,
リング状ってのはまだやったことないな.
同じデータベースに対していどちらのマスタでも
更新ってのは怖くてやったことがない.
0236NAME IS NULL
2008/03/02(日) 01:26:02ID:???俺もあまりよくしらないが、考えてみた。
まず、1マスタNスレーブの場合。
参照するたのslaveサーバが複数あるのだから当然、参照の負荷分散になる。
更新するためのmasterサーバも参照のアクセスと競合しないので、
負荷分散になるんだと思う。
>>229の指摘でマスタが壊れたら更新ができなくなるといっているが
それはmutil-masterも同じことだ。
確かに更新はできるが、データの不一致が起こるので、
むしろ障害発生時に更新をとめるような仕組み必要ではないか。
次、multi-masterの場合。
1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。
更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
更新については全く負荷分散にはならないんだと思う。
>どういう場合にどちらを選ぶべきなのでしょうか?
結論としては、更新が比較的多い場合、1マスタnスレーブを考えるべき。
参照メインで更新が殆どない場合、mutil-masterということになるんだろう。
0237NAME IS NULL
2008/03/02(日) 02:24:27ID:???0238NAME IS NULL
2008/03/02(日) 02:44:46ID:LX2+C4Njmysqlで、間違えてデータベースを作ってしまいました。
その間違いを訂正しようとして、mysqlに登録したroot権限で
入っても、何をしたら良いかわからなくて。。
全部無かったことにしたくて、アンインストールしたりしましたが、
またインストールしたら間違えた設定のまま消えません。
完全に消去するには、どうすれば良いのでしょうか?
ちなみにosはfedora8です。
0239NAME IS NULL
2008/03/02(日) 09:48:34ID:???まいあいさむ
0240NAME IS NULL
2008/03/02(日) 09:50:37ID:???4→5で認証方法変更されてるんだが
> >>229の指摘でマスタが壊れたら更新ができなくなるといっているが
> それはmutil-masterも同じことだ。
いいえ。
> 確かに更新はできるが、データの不一致が起こるので、
『データの不一致』はどのサーバ間をさしている?
> 次、multi-masterの場合。
> 1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
> 参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。
シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
# というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
> 更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
> 更新については全く負荷分散にはならないんだと思う。
ここだけは合っている。
しかし、5.1の行レプリケーションを考慮した場合は間違いになる。
全般的にめちゃくちゃだ。
レプリケーションの仕組みをもうちょっと学んだほうがいい。
0242>>236
2008/03/02(日) 15:14:39ID:???>> 確かに更新はできるが、データの不一致が起こるので、
>『データの不一致』はどのサーバ間をさしている?
故障したサーバとそれ以外のサーバ。
たとえば、3台でリング上のレプリケーション組んでるとするだろ。
それぞれ、A、B、Cとする。データの流れは、A→B→C→A...とする。
Bが壊れた場合、AからCのデータの流れが途絶えるわけだから、
Cの更新はAに反映されるが、Aの更新はCに反映されない。
>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。
>しかし、5.1の行レプリケーションを考慮した場合は間違いになる。
そのとおりだね。間違いでした。
0243NAME IS NULL
2008/03/02(日) 15:23:45ID:???というか俺の頭が悪いのかorz
で、>>241に聞きたいのですが、
>どういう場合にどちらを選ぶべきなのでしょうか?
に対する答えは、>>236さんの答えでは不十分ってこと?
そこらへんを解説きぼんぬ。
0244NAME IS NULL
2008/03/02(日) 20:41:09ID:Fblr/lknストアドプロシージャ・ファンクションを使わずに
するにはどうしたらいいですか?
例sql文を教えてください。
0245NAME IS NULL
2008/03/02(日) 21:28:44ID:???mysqlの文字コードはsjisにしてる?それともutf8?
vistaだとutf8が4バイトらしいんだが・・
0246NAME IS NULL
2008/03/02(日) 22:05:28ID:???0247NAME IS NULL
2008/03/02(日) 23:33:09ID:???They can be encoded with 8, 16, or 24 bits, as in utf8
0248229
2008/03/03(月) 12:49:38ID:???>>『データの不一致』はどのサーバ間をさしている?
> 故障したサーバとそれ以外のサーバ。
> たとえば、3台でリング上のレプリケーション組んでるとするだろ。
> (略)
そうだね。だから3台以上のマルチマスタはあまり意味ないよ。
と、すでに229に書いた。
考えるならシングルマスタとデュアルマスタだけにした方がいいだろう。
『データの不一致』はデュアルマスタの場合にはどうなる?
3台以上のマルチマスタしか考えていない?
>>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
>># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
> mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。
あなたは『1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う』と書いているけど、増えないでしょ。1マスタNスレーブでマスタを参照してもかまわないわけだし。
1マスタ1スレーブの場合もデュアルマスタの場合も、参照は2台からできる。
>>243
> レプリケーションって難しいねw
いや、そんなに難しくないよ。5.0までのは、
マスタ: クエリを実行 -> 実行終了 -> 更新系のクエリなら(ちょこっと変えて)バイナリログに書く
スレーブ: マスタからバイナリログを取ってくる -> 実行
ってやってるだけだし。bin/mysqlbinlogで見ると分かるが。
> >どういう場合にどちらを選ぶべきなのでしょうか?
> に対する答えは、>>236さんの答えでは不十分ってこと?
不十分つーか、236のは過程もひどいし結論は意味不明すぎる。
シングルマスタとデュアルマスタの得失を229に書いといたから、自分の環境にあわせて選べばいい。
でも、228の人のレベルからするとシングルマスタの方がいいと思うが...デュアルマスタはフェイルポイント無くなるけど、代償も多いからハマりそう。
0249NAME IS NULL
2008/03/03(月) 17:55:10ID:ABajaOyx見たのだけれど、update行のバイナリー項目で変にスペースが入ったり\0が並んでたりで、、、
バイナリーログにも出力文字コードがあったりするのでしょうか?
なぜ syntaxエラーなのか、、、
0250NAME IS NULL
2008/03/03(月) 23:27:48ID:???個人でも商売でもバイナリデータを直接操れよ
データベースやエクセルとかいうやつは初心者だよ
-----
と言われたんですが
0251NAME IS NULL
2008/03/04(火) 00:01:37ID:???0252NAME IS NULL
2008/03/04(火) 01:37:03ID:2te2Hachこの場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
勘違いかな。。。
>>1マスタNスレーブでマスタを参照してもかまわないわけだし
> この場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
> 勘違いかな。。。
そういう風に使うことも多いが、別に決まっている訳じゃない。
更新よりも参照のほうがはるかに多いなら、マスタも参照して全体の負荷下げるほうがいいし。
大きいトランザクションを投げることがあるなら、レプリケーションに遅れが出るけど、
その遅れが許されない場合はマスタを参照すべきだし。
0254NAME IS NULL
2008/03/04(火) 06:13:01ID:???遅レスだが、OSも再インストールすればOK
0255NAME IS NULL
2008/03/04(火) 08:09:26ID:???発想がすごいな。データベース触らないほうがいいかも知れないよ。
0256NAME IS NULL
2008/03/04(火) 09:31:06ID:???まちがえたデータベースを削除すればいいだけではないの?
0257NAME IS NULL
2008/03/04(火) 11:09:12ID:???ディスク上には残ってるから完全に消したことにはならない
OSインストールしなおしてもデータベースが作られた
場所によってはそれでもまだ消えずに残っているかもしれない
HDD消去ツールを使って完全に消去してから
OSのインストールとMySQLのインストールをすることを薦める
0258NAME IS NULL
2008/03/04(火) 13:49:23ID:???PHP
0259NAME IS NULL
2008/03/04(火) 19:51:00ID:Wg0XzILfみんなー!!! releaseは予約語だぞー!!!
カラム名に使ったらダメだぞーーーー!!!!!
でもバッククォートでくくれば使えるぞーーーー!!!!
http://dev.mysql.com/doc/refman/4.1/ja/reserved-words.html
は、あくまで4.X系列のマニュアルだぞーーー!!!
http://www.rfs.jp/sb/sql/02/01.html
が参考になるぞーーーー!!!!
0260NAME IS NULL
2008/03/05(水) 01:17:03ID:???何、このきちがい。
0261NAME IS NULL
2008/03/05(水) 11:22:43ID:???どうせならこっちを参考にすればいいのに。
http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html
0262NAME IS NULL
2008/03/05(水) 11:46:59ID:j7//b68Fmy-medium.cnf
my-large.cnf
my-huge.cnf
それぞれどの程度のマシンスペックを想定してるんでしょうか?
最近は2Gオーバーのマシンも珍しくなくなっているので、
策定時の大きさの感覚とはギャップが出てきてるんじゃないかとも思うのですが・・・
0263NAME IS NULL
2008/03/05(水) 12:04:09ID:PwmTWvdfごえぇぇぇぇぇっ! 5.1版って和訳されてたのぉぉぉぉ!?!?!?!?!?!?!?
うぎゃぁぁぁぁあっぁあぁ!!!!!
ヘーターこーいぃぃぃたーーーーーーー!!!!!
俺の半日を返せええええぇぇぇぇぇぇぇぇえぇぇぇぇぇっっっ!!!
0264NAME IS NULL
2008/03/05(水) 17:41:55ID:???DB専用サーバか、apacheやアプリケーションサーバと共有するか、DBの負荷程度、etc・・
状況によってどれをテンプレにするか決める。
メモリのギリまで各サービスに最適なメモリを命一杯割り当てる。
決してスワップさせないように。
0265NAME IS NULL
2008/03/05(水) 21:46:04ID:XFVJ2OUC以下のようなテーブルがあったとき、
ID | DAT1 | DAT2 |
1 | 1 | 2 |
2 | 1 | 3 |
3 | 2 | 1 | ← ×
4 | 3 | 1 | ← ×
すでにあるdat1とdat2の逆は登録させたくないのですが、どのようにすれば良いでしょうか?
my-huge.cnfでもかなり少なめの設定。
KLabの記事でも読むといい。
0267NAME IS NULL
2008/03/05(水) 23:13:30ID:???nameフィールドの中に入っている項目が多い順にソートして、なお且つ重複を取り除いて抽出するにはどういったSQLを書けばいいでしょうか?
この例では
りんご
みかん
ぶどう
という順に、入っているデータが多い順に一つにまとめて取り出したいです。
ID name
------------
01 りんご
02 みかん
03 ぶどう
04 りんご
05 りんご
06 みかん
07 りんご
08 みかん
宜しくおねがいしますm(_ _)m
マニュアル読めよ。
0269NAME IS NULL
2008/03/06(木) 08:57:15ID:???0270NAME IS NULL
2008/03/06(木) 09:17:39ID:???0272NAME IS NULL
2008/03/06(木) 09:23:00ID:UrAOuO7y0273NAME IS NULL
2008/03/06(木) 11:58:06ID:???おそらく設計が間違ってる気がするけど、とりあえずtriggerでも使えば?
(5.0以降だよね?)
0274NAME IS NULL
2008/03/06(木) 13:26:01ID:???正規化して dat1,dat2 を別テーブルにもつ
別テーブルに、IDと datで uniqueインデックスを貼る
0275NAME IS NULL
2008/03/06(木) 20:46:55ID:Ai2/bdLUphpでmysqlを使っているのですが、並び替え(order)ではなく任意の行を
最初に取得することはできますか?
|0001|hoge1|
|0002|hoge2|
|0003|hoge3|
orderだと、hoge1,hoge2,hoge3と取得することはできますが、
hoge2(任意),hoge1,hoge3という順番で参照する方法を探しています。
最悪、ループを二回にわけようかとは思いますが。
よろしくお願いします。
0276NAME IS NULL
2008/03/06(木) 20:58:36ID:???order by (id='0002') desc, id
じゃダメ?
0278NAME IS NULL
2008/03/06(木) 21:25:21ID:???オレならソート用のマスタテーブルを joinして sortカラムとかで order する
0279NAME IS NULL
2008/03/07(金) 23:35:42ID:???それを認証代わりにすることはリスキーでしょ。
暗号鍵を併用したほうがいい。
0280NAME IS NULL
2008/03/08(土) 02:20:04ID:???激重仕様だなw
0281NAME IS NULL
2008/03/08(土) 14:40:21ID:C6vdEUqT0282NAME IS NULL
2008/03/08(土) 16:46:49ID:???0283NAME IS NULL
2008/03/08(土) 19:21:32ID:???マスクごと制限しろ
0284NAME IS NULL
2008/03/08(土) 23:07:54ID:???「mysql IN」でぐぐってもINの部分が全く考慮されない検索結果しか出ない(´Д`)
0285NAME IS NULL
2008/03/08(土) 23:11:39ID:???orの代わりに使うもの
select hogehoge in (10,20,30) とあれば
hogehogeが10,20,30のいずれかのものが得られる
0286NAME IS NULL
2008/03/09(日) 00:20:40ID:???なるほど。
SELECT hogehoge FROM aaaaa WHERE hogehoge = 10 OR hogehoge = 20 OR hogehoge = 30;
と同じ結果が返ってくるのですね。
0287NAME IS NULL
2008/03/09(日) 03:21:58ID:???PHPからCALLすると can't return a result set in the given context と出ます。
コマンドプロンプトでCALLすると、表が表示されるのですが
どうすれば良いでしょうか。 よろしくお願いします。
0288NAME IS NULL
2008/03/09(日) 09:36:22ID:???スレ違い、と言いたいところだが優しくしてあげよう
mysqli関数群を使わないとダメです
0289NAME IS NULL
2008/03/11(火) 02:36:31ID:???ぐぐる前にマニュアル嫁
0290NAME IS NULL
2008/03/11(火) 13:54:45ID:???停止できなくなっちゃいました。なんででしょう?
誰かわかったら教えてください。(T_T
エラー:MySQLを停止中にエラーが発生しました。 [0]
とでてます。
前に一度phpMyAdminにアクセスできなくなってパスワードをリセットしようと
したんですが、なんかうまくいかなくて結局再インストールしました。
とりあえず、アクセスできなくなった原因(Cookie)を消去してました。
それが原因かわかりませんがそれ以降再インストールしてもMySQLがXAMPPの
コンパネから終了できなくなりました。
OS:Win
MySQL 5.0.51a
XAMPP 1.6.6a
phpMyAdmin 2.11.4
xampp\mysql\data\.errの書き込み
080311 10:50:33 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 11:59:51 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 12:04:05 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
080311 13:23:56 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
080311 13:23:57 InnoDB: Started; log sequence number 0 0
080311 13:23:57 [ERROR] Do you already have another mysqld server running on port: 3306 ?
080311 13:23:57 [ERROR] Aborting
080311 13:23:57 InnoDB: Starting shutdown...
080311 13:23:59 InnoDB: Shutdown completed; log sequence number 0 43655
080311 13:23:59 [Note] MySql: Shutdown complete
よろしくお願いします
0291NAME IS NULL
2008/03/11(火) 16:27:44ID:???0292NAME IS NULL
2008/03/11(火) 18:48:39ID:???You are a fool boy!
0293NAME IS NULL
2008/03/12(水) 11:37:07ID:???起動してないから停止できないんじゃないの?
0294NAME IS NULL
2008/03/12(水) 18:43:33ID:???操作ミスか設定ミスか。
0295NAME IS NULL
2008/03/12(水) 21:28:16ID:/qYtQmQPwhere IF(a is null,b=1,c=1)
みたいな感じにしてるんですけど、これを入れ子にするにはどうすればよいのでしょうか?
where IF(a is null,IF(b is null,〜,〜),c=1)
イメージはみたいな感じです。
MYSQL4.1.20
0296NAME IS NULL
2008/03/13(木) 00:36:27ID:???ん?それでええやん
0297NAME IS NULL
2008/03/13(木) 02:18:21ID:???あるレコードのサイズをMySQLの関数とかで求める方法ってありますでしょうか?
0298NAME IS NULL
2008/03/13(木) 09:30:48ID:7ofIu9vEあぁ〜。
エラーをキチンと読んでませんでした。
どうもありがとう。
0299NAME IS NULL
2008/03/13(木) 11:06:32ID:???本当は何がしたいの?
その手の質問の時に本当にやりたいことは「レコードのサイズを求める」じゃない事が多いんだけど。
0300NAME IS NULL
2008/03/13(木) 14:59:48ID:oJPAtZrAブラウザ側に
okuri.html
<A/ href="tt.php?a=777">777を送信</A>
サーバーサイドに
tt.php
<?php
print $_get["a"]."を受信";
?>
とファイルを置いても実行すると
を受信
としか表示されません。スーパーグローバル変数の綴り間違いとかじゃないと思ったんですがわかりません。お助けください。
0301NAME IS NULL
2008/03/13(木) 15:00:33ID:???0302NAME IS NULL
2008/03/13(木) 15:11:13ID:???間違えるなら「はみちつ」くらい面白いことやって。
0303NAME IS NULL
2008/03/13(木) 15:23:45ID:???可愛いから許す
0304NAME IS NULL
2008/03/13(木) 15:56:45ID:???webprog池。
といいつつ、 _GET って大文字じゃないといかんのじゃないかと。
0305NAME IS NULL
2008/03/13(木) 16:25:21ID:???解決した。サンクス
0306NAME IS NULL
2008/03/14(金) 16:54:43ID:3GRgoYZ0select
a_date,
b_date
from
a,b
aとbとのdateを足して、日付はユニークで
一つにまとめて欲しいのですが、、
どうすれば?
0307NAME IS NULL
2008/03/14(金) 16:59:44ID:???a, b はテーブル?
欲しい値は?ユニークとは?
好きな物は最初に食べるタイプ?
0308NAME IS NULL
2008/03/14(金) 17:04:51ID:???a_date + b_date as hoge
from
a,b
0309NAME IS NULL
2008/03/14(金) 17:24:30ID:???306の要求通り合計してあげるなんて親切ですね。
0310NAME IS NULL
2008/03/14(金) 17:37:09ID:3GRgoYZ0早速の回答ありがとうございます。
ただ、結果が
hoge
4006
4007
4008
みたいに、日付でないなぞの数字になってしまうのですが・・
どうしてでしょう?
0311NAME IS NULL
2008/03/14(金) 19:25:13ID:???そもそも日付と日付を加算する、という意味が分からない。
日付と日数なら分かるけど。
0312NAME IS NULL
2008/03/14(金) 19:55:29ID:???=2008÷2÷29 - 2007÷2÷28
=34 - 35
= -1
答え -1
~~~~~~~~~
0313NAME IS NULL
2008/03/14(金) 20:25:25ID:???0314NAME IS NULL
2008/03/15(土) 01:30:43ID:HlMwlm98ごめんなさい。
1日プラス(足す)って表現は、一般常識で考えると
2008/01/01+2008/01/02で4016年02月03日
と確かになります。
表現がちょっと難しかったかもしれません。
ごめんなさい。
頭の悪い人に、聞いて一応問題は解決しました。
0315NAME IS NULL
2008/03/15(土) 17:58:02ID:???0316NAME IS NULL
2008/03/15(土) 19:32:24ID:???0317NAME IS NULL
2008/03/15(土) 21:54:30ID:KoOOhNjoバックアップが取れるようにしたいと思っています。
mysqldump -u root -p パスワード hogehoge < test.sql
(hogehogeはテーブル名)
とすればいいのでしょうか?
0318NAME IS NULL
2008/03/15(土) 22:21:31ID:???mysql -u root -p パスワード hogehoge < test.sql
0319NAME IS NULL
2008/03/16(日) 13:02:48ID:x85Y71fwTomcat5.5からJNDIを使ってMySQLに接続しようとすると、
Access denied for user 'user'@'localhost' (using password: YES)
というエラーが出てしまいます。
mysql -uuser -p testdb
として、JNDIの設定と同じパスワードを入れると入れます。
0320290
2008/03/17(月) 10:33:56ID:???ウイルスソフトとファイアーフォールが悪さしてたみたいで、
それを切ってインストールしなおしたらうまくいきました。
>293
おそらくその通りだと思います。
コマンドプロンプトでもうまく作動しなかったので。
上記インストールしなおしたらうまくいきました。
初歩的なところでつまずいてお手数をおかけしました。
これから色々勉強しときます。
うまくいきました。
0321NAME IS NULL
2008/03/17(月) 12:39:13ID:CtPRxUzOAテーブルとBテーブルがあり、それを一緒にしてSELECTしたいのですが
こういった結合はできないのでしょうか?
Aテーブル
id | hoge | aaa | bbb | ccc
Bテーブル
id | hoge | ddd | eee | fff
SELECT `id`,`hoge` FROM Aテーブル;
SELECT `id`,`hoge` FROM Bテーブル;
この2つのSQLを1つにまとめて、AとB両方から id と hoge カラムデータを
持ってきたい。
0322NAME IS NULL
2008/03/17(月) 12:53:16ID:???0323321
2008/03/17(月) 13:58:39ID:???ありがとです。
SELECT `id`,`hoge` FROM Aテーブル
UNION ALL
SELECT `id`,`hoge` FROM Bテーブル;
でできました!
0324NAME IS NULL
2008/03/17(月) 20:54:44ID:I74vD0d5MySQL5.0.45を使用しております。
正確には、5.0.45-Debian_1ubuntu3.1です。
今回windowsからLinuxに変えてみようと思い色々設定しています。
メモリの挙動についてお伺いしたいのですが、key_buffer=256Mとしているのにtopコマンド確認上では130M程しか使用しておりません。
このほかにも色々メモリを多めに設定しているのですが依然変わらずです。
全体メモリは512MBでスワップは発生していません。
windows(MySQL5)の時は設定したメモリ分だけ予め確保するような挙動でした。
Linuxでは使用限界値として設定され、必要に応じてその範囲まで徐々に使用されていくと言うようなものなのでしょうか?
まだまだ勉強不足で申し訳ありませんが、アドバイス頂ければ幸いです。
0325NAME IS NULL
2008/03/18(火) 00:20:32ID:saWXbSutストアドプロシジャ使うのとどちらが早いんだろ?
0326NAME IS NULL
2008/03/18(火) 02:14:37ID:???MySQL5.0とConnector/Jの5.1の組み合わせだとSELECTのASで別名とか使えないんですね…
Connector/Jを5.0にすると問題ないのですが、そういうものなのでしょうか。
0327NAME IS NULL
2008/03/18(火) 07:43:16ID:???UNION ALLだとSQL内で完結するから、
ストアドとSQLのコンテキストスイッチが無い分UNION ALLの方が早い
・・・と思う
0328NAME IS NULL
2008/03/18(火) 11:09:13ID:???0329NAME IS NULL
2008/03/18(火) 16:38:17ID:???ORDER BY hoge_id DESC, hoge_id2 DESC
hoge_idで降下順でソートして同じ値のものはhoge_id2の降下順になるようにしたいです
0330NAME IS NULL
2008/03/18(火) 17:01:41ID:???画面上のテキストエリア(?) に SQL を書いて、 Ctrl + Enter を押せば SQL が実行されますが、
CSE や OsqlEdit みたいに、テキストエリア内に複数 SQL を書いて、
「マウスで選択して、選択した文字列を SQL として実行」
はできないのでしょうか?
Ctrl + Enter を押すと、テキストエリア内の文字列をすべて実行しているように見受けられます。
なので、複数 SQL を書いて、実行したい SQL の行頭に # をつけたり消したりすることで切り替えています。
これができたら CSE や OsqlEdit みたいで使い勝手がいいんだけどなぁ・・・
0331NAME IS NULL
2008/03/19(水) 01:00:35ID:???ハンドル数が常時4600程度だったのがMySQLサービス起動直後でも39000程度もあり
少し使っていると42000とか増えていく
65000とかハンドルを消費するとWindows自体が不安定になったことがあるけど大丈夫なのか?
0332NAME IS NULL
2008/03/19(水) 01:48:10ID:???0333NAME IS NULL
2008/03/19(水) 02:13:44ID:???0334NAME IS NULL
2008/03/19(水) 02:13:53ID:???0335NAME IS NULL
2008/03/19(水) 02:54:14ID:???何この馬鹿
0336NAME IS NULL
2008/03/19(水) 13:17:56ID:FDALPhtbデータベースにアクセスするソフトが2つあって
どちらか片方だけなら普通にアクセスできるのですが
2つとも立ち上げると後から立ち上げたソフトの方がデータベースのオープンに失敗してしまいます。
(mysqlが入っているOSがXPの場合は問題なく2つのソフトでDBアクセスできます)
OSの違いによって何かmysql側で設定が必要なのでしょうか?
0337NAME IS NULL
2008/03/19(水) 13:43:23ID:???ORDER BY hoge_id DESC, hoge_id2 DESC
hoge_idで降下順でソートして同じ値のものはhoge_id2の降下順になるようにしたいです
0338NAME IS NULL
2008/03/19(水) 15:14:53ID:???0339NAME IS NULL
2008/03/19(水) 15:19:57ID:???オレはコンソール派だけど、MySQL Query Browser とか SQLyog とか。
0340NAME IS NULL
2008/03/19(水) 15:30:08ID:???できる
0341NAME IS NULL
2008/03/19(水) 15:30:46ID:???エラーは?
0342NAME IS NULL
2008/03/19(水) 15:33:31ID:FDALPhtbデータベースのオープンエラーとしか・・・
0344NAME IS NULL
2008/03/19(水) 17:35:08ID:???自分で答え書いてるじゃん。
ORDER BY hoge_id DESC, hoge_id2 DESC で正解じゃね?
0345NAME IS NULL
2008/03/19(水) 17:36:34ID:???まさかと思うが、max_connections=1 だったりとか。
0346NAME IS NULL
2008/03/19(水) 18:00:48ID:FDALPhtbすみませんそれはどこでみることができますか><
0348346
2008/03/19(水) 19:39:16ID:???0349NAME IS NULL
2008/03/19(水) 19:42:27ID:???>>347
show variables like "key_buffer_size";
は設定通り?
0350NAME IS NULL
2008/03/19(水) 19:54:31ID:???Windowsを再起動するとInnoDBが壊れてるといってMySQLが起動できなくなるなぁ
かといってinnodb_force_recovery=4で起動してcheck tableしても
InnoDBのあるNTFSのディスク自体をchkdskしても全く問題ないので
InnoDB自体が壊れているわけではないようだ
MySQL 5.0.45以前だと全く問題ないんだが・・・
まぁいいか
スキップしよう
0351NAME IS NULL
2008/03/19(水) 20:33:46ID:FDALPhtbありがとうございます。
ところでそれと同様の設定はMySQL Administratorにもありますか?
0352NAME IS NULL
2008/03/19(水) 21:10:33ID:???ある
0353324
2008/03/20(木) 02:31:15ID:???レス有り難う御座います。
key_buffer_size 2147483648 ということで設定通り2Gになっています。
ubuntu7.1 serverを使っているのですが一つのアプリに使えるメモリ上限みたいなのがあるのかな・・・、my.cnfの設定はこうしていますがおかしな所ありますでしょうか?
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = ujis
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
default-character-set = ujis
character-set-server = ujis
collation-server = ujis_japanese_ci
init_connect = "SET NAMES ujis"
skip-character-set-client-handshake
skip-external-locking
skip-name-resolve
#bind-address = 127.0.0.1
key_buffer = 2G
max_allowed_packet = 16M
thread_stack = 1M
thread_cache_size = 1024
#max_connections = 100
table_cache = 1024
#thread_concurrency = 10
sort_buffer_size = 32M
myisam_sort_buffer_size = 32M
wait_timeout = 10
tmp_table_size = 512M
join_buffer_size = 524288
record_buffer = 16M
query_cache_limit = 16M
query_cache_size = 256M
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
skip-bdb
skip-innodb
max_connections=500
max_connect_errors = 102400
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set=ujis
[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/
0354NAME IS NULL
2008/03/20(木) 04:01:00ID:???仕事でオラクルを使っているのですが、MySQLも勉強してみたいとおもい、
いろいろ調べております。
やはり、MySQLはオラクルと比べて信頼性が低いということなのですが、
こういうシステムには使ってはいけないとかありますでしょうか?
0355NAME IS NULL
2008/03/20(木) 08:18:15ID:???0356NAME IS NULL
2008/03/20(木) 09:22:09ID:???0357NAME IS NULL
2008/03/20(木) 12:05:12ID:OG+4q6QHUPDATE member,item SET member.name='aaa',item.date='2008-03-200'
WHERE member.id='1'
みたいなSQLを書いているのですが、実行されません。
0358NAME IS NULL
2008/03/20(木) 12:29:18ID:???それはMySQLでは出来ない。あきらめよう。
0359NAME IS NULL
2008/03/20(木) 14:00:42ID:???OSのarchはi386?
i386だと、ユーザー空間のメモリは2Gが上限で、MySQLマニュアルのどっかにあったと思うけど、
key_buffer_size以外に、各種クライアントが使用する変数郡をすべて足し合わせた合計が
2Gを越えないように設定しないといけないハズ。
i386でも、PAE-kernel使うとか、自前でコンパイルオプションやスイッチ変更したら2G以上使えるらしいけど、
そこらへんは詳しくない。
つうか、そもそも物理メモリ512Mしかないのに、設定で2Gのメモリを使うようにしてるところが
大問題なんじゃないのかね??
(それが、>>324の現象と関係あるかどうかは知らんが・・)
0360324
2008/03/20(木) 14:22:51ID:???すみません、ここ数日色々試してとっかえひっかえしていたため、情報がごっちゃになってしまいまました。
>>324 の時はメモリ512Mだったのですが違うマシンでメモリ4Gにして試してみたのが>>353です。
OSはubuntu7.1 server、x86、32bit版です。
OS上では4Gを認識しております。
あれから512M、1G、2G、4Gを各上限とする設定を試してみたのですが全て同じメモリ使用量となってしまいます。
LinuxのMySQLも通常は起動時にkey_buffer_sizeで指定したメモリ分だけドカンと使用されるのでしょうか?
0361359
2008/03/20(木) 15:13:57ID:???ウチの環境でやってみら、起動直後には確保されてない。
create tableしたり、create indexしたり、select 〜〜 とかやってると、徐々に増えていくようだ。
ちなみに、Win環境でも、おんなじような増え方するけど・・・。
環境1 CentOS/4.6 mysql/5.0.58 mem/256MB
環境2 WinXp-sp2 mysql/5.0.56 men/1GB
Linuxはtop及びfree、Winはタスクマネージャの「プロセス」->「メモリ使用量」の項目で。
0362NAME IS NULL
2008/03/20(木) 16:21:56ID:???>>359
key_buffer_size=2Gでも、起動直後には確保されない。
もしくはmallocで確保はしているが、未使用なのでLinux kernelが実メモリをまだ割り当てていないのかもしれない。
使っているうちにインデックスがメモリに載るようになる。
その辺、最初からのせたかったらサイボウズラボの奥一穂さんの記事が参考になるかな。
http://labs.cybozu.co.jp/blog/kazuho/archives/2007/10/innodb_warmup.php
MySQL のウォームアップ (InnoDB編)
これはInnoDB用だが、インデックスのところはMyISAMでも使えるんじゃないだろうか。
0363NAME IS NULL
2008/03/20(木) 16:23:13ID:???無理。トランザクションでやるしかない。
0364NAME IS NULL
2008/03/20(木) 16:25:39ID:???> i386だと、ユーザー空間のメモリは2Gが上限で、MySQLマニュアルのどっかにあったと思うけど、
> key_buffer_size以外に、各種クライアントが使用する変数郡をすべて足し合わせた合計が
> 2Gを越えないように設定しないといけないハズ。
Linux kernel 2.6なら、3GBまでいける。
ちなみにPAE使っても、プロセス単体は3GBまでしか無理だと思われる。
0365324
2008/03/20(木) 16:53:48ID:???>>362
>>364
みなさんレス本当に有り難う御座います。
頂いた情報を元にもう少し調べてみます。
因みに以前の環境はwindowsXP SP2 でMySQLは5.0.45-community-nt
搭載メモリは2Gでkey_buffeは1G、その他諸々設定で
起動時には1.6G程コミットチャージされていました。
0366357
2008/03/20(木) 17:09:49ID:???そうですか・・・。マニュアルには出来そうな感じしたのですが、
ちょっと違うみたいですね。。処理を分けて対処します。
0367NAME IS NULL
2008/03/20(木) 19:31:17ID:???機能は有るんだから構文が間違ってるんだろ?
http://dev.mysql.com/doc/refman/4.1/ja/update.html
そのままSQLを分離して上手く動く事は確認済み?
'2008-03-200'←こんなのを見ると大丈夫か?と思うわけだが。
0368NAME IS NULL
2008/03/21(金) 05:57:31ID:vtga5C69なんだか新しいバージョンでは、デフォルトでUTC-8を使うようになってるらしく
DBをEUCで作成して、そこからcgiでアクセスする際に
予め、コネクションが完了した直後に
まず 'SET NAMES ujis' みたいなクエリーを発行しないと、文字化けしてしまう…
phpMyAdminからなんか設定して回避は出来ない よね…(ローカルのだったらMySQLの設定ファイル変更で回避出来るみたいだけど)
0369NAME IS NULL
2008/03/21(金) 05:59:47ID:???○UTF-8
あぁ…
0370NAME IS NULL
2008/03/21(金) 06:23:41ID:???http://puchiko.lowtech.ne.jp/?itemid=314&catid=27
http://puchiko.lowtech.ne.jp/?itemid=332&catid=26
http://puchiko.lowtech.ne.jp/?itemid=349&catid=27
0371NAME IS NULL
2008/03/21(金) 08:14:44ID:pV5z+1bmsetup.php呼び出してセットアップしようとしたら以下のエラー返ってきた。
調べたら「MySqlが起動していない」って事らしいんだけど起動はしてる。
【エラー内容】
Error Message: DB Error: connect failed
Debug: [nativecode=Can't connect to MySQL server on 'localhost' (10061)] ** mysql://root:パスワード@localhost/analysis
ユーザ名やパスワードも合ってるしデータベースも作成済み、phpもちゃんと設定したし。誰か原因分かる人居ない?
0372NAME IS NULL
2008/03/21(金) 08:16:13ID:???サーバはAnhttpdでOSはWinVistaでそ。
環境はこれと言って問題ない筈なんだけど
0374NAME IS NULL
2008/03/21(金) 09:15:49ID:???設定がヘボいと、ネットワーク越しにアクセスできても
ローカルでアクセスできないということはよくある。
0375NAME IS NULL
2008/03/21(金) 09:39:11ID:???設定kwsk
これは「アクセスできない」って事で良いんだろうか。間違いなくmysqlは起動してるんだ。
0376NAME IS NULL
2008/03/21(金) 10:03:06ID:Qg2uDul9どこの画面でやるのでしょうか?
0377NAME IS NULL
2008/03/21(金) 11:52:08ID:???って、少しは努力しろよw
0378NAME IS NULL
2008/03/21(金) 12:12:04ID:???知らないならレスしないで下さい。ウザイです。
0379NAME IS NULL
2008/03/21(金) 15:01:06ID:???MySQL Administrator にあるだろ馬鹿
0380NAME IS NULL
2008/03/21(金) 15:08:12ID:???知らないならレスしないで下さい。ウザイです。
0381NAME IS NULL
2008/03/21(金) 15:08:44ID:???全く努力しない聞くだけチャンはほっとけ。
0382NAME IS NULL
2008/03/21(金) 15:17:42ID:???知らないならレスしないで下さい。ウザイです。
0383NAME IS NULL
2008/03/21(金) 15:33:05ID:???コンソールから
mysqladmin -u root -p xxx
でアクセスできるか?
0384NAME IS NULL
2008/03/21(金) 15:34:14ID:???mysql -u root -p xxx
0385NAME IS NULL
2008/03/21(金) 15:41:50ID:pV5z+1bmメッセージとか出ないなww少し拍子抜けwww
0386NAME IS NULL
2008/03/21(金) 15:44:44ID:???ちゃんとEnter Passwordになるね。
0387NAME IS NULL
2008/03/21(金) 15:46:39ID:???パスワード入力したら
ERROR 1049 (42000): Unknown database 'ぱすわーど'
C:\Program Files\MySQL\MySQL Server 5.0>
あひー
0388NAME IS NULL
2008/03/21(金) 15:52:38ID:???「xxx」はデータベース名だよね?
一応>>371の[analysis]にしたらちゃんと返って来たわ(Welcom to th MySQL monitor)
0389NAME IS NULL
2008/03/21(金) 16:58:03ID:???起動はしてるんだな。じゃ、ポート番号が合ってないんじゃね?
0390NAME IS NULL
2008/03/21(金) 17:06:03ID:???MySQLが起動できないようです。
MySQL 4.0.20
Mac 10.3
ターミナルで
sudo ./bin/mysqld_safe
としても、
Starting mysqld daemon with databases from /usr/local/mysql/data
mysql ended
とでて先へ進めません。
どうしたらよいか、どなたかよろしくお願いいたします。
0391文字化けらった
2008/03/21(金) 17:22:46ID:ZUe7MqjcMS ACCESS (文字コードはおそらくSJIS)で作成したデータを、
mysql(文字コードはUTF8)のDBに移行するには、
どのようにすればよろしいでしょうか。
また、移行後、mysqlのDBのデータを
文字コードUTF8で、挿入、更新、削除を行いたいのですが、
どのようにすればよろしいでしょうか。
0392NAME IS NULL
2008/03/21(金) 17:26:47ID:???データディレクトリのパーミッションとか色々ファクタがあるが、
エラーログファイル見た?
/usr/local/mysql/data に、xxxx.err とかで記録されているはず。
0393NAME IS NULL
2008/03/21(金) 17:29:47ID:???CSVにして LOAD DATA INFILE
UTF-8でDBやテーブル作って文字コード合わせて queryしる。
0394NAME IS NULL
2008/03/21(金) 17:32:13ID:ZUe7Mqjcありがとうございます。
便利ツールなどはご存知ありませんでしょうか。
0395NAME IS NULL
2008/03/21(金) 17:39:18ID:???ttp://www.google.co.jp/search?hl=ja&c2coff=1&rls=GGIH%2CGGIH%3A2007-04%2CGGIH%3Aja&q=mysql+csv+%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88+%E3%83%84%E3%83%BC%E3%83%AB&lr=
0396390
2008/03/21(金) 20:08:44ID:???dateはアクセス不可だったのでパーミッションをかえて開いたところ、
たしかに[pc名].local.errというファイルがありました。
しかし、これをどうやって開ければいいかがわからず。。
とりあえずmiで開いてみたら、なにも書かれていませんでした。
他のアプリケータなどで開くのでしょうか。
ものすごく初歩的な質問で申し訳ありませんが
よろしくお願いいたします。
0397NAME IS NULL
2008/03/21(金) 20:24:25ID:???datadir 内の全てのファイルは、mysqlが読み書き出来るようになってないとだめなんだが、
違ってるんならパーミッションを全部変えてみ。(通常 mysqlユーザ)
0398NAME IS NULL
2008/03/21(金) 23:54:49ID:???> 他のアプリケータなどで開くのでしょうか。
ttp://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%B3%E3%83%9D%E3%83%B3#.E5.BD.A2.E7.8A.B6
0399NAME IS NULL
2008/03/22(土) 01:42:27ID:???そのPHPにポート指定する所無いなぁ…
ポート番号がセッティングウィザードのデフォルトのままだし…
0400390
2008/03/22(土) 09:11:45ID:???>>397
ありがとうございます。
もともとは「オーナー:mysql」になっていました。
それだとfinderから開けなかったので、自分のユーザー名に変えてmiで開こうとしてみたら、
空だったのです。。
0401NAME IS NULL
2008/03/23(日) 12:16:20ID:+Imhz/jVデフォルトのcharsetがutf-8なのですが、互換性の問題からeucjpで格納したいです
テーブルのコレーションをujis_japanese_ciに変えたのですが、
コレーションを変えてもデータ格納形式自体は変わってないみたいです
0402NAME IS NULL
2008/03/23(日) 14:06:44ID:???/ ̄\
─( ゚ ∀ ゚ )─
\_/
/ │ \
○○○ ○○○
○,,・ω・○ ○・ω・,,○
○○○ ○○○ o
o〜(,_uuノ とuu_,)ノ
FREE TIBET
0403NAME IS NULL
2008/03/23(日) 22:28:01ID:???NO TIBET!
FREE CHINA!!
0404NAME IS NULL
2008/03/23(日) 23:30:16ID:???一旦 utf8 で作ったテーブルの charset を eucjpms に変えても、カラムの charset は utf8 のまま。
手っ取り早いのはテーブルを作り直すこと。
もしかしたら、
alter table xxx convert to charset eucjpms;
でも出きるかもしれないけど、やったことないからわからん。
0405NAME IS NULL
2008/03/24(月) 10:54:10ID:???データベースの初期化からやり直したらどう?
mysql_install_db --user=mysql
0406NAME IS NULL
2008/03/24(月) 17:10:55ID:???mysqldの再起動以外でデータベース読み込ませる方法ないでしょうか。
常時起動させているものなので極力再起動は避けたいです。
0407NAME IS NULL
2008/03/24(月) 18:30:46ID:???やったことは無いけど、mysqladmin refresh でどう?
0408NAME IS NULL
2008/03/24(月) 20:08:29ID:???corresponds to your MySQL server version for the right syntax to use near 'group
varchar(40),
こんなエラーメッセージが出ましたが、どういうことですか?
0409NAME IS NULL
2008/03/24(月) 20:10:30ID:???0410NAME IS NULL
2008/03/24(月) 21:41:31ID:???mail varchar(15),
domain varchar(15),
is_a_group bool,
name varchar(20),
group varchar(40),
post varchar(20),
prefecture varchar(8),
station varchar(20),
adress varchar(40),
tel1 int(4),
tel2 int(4),
tel3 int(4),
birthday date,
industry varchar(40),
type varchar(40),
job varchar(20),
user varchar(20),
agree bool
);
0411NAME IS NULL
2008/03/24(月) 21:53:10ID:???'mail' varchar(15),
'domain' varchar(15),
'is_a_group' bool,
'name' varchar(20),
'group' varchar(40),
'post' varchar(20),
'prefecture' varchar(8),
'station' varchar(20),
'adress' varchar(40),
'tel1' int(4),
'tel2' int(4),
'tel3' int(4),
'birthday' date,
'industry' varchar(40),
'type' varchar(40),
'job' varchar(20),
'user' varchar(20),
'agree' bool
);
0412NAME IS NULL
2008/03/24(月) 22:32:30ID:???0413NAME IS NULL
2008/03/25(火) 00:35:21ID:VYc3xvqfファイルパスをキーにしてインデックスを張ることになるかと思いますが
そうなると255文字程度の長さは必要になります
そんな長いインデックスは実用的なのでしょうか?
0414NAME IS NULL
2008/03/25(火) 09:00:49ID:???0415390
2008/03/25(火) 10:29:09ID:???ありがとうございます。
「MySQL入門以前」という本を見ながらやっているのですが、
「データベースの初期化」というのは書いておらず、まだ一度もやっていません。
もうすこしよく勉強して、はじめからやり直してみようと思います。
ありがとうございました。
0416NAME IS NULL
2008/03/25(火) 11:52:42ID:???0417NAME IS NULL
2008/03/25(火) 12:17:57ID:rCxdFsPnバッティングすることなんて天文学的確率だろ
キャッシュ用途としては充分じゃね?
0418NAME IS NULL
2008/03/25(火) 16:02:40ID:???0419NAME IS NULL
2008/03/25(火) 17:11:37ID:???「01234567890」でもselect文で検索できるような方法はありますか?
concatのようなselect文中に挿入してレコードの文字列を置き換え(削除)つつ検索できたら
とても幸せなのですが、何かありますでしょうか?
0420NAME IS NULL
2008/03/25(火) 17:50:42ID:???お幸せに・・
select * from hoge where REPLACE(tel,"-", "")="01234567890"
0421NAME IS NULL
2008/03/25(火) 17:51:36ID:???フィールドが半角のみ確実なら正規表現 REGEXP 使えるよ
0422419
2008/03/25(火) 20:55:10ID:???||
|| ⊂⊃
|| ∧ ∧ >>420さん >>421さん
|| ( ⌒ ヽ ありがとう、幸せになれると思います
∧||∧ ∪ ノ
( ⌒ ヽ 彡 V
∪ ノ フワーリ
∪∪
0423NAME IS NULL
2008/03/25(火) 23:29:33ID:fL5GORe0create TRIGGER Ins_T101
BEFORE INSERT ON `T101_BizUnit`
FOR EACH ROW
BEGIN
DECLARE PrevVer integer DEFAULT 0;
DECLARE InsVer integer DEFAULT 0;
DECLARE PrevExpiration_Date DATE DEFAULT CURRENT_DATE;
DECLARE PrevRecords integer DEFAULT 0;
SELECT COUNT(`ID`) into PrevRecords from `T101_BizUnit` src WHERE src.`Category` = NEW.`Category` AND src.`ID` = NEW.`ID` limit 1;
SET InsVer = NEW.`Version`;
IF PrevRecords > 0 THEN
IF InsVer = 1 THEN
select max(`Version`) into PrevVer from `T101_BizUnit` where `Category` = NEW.`Category` and `ID` = NEW.`ID` limit 1;
SET NEW.`Version` = PrevVer + 1 ;
SET PrevExpiration_Date = NEW.Register_Date - 1;
END IF;
UPDATE `T101_BizUnit` SET `Expiration_Date` = PrevExpiration_Date
WHERE `Category` = NEW.`Category` and `ID` = NEW.`ID` AND `Version` = PrevVer;
END IF;
END;
で登録自体はうまくいったのですが、テーブルに↓こんな感じで、
mysql> insert into T101_BizUnit set `Category` = 1, `ID` = 4, `Register_Date` = '2008-03-25';
Insertを試みると、↓のように怒られてしまいます。
ERROR 1442 (HY000): Can't update table 'T101_BizUnit' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
基本的に、トリガというのは呼び出し元がいじっているテーブルそのものはいじれないのが
仕様なのでしょうか?
よろしかったらご意見お聞かせください。
0424NAME IS NULL
2008/03/26(水) 12:35:25ID:???データベース名にアンダーバーを入れるとなぜかたまにエラーになります。
たとえば「user_address」と言うデータベースを作るとなぜかエラーになる。
前後を区切りたいときは普通アンダーバーで区切ると思っていたのですがたまにエラーになるのでやめます。
普通はどの文字で区切るのかわかりません。
というかアンダーバー以外で区切る方法他にいい案ありますか?
0425423
2008/03/26(水) 13:42:35ID:???http://dev.mysql.com/doc/refman/5.1/ja/routine-restrictions.html
ストアド ファンクションまたはトリガ内では、その関数やトリガを実行したステートメントが
( 読み取り、または書込みに ) すでに使用しているテーブルを改変することはできない。
うぎゃー! 役に立たねージャン!
別テーブルに意図する操作内容を逃がして、定時トリガとかで反映させるくらいしか
アイディアが浮かばない。
どうしたらいいか、引き続きアイディア募集中!
0426NAME IS NULL
2008/03/26(水) 15:22:47ID:???なんでエラーなるの?エラーの内容は?
0428NAME IS NULL
2008/03/26(水) 16:39:55ID:???それは、mysqlというよりかはOSのファイルシステムの問題じゃね。
0429424
2008/03/26(水) 19:32:52ID:???まあそういうことになります。
どこで聞くべきかわからなかったので
とりあえずmysqlでエラーがでたのでここで聞いてみました。
失礼しました。
0430NAME IS NULL
2008/03/26(水) 20:55:26ID:???CREATE TABLE でPARTITION(TABLESPACEとか)を指定しなかったら
テーブルデータはどこに格納されるのでしょうか?
0431NAME IS NULL
2008/03/26(水) 22:21:19ID:edZp6jWvとしたのですが、SQLが間違っているとエラーになります。
WHEREで検索する時、合計値を検索できないのでしょうか?
MySQLは4.1.20を使っています。
0432NAME IS NULL
2008/03/26(水) 23:01:48ID:???having
0433NAME IS NULL
2008/03/27(木) 11:11:21ID:???別テーブルに書き込んで、SELECTするときにJOINするとかどうよ?
0434NAME IS NULL
2008/03/27(木) 13:02:47ID:???ん?何が知りたい?データディレクトリ?
0435NAME IS NULL
2008/03/27(木) 13:22:21ID:haXSw+o7Data too long for column と出てしまうのはなぜですか?
0436q
2008/03/27(木) 13:56:58ID:???---------------------------
id seq notes
a 1 ほげ1
a 2 ほげ2
a 3 ほげ3
b 1 ふが1
b 2 ふが2
b 3 ふが3
....
b 100 ふが100
---------------------------
IDごとにseqが振られているテーブルなんですが、
delete table seqtable WHERE id='b' and (seq=77||seq=97);
したあとに
ID:bの連番の欠番を低い順から抜き出すことはできますでしょうか?
(欠番がない場合は最大値+1を返してくれるようにしたいです。)
最大値は以下で取れるので
SELECT (MAX(seq)+1) As max FROM seqtable WHERE id='b';
>ID:bの連番の欠番を低い順
をお願いします。
0437NAME IS NULL
2008/03/27(木) 14:09:24ID:4i6HCVKzhttp://codezine.jp/a/article/aid/1420.aspx?p=2
とか
http://codezine.jp/a/article/aid/1076.aspx
とかかな。
0438q
2008/03/27(木) 14:53:09ID:???ありがとうございます!
上のものでやりたいことは完璧にできました
0439NAME IS NULL
2008/03/27(木) 15:14:54ID:???テーブルの定義見せて。
0440NAME IS NULL
2008/03/27(木) 15:36:58ID:haXSw+o7railroad varchar(20)
);
0441NAME IS NULL
2008/03/27(木) 17:22:48ID:???入力した文字コードとテーブルの文字コードが合っていないに一票
0442NAME IS NULL
2008/03/27(木) 18:48:04ID:???データベースのデータがOS上のどこに
保管されているのか知りたいです。
例えば、Oracleの場合、tablespaceの
容量を超えてデータを入れようとすると
エラーになります。(自動拡張OFFで)
その場合は、tablespaceに対して
物理的なデータファイルを追加して
領域拡張してやるのですが、
MySQLの場合は、あちこち調べても
その部分の説明がほとんどされて
おらず、不思議に思っています。
DISKの領域がゆるす限りいくらでもデータを登録できるのか?
そうだとしてもDISK上のどのパーティション(Windowsなら
どのドライブ)に存在するのか知っていないと最大のデータ
格納量も予測できず、不安ではないかと思うのですが。
0443NAME IS NULL
2008/03/27(木) 19:11:34ID:???どこに置かれるかはここに書いてるよ。
ttp://dev.mysql.com/doc/refman/5.1/ja/installation-layouts.html
「データベース」って書かれてるとこね。
んで、実際のファイルは使っているストレージエンジンによります。
ttp://dev.mysql.com/doc/refman/5.1/ja/storage-engines.html
普通はMyISAMかInnoDBなので、該当の部分を読んでください。
0444NAME IS NULL
2008/03/27(木) 19:13:09ID:???つ http://dev.mysql.com/doc/refman/5.1/ja/storage-engines.html
ここらへんをよく読もう。
各table typeによって格納される場所は異なる。
0445NAME IS NULL
2008/03/27(木) 19:14:00ID:???0446NAME IS NULL
2008/03/27(木) 19:47:28ID:???っていうか、show variables like 'datadir';
0447NAME IS NULL
2008/03/27(木) 21:07:09ID:???何故か id が 0 のものが抽出されてしまいます。
なぜでしょうか?
また、回避法はありますでしょうか?
※検索に利用する為、0と検索された場合はidが0のものが抽出されるようにしたいので
AND id <> 0
は使わないでやりたいです。
SELECT * FROM users WHERE id = 'うんこ'
0448442
2008/03/27(木) 21:16:49ID:???ある意味オラクルよりややこしいですね。
0449NAME IS NULL
2008/03/27(木) 21:33:34ID:???usersのCREATE TABLEみせて
0450NAME IS NULL
2008/03/27(木) 23:15:04ID:???こちらになります。
create table users (
index int(11) not null auto_increment,
id int(11) default '0' not null ,
pw varchar(40) not null ,
PRIMARY KEY (index)
);
0451NAME IS NULL
2008/03/27(木) 23:40:57ID:???0452NAME IS NULL
2008/03/27(木) 23:45:22ID:???SELECT cast('hoge' as signed);
を実行してみればいいと思うよ。
0453NAME IS NULL
2008/03/27(木) 23:51:10ID:???SELECT * FROM users WHERE cast(id as char(11)) = 'うんこ';
でもこれだと、idにインデックスが張ってあっても
インデックスが使われないかもしれない。
というか、列にindexとidがあるのがそもそもおかしい。
普通、indexなんて名前付けずに、idにして、
idはnameとかuserとかにして、varcharとかcharにするのが普通じゃないかな。
CREATE TABLE Users (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT
, user_name char(11) NOT NULL DEFAULT '0'
, pw varchar(40) NOT NULL
, PRIMARY KEY (id)
);
0454NAME IS NULL
2008/03/28(金) 10:38:32ID:???数値に対して文字列で比較しても、そもそも型自体が異なるので絶対合致しないもの、と思っておりました。
しかし何故か0のものが抽出されてしまった為、疑問に思いました。
>>452
実行してみました。0が返ってきました。
要するに、数値型のカラムに対して文字列で比較しようとすると、
mysql内部で自動的に cast('hoge' as signed) のような形に変換され、
その結果返ってきた0で抽出条件を掛けてしまう、という事でしょうか?
>>453
ありがとうございます。
期待した通りの結果が返ってきました。
>indexとidがあるのがそもそもおかしい
こちら当方も感じました(他の方が作ったものの修正をしています)。
あと、CREATE TABLE で主キーに UNSIGNED を付ける辺り、なるほどと思いました。
大変勉強になりました、ありがとうございます。
0455NAME IS NULL
2008/03/28(金) 12:57:05ID:???一度に大量のSQLスクリプトを実行するとログが流れてしまって、
エラーが出ていても気づかないということがあるんです。
0456NAME IS NULL
2008/03/28(金) 13:01:59ID:???0457NAME IS NULL
2008/03/28(金) 13:07:56ID:???>mysql内部で自動的に cast('hoge' as signed) のような形に変換され、
>その結果返ってきた0で抽出条件を掛けてしまう、という事でしょうか?
型が違うと、いちど失敗してから変換が発生するから、
明示的に変換するのに比べてオーバーヘッドが発生することだけ頭の片隅にでも置いておけば、
その理解で大体OK
0458NAME IS NULL
2008/03/28(金) 13:52:28ID:???mysql -u username -p database < hoge.sql 1>>log.txt 2>>err.txt
でいけました!ありがとうございました。
0459NAME IS NULL
2008/03/28(金) 14:14:57ID:???あなたが使用している PHP, MySQL のライブラリ(libmysql.dll, libmysqlclient)
の標準キャラクターセットは何かご存じですか?
とありますが、標準キャラクターセットを調べる方法はあるのでしょうか?
0460NAME IS NULL
2008/03/28(金) 15:19:09ID:???イメージとしては以下のような感じです。
hogeテーブル(id=1)のnameに'A([0-9]+)'があった場合、
(SELECT rep FROM rep_table WHERE id=$1)
と置き換える
A1の場合だと(SELECT rep FROM rep_table WHERE id=A1)
よろしくお願いします。
0461NAME IS NULL
2008/03/28(金) 15:40:00ID:???その例の場合単に第一正規化されてないだけじゃ?
idを分割すればそういうのも簡単に実現できるだろ。
SELECT rep FROM rep_table R
WHERE EXISTS (
SELECT * FROM hoge H WHERE H.kind = 'A' AND H.id = R.id)
AND R.kind = 'A';
みたいな。
0462NAME IS NULL
2008/03/28(金) 15:56:00ID:???レスありがとうございます。
hoge.nameにはA1A3...見たいな感じでA([0-9]+)に複数マッチする可能性があります。(1つもマッチしない場合もあります)
それらすべてを(SELECT rep FROM rep_table WHERE id=$1)の形でとりたいのです。
現状ではプログラム側で、マッチした場合、そのつどSELECTで取得しています。
preg_replace_callback('/A([0-9]+)/','_preg_rep',$query);
function _preg_rep($matches) {
$sql =
"SELECT rep FROM rep_table WHERE id='$matches[1]'";
..
}
わかりづらい質問ですみませんがよろしくお願いします。
0463NAME IS NULL
2008/03/28(金) 16:01:21ID:???要は、テーブル定義(というか設計)見直せば?ってこと。
正規表現を使わなくても、テーブルさえちゃんとしてれば
461で示したSQLで実現できるよね?
もし変更が不可能だとしても、
idから部分文字列を切り出すとかすれば十分実現可能。
0464NAME IS NULL
2008/03/28(金) 16:04:00ID:???http://dev.mysql.com/doc/refman/5.1/ja/regexp.html
ここを参考にすればいい。
でも、正規表現はそこそこ重い処理だから、
RDBMSでは極力使わないほうがいい。
0465NAME IS NULL
2008/03/28(金) 17:53:51ID:???PHPでmysqldに接続して(mysqld側の起動オプションで、charset絡みを何も指定せずに)
show variables like '%char%' ;
で、clientとconnectのところ。
0466NAME IS NULL
2008/03/28(金) 20:02:50ID:t4tLBd+atee
0467NAME IS NULL
2008/03/28(金) 22:31:08ID:???tee log.txt でコンソールに表示されるログがすべて記録されるんですね。ありがとうございます。
0468NAME IS NULL
2008/03/29(土) 00:05:43ID:???0469NAME IS NULL
2008/03/29(土) 12:17:05ID:???0470NAME IS NULL
2008/03/29(土) 23:35:55ID:3fgyplCnhttp://u.aniota.info/?fayuwz
0471NAME IS NULL
2008/03/31(月) 05:40:50ID:0Cxuk5myテンポラリテーブルを使おうと思いますが、
テンポラリテーブルを削除する前に
何らかの形で操作側のプロセスが死んだ場合、
テンポラリテーブルだらけになるんじゃないかと思うのですが、
そのあたりはどうなってるのでしょうか?
0472NAME IS NULL
2008/03/31(月) 11:24:38ID:???接続が終了するとDROPされるから問題ないんじゃね?
ttp://dev.mysql.com/doc/refman/5.1/ja/create-table.html
0473NAME IS NULL
2008/03/31(月) 22:16:20ID:cXmxkjaYdisk容量の監視をしているのですが、
たまに / の下が圧迫されているようです。
どうやら
/tmpの下にキャッシュファイル?をMySQLが作っているようなのですが
どのタイミングでどのようなファイルを吐いているのかわかりません。
Order by などではテンポラリファイルをつくるようですが
前回 Diskが圧迫されたときには、Order byではなく
600万件ほどのテーブルから、uniqueデータのdeleteを繰り返していました。(対象は100万件程)
/tmpの下ってMySQLは何を吐きますか?
delete,updateをするときでも吐きますか?
0474NAME IS NULL
2008/03/31(月) 22:57:45ID:C7l3mT1cDB更新処理が既存と同じように動かず困っております。
#新環境の方がバージョンが古いのは気にしないで下さい。
○旧環境
OS - CentOS release 5
perl - 5.8.8
DBI - 1.52
DBD::mysql - 4.005
○新環境
OS - Red Hat Enterprise Linux ES release 3
perl - 5.8.0
DBI - 1.52
DBD::mysql - 2.1021
【現象】
update で、更新先が更新元と同じ値だった場合
(結局レコードの値は何も更新されなかった場合)、
excute() の戻り値が、
旧環境:1
新環境:0E0
となります。
新環境でも 1 となるようにしたいのですが、
何がマズいのでしょうか?
0475NAME IS NULL
2008/04/01(火) 10:38:18ID:???show variables like 'tmpdir';
デフォルトは確か /tmp
作られるのは最適化されていないクエリを発行した場合
0476NAME IS NULL
2008/04/01(火) 10:40:09ID:???mysqlというよりかは、DBIの問題じゃね?
0477NAME IS NULL
2008/04/01(火) 10:40:47ID:???0478NAME IS NULL
2008/04/01(火) 11:16:33ID:???DBD::mysqlのバージョンが違うからたぶんそれだな。
バージョン合わせるわけにはいかんの?
0479NAME IS NULL
2008/04/01(火) 16:05:23ID:cwXA9zGKweb上のDBを触るのは初めてです。
レンタルサーバー上のMysqlのサービスを利用しようとしています。
接続方法に「アドレス=localhost 内部からの接続のみ許可 」 とあったのですが、
ファイルを操作するときと同じように
FTPツールでサーバーに接続すればいいのでしょうか?
クライアントにMysqlをダウンロードしておいて、
作ったテーブルをサーバーにアップロードするのでしょうか?
UP先は/public_html以下でいいのでしょうか
accessとOracleの使用経験があるのでSQL文は多少分かります。
今回はそれ以前の問題というか…webのことはさっぱりですみません
※こちらが相応しくなければ該当スレお教えください
0480NAME IS NULL
2008/04/01(火) 16:12:32ID:???そのmysql、この場合はlocalhostみたいだから鯖にphp置いてそこから
接続にいく感じ
ftpはそういうスクリプトを上げるときにつかうけど
mysqlにつかうときはバックアップを取るときくらいか
0481使ってるのはPython-SQLObject
2008/04/01(火) 19:10:39ID:???ユーザー
+名前
+役割(役割テーブル)
役割
+名前
+説明
のように作る場合に役割を別のテーブルとして定義するとします、これは理解できるのですが。
駅
+住所
住所
+都道府県
+市町村とかそれ以外
のようにデーターベースでは分けるでしょうか?
Pythonのようなオブジェクト指向言語で組み立てれば「駅」オブジェクトは「住所」インスタンスを持つことになると思うので、このようなテーブル構造を思いついたのですが「駅」には固有の「住所」しか当てはまらないので別テーブルにする利点が無い。
「住所」なんてテーブルだと「家」というテーブルを作ったときにこのテーブルからも「住所」を参照することになって「住所」テーブルには「駅」「家」二つのテーブルの住所が記録されることになって美しくない。このような場合どのようにするのがベストでしょうか?
乱文・長文で失礼いたしました、気に触ったらスルーしてください。
0482NAME IS NULL
2008/04/01(火) 19:48:45ID:???RDBMSとかSQLは、オブジェクト指向だとか、
手続き型だとかとは全然違うことがわかると思う。
0483NAME IS NULL
2008/04/01(火) 20:36:08ID:???ここまでオブジェクト指向とにていると、どうしてもそれで考えてしまいますorz
おっしゃるとおり、やはりデーターベースの考え方をしっかり学んだほうがいいようですねorz
ttp://www.oreilly.co.jp/books/database/
のものを読んでみようと思います。ありがとうございました。
0484NAME IS NULL
2008/04/01(火) 22:15:46ID:ZI2HJoUMで、100〜1000の間を抽出出来ますが、
「100〜1000以外」というNOTにしたい場合、どうすればいいのでしょうか?
0485NAME IS NULL
2008/04/01(火) 22:21:36ID:???0486474
2008/04/01(火) 22:27:15ID:GR+VJpfBやっぱ、DBD::mysql 怪しいっすよね〜
実は新環境と同じ環境ってのが別にあって、
そいつは自分では触れない環境なのですが
そこではちゃんと動いてるらしく、
バージョンは変えたくないらしいのです。。
0487NAME IS NULL
2008/04/01(火) 22:30:35ID:???SELECT N1.hoge FROM Nanika N1
WHERE N1.test NOT IN (
SELECT N2.test FROM Nanika N2
WHERE 100 AND 1000
);
・・・ごめんなさい。
SELECT hoge FROM Nanika WHERE test < 100 OR test > 1000;
0488484
2008/04/01(火) 22:47:34ID:???test NOT BETWEEN '100' AND '1000'
で、目的の結果を得ることが出来ました。お騒がせしました。
0489NAME IS NULL
2008/04/02(水) 11:15:13ID:???ChangeLogのこれかな。
2003-06-22 Rudy Lippan <[email protected]> (2.9002)
* Changed the default behaviour of mysql_found_rows, so now
'UPDATE table set field=?' will return the number of rows matched
and not the number of rows physically changed. You can get the old
behaviour back by adding "mysql_found_rows=0" to the dsn passed
to connect.
0490NAME IS NULL
2008/04/03(木) 16:45:12ID:???0491NAME IS NULL
2008/04/03(木) 16:47:14ID:???0492490
2008/04/03(木) 16:54:27ID:???javascriptみたいにhtml上に直接かけるわけでもないですし
0493NAME IS NULL
2008/04/03(木) 17:03:12ID:???さぁ、好きなのをお選び。
0494NAME IS NULL
2008/04/03(木) 17:07:39ID:???MySQLからSQLでデータを取り出し、それからさらにPHPなどでHTMLに渡すという事でしょうか?
めんどくさいですね・・・
0495490
2008/04/03(木) 17:13:13ID:???0496NAME IS NULL
2008/04/03(木) 17:14:52ID:???とりあえず、これ以上はスレ違い、というより板違いな気が
0497NAME IS NULL
2008/04/03(木) 17:32:17ID:???サーバ系は一切必要なくなりますよ。
http://asql.mooska.pl/
0498NAME IS NULL
2008/04/03(木) 23:08:13ID:???具体的に言いますと、抜き出したデータの5行目〜10行目だけを選択するという感じなのですが、可能でしょうか?
0499NAME IS NULL
2008/04/03(木) 23:20:23ID:???0500NAME IS NULL
2008/04/03(木) 23:38:14ID:???それってSQLだけで可能ですか?
0501NAME IS NULL
2008/04/04(金) 02:01:41ID:???0502NAME IS NULL
2008/04/04(金) 05:27:22ID:???可能です
0503NAME IS NULL
2008/04/04(金) 05:44:09ID:???マジで?
0504NAME IS NULL
2008/04/04(金) 06:26:05ID:???0505NAME IS NULL
2008/04/04(金) 09:53:27ID:???0506NAME IS NULL
2008/04/04(金) 10:25:42ID:???というか、なんで5〜10行目が必要なんだ?
それは何かがおかしい気がする。
0507NAME IS NULL
2008/04/04(金) 11:55:27ID:???ありがとうございます
>>501
えっと・・・何のことでしょうか?
0508NAME IS NULL
2008/04/04(金) 12:57:49ID:???limit
0509NAME IS NULL
2008/04/04(金) 13:42:21ID:???UNIQUE KEY(`hoge_id`,`sequence`)
としてしまいました。
この場合どうやって削除すればいいのでしょうか?
0510NAME IS NULL
2008/04/04(金) 14:27:21ID:???drop index
0511NAME IS NULL
2008/04/04(金) 19:34:13ID:???PHPだってCGIだろ
知ったか乙
0512NAME IS NULL
2008/04/04(金) 20:13:39ID:???知ったかぶりはどっちだか
0513NAME IS NULL
2008/04/04(金) 21:04:28ID:???0514486
2008/04/05(土) 10:35:42ID:C1KIQxkZそれだ!!!
ありがとうございます。
きっと新環境と同じ環境の DBD::mysql は、
2.9002以降が入ってるんだろうな〜
確認してみます。
ありがとうございました!!!
0515NAME IS NULL
2008/04/05(土) 15:23:56ID:gepjJM1mバックアップについての質問なのですが、テンプレで紹介して頂いているphpMyBackupProを使用してみました。
MySQL5.0.45、phpMyBackupPro2.1、phpMyAdmin2.10.3、PHP5
を使用しています。
phpMyBackupProを使ったデータのバックアップ時に大きいDB(300MB程)のバックアップができません。
数MB程のDBなら何事もなくバックアップできています。
また、何も設定を変えずともphpMyAdminであれば全てのDBをバックアップできることを確認しています。
この状況で、phpMyBackupProの拡張設定:PHP 時間制限 (秒)を600秒にし、
php.iniでmax_execution_time = 600、max_input_time = 600にし、
apacheを再起動したのですが、phpMyBackupProの挙動はかわりありません。
純粋なSQLの質問ではないのでどこに質問したらいいのか迷ったのですが
総合と言うことで質問させて頂きました。
色々調べてみたのですが私には検討がつかず困っています。
お力添え頂けないでしょうか。
宜しくお願い致します。
0516515
2008/04/05(土) 16:03:48ID:???自己レスですが失礼致します。
0517NAME IS NULL
2008/04/06(日) 07:05:21ID:UtTMq1DCMySQLのSQL文チューニングに関してもっと知りたいのですが
EXPLAINの見方や、primary、index、unique、複合index等に詳しいサイト、もしくはオススメの本などありますでしょうか?
やっと時間ができたので調べたいなと思っています。
0518NAME IS NULL
2008/04/06(日) 09:57:59ID:???MySQL始めようと思っています
とりあえず趣味程度で勉強も兼ねて
フォームとかレポートとかを作るのに必要なものは何ですか?
お勧めは何ですか?
当方はAccessしか使ったことなく、そういった知識がありません。
0519NAME IS NULL
2008/04/06(日) 12:00:06ID:???フォームもレポートもSQLに関係ない気がするんだけど
それは僕が初心者だからなのでしょうか?
とりあえず使用目的と環境とフロントエンド次第じゃねーの?
0520NAME IS NULL
2008/04/06(日) 12:03:00ID:???MySQLのデータをフォームで入出力更新したり、レポートで集計してプリントしたりするためには
何を用意すれば良いですか?
0521NAME IS NULL
2008/04/06(日) 12:51:24ID:???0522NAME IS NULL
2008/04/06(日) 14:34:18ID:???0523NAME IS NULL
2008/04/06(日) 14:39:38ID:???0524NAME IS NULL
2008/04/06(日) 15:36:28ID:???用途:個人事業で使うデータを扱いたいんだけど、1万件前後、あと簡単な計処理と、3人いる愛人とのプレイデータ管理もしたいです
環境:年々、温暖化が進行してる気がします
知識:Accessを使いこなせる程度と英検1級
0525NAME IS NULL
2008/04/06(日) 19:14:05ID:???0526NAME IS NULL
2008/04/06(日) 20:14:26ID:???0527524
2008/04/06(日) 21:25:16ID:???0528NAME IS NULL
2008/04/07(月) 01:40:05ID:???ちがうよ
0529NAME IS NULL
2008/04/07(月) 07:22:36ID:???質問者本人以外に答える必要はないと思うんだ
0530NAME IS NULL
2008/04/07(月) 15:35:41ID:???どのように違うのでしょうか?
0531NAME IS NULL
2008/04/07(月) 15:40:35ID:???用途も意味も何もかも全部ちがうよ
0532NAME IS NULL
2008/04/08(火) 00:15:31ID:???0533NAME IS NULL
2008/04/09(水) 11:06:13ID:rr+k5v3w引数を可変にしたいんですが、どうしたらよいでしょうか?
call sp ( 123, 445);
でも
call sp (123);
でも動作する。
445が指定されていれば内部で取得できる。
ということがしたいです。
0534NAME IS NULL
2008/04/09(水) 14:19:54ID:???http://www.oreilly.co.jp/books/4873112095/
0535NAME IS NULL
2008/04/09(水) 19:26:18ID:???なんでそんなことしたいん?
NULLでも渡しておけば?
0536NAME IS NULL
2008/04/10(木) 00:35:24ID:9S23/fv1lock tables
単一テーブルに対するsql文
unlock tables
とすると、TOPコマンドでのロードアベレージが2前後から一気に30前後になってしました。
ただ、サイトの表示自体は早くなっている感があります。
この場合、ディスクが足を引っ張っているのかデッドロックになっているのか
そもそもロードアベレージは下がると期待していたのですがとまどっています。
同様事例の参考資料が見つからず途方に暮れております。
宜しければアドバイスお願いできないでしょうか。お願いします。
0537NAME IS NULL
2008/04/10(木) 09:50:41ID:???MySQL5.0を使用しているマシンで、ほぼ毎日午前3時前後に下記のようなエラーログが出力されます。
特に午前3時と指定して実行している処理はないと思うのですが、
下記はどのような場合に出力されるエラーなのでしょうか?
080407 3:15:28 InnoDB: ERROR: the age of the last checkpoint is 188694697,
InnoDB: which exceeds the log group capacity 156653568.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
080408 3:11:29 InnoDB: ERROR: the age of the last checkpoint is 156654082,
InnoDB: which exceeds the log group capacity 156653568.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
0538533
2008/04/10(木) 11:21:47ID:zXvXwiNfデバッグフラグを立てたいのさ。
通常は使用しないから引数を意識させたくない。
0539NAME IS NULL
2008/04/10(木) 13:30:20ID:???--------------------
id time
1 21:00
1 22:00
1 21:00
1 23:00
1 12:00
1 21:00
1 21:00
...
--------------------
こんなログを保存しているテーブルがあるとして
時間ごとのアクセス数を取得したいのですがどのような書き方があるでしょうか?
とり方としては
-------------------------
id time cnt
1 01 52
1 02 41
1 03 12
1 04 9
1 05 4
...
-------------------------
もしくは
------------------------------
id 01 02 03 04 .....
1 52 41 12 9
------------------------------
どちらでもかまいません。(可能であれば後者)
以下は自分なりに書いてみたものです。
SELECT
DISTINCT(id),
(SELECT COUNT(*) FROM hoge_tbl WHERE id=a.id and DATE_FORMAT(time,'%H') = '01') As `01`,
(SELECT COUNT(*) FROM hoge_tbl WHERE id=a.id and DATE_FORMAT(time,'%H') = '02') As `02`,
....
FROM hoge_tbl a
WHERE id=1;
一応、自分で書いたSQL文でもできましたがidが複数あり処理に時間がかかりすぎるため熟練者さまのご意見を聞ければと思います。
長文になりましてすみませんがよろしくお願いいたします。
0540NAME IS NULL
2008/04/10(木) 14:20:32ID:???SELECT DATE_FORMAT(time,'%H') as TH
FROM hoge_tbl a
WHERE id=1
GROUP BY TH
ORDER BY TH
これでtimeにインデックスがあっても多分効くはずです。
(DATE_FORMAT()書式は未検証)
0541540
2008/04/10(木) 14:22:01ID:???修正> SELECT DATE_FORMAT(time,'%H') as TH, COUNT(*)
0542NAME IS NULL
2008/04/10(木) 14:46:03ID:???ありがとうございます!
こちらの環境で試してみたところ3倍以上の高速化を実現できました!
本当にありがとうございます!
0543NAME IS NULL
2008/04/10(木) 15:12:05ID:9ckzVTRDselect * from users limit 1;
すると、
ERROR 1033 (HY000): Incorrect information in file: './gege/users.frm'
となったのですが、復旧するにはどのようにすればよいでしょう。
よろしくお願いいたします。
0544NAME IS NULL
2008/04/10(木) 15:24:24ID:???列や制約を追加したり消したりするALTERについてなんですが、
これって一昔前はありませんでした?
40代の元技術者の方に話を聞いたところ、
テーブルの設計は後から変更できないので慎重にやらないといけない。
というようなことを聞いたんですが。
0545NAME IS NULL
2008/04/10(木) 15:57:09ID:???設計の規約の上での話じゃないの?
機能的には可能でも、「できるんだからしちゃっておk」ってスタンスで居ると
後々収集が付かなくなるという
0546NAME IS NULL
2008/04/10(木) 16:48:02ID:???WHERE句に当てはまる
powerの合計値と、すべてのmessageを連結してさせたものを取得したいです。
power message
101 五月雨
32 孔雀
43 春菊
4 春雨
こんなテーブルだったら
power message
180 春雨孔雀春菊五月雨
こんな形で取り出したいです。
連結させる順序は指定できなくてもいいです。
0548NAME IS NULL
2008/04/10(木) 21:44:38ID:???OS:XP SP2
MySQL 5.0
password storage methodをObscuredにした
Write Log File for Scheduled Backupsにチェックを入れた
Administrator1.2.12のバックアップで、
schedule this backup projectをチェックするとAttentionが出てしまいます。
オプションのconnectionsを設定すればいいと思うのですが、
その設定を教えてください。
0549NAME IS NULL
2008/04/10(木) 22:28:58ID:???select sum(power),group_concat(message separator '') from hoge
0550NAME IS NULL
2008/04/11(金) 00:00:40ID:13YgqV5Q巨大だから外したいんですが・・
0551NAME IS NULL
2008/04/11(金) 11:23:51ID:???っていうか不要なBINログは定期的に消す。オレのメモを嫁。
◆mysql masterのレプリケーション バイナリログの削除方法
・スレーブ側で現在参照中のバイナリログを参照する
show slave status;
・マスタ側でそのファイル名を指定してその番号以前のファイルを削除する
※指定したファイルは残るらしい
show master logs;
purge master logs to 'xxx-bin.nnn';
0552NAME IS NULL
2008/04/11(金) 15:30:05ID:???レプリケーションしてないのですが、何となくバイナリログ取ってました
レプリケーションしない場合はとる必要ないですよね
0553NAME IS NULL
2008/04/11(金) 16:13:58ID:???create show tableでもBIGINT unsigned に変わっていることは確認できました。
何が原因なのでしょうか?
0554NAME IS NULL
2008/04/11(金) 16:50:22ID:???datadirの中にibdata1があります。
なんですこれは?
0555NAME IS NULL
2008/04/12(土) 02:06:27ID:???--expire_logs_days も良いかも。
0556NAME IS NULL
2008/04/12(土) 03:14:08ID:???クエリを分割するにはどうのようにすれば良いでしょうか?
MySQL5.0.45でinnodbを使用しているのですが、サブクエリーを使うような長くて少し複雑なクエリを発行しています。
EXPLAINで確認したところ、上手くindexを使ってくれません。
1クエリー1テーブル1インデックスの制約にひっかかってしまいます。
myisamならロックテーブルをかけて
ttp://d.hatena.ne.jp/kenji-u/20071102/p1
のようにすれば一つの処理として完結させられると思うのですが
innodbでのやり方がわかりません。
色々調べてみたのですがそのような記述を見つけることができませんでした。
アドバイス頂けないでしょうか。
宜しくお願い致します。
0557NAME IS NULL
2008/04/12(土) 08:06:58ID:+PKJZE04MyQSL Query Browser 1.2.12
を使おうと思ってるんですが
接続時にエラーが出ます
Could not connr\ect totha specified instance
MySQL Error Number 2003
Cant connect to MySQL server on localhost [10061]
if you want rocheck the network connection please click the Ping button.
誰か対処法をお願いします
0558554
2008/04/12(土) 08:48:12ID:???アイドリング的に、前もって作成されるみたいですね
0559NAME IS NULL
2008/04/12(土) 12:35:30ID:???そのまんまだよ。
(1)ネットワークを確認
(2)MySQLサーバの起動確認
0560NAME IS NULL
2008/04/12(土) 16:06:33ID:k8Kacv++delete文がうまくいったかどうか、確認する方法ないですか?
select の場合、$rs = select文実行 などとして$rsの中身を見て
確認してるんですが、deleteの場合はどうしたらいいんでしょう?
どなたかアドバイスお願いします
0561NAME IS NULL
2008/04/12(土) 20:19:02ID:AD6GVloA0562NAME IS NULL
2008/04/12(土) 21:19:46ID:???プログラミング言語は何?
0563NAME IS NULL
2008/04/12(土) 23:17:39ID:IYNGfhn4うまく壊れたファイルがありません
インデックスを壊すにはどうしたらいいですか?
0564NAME IS NULL
2008/04/13(日) 00:33:22ID:4TX2K7e+テーブルのメンテナンスってどうしてます?
チェック→引っかかったら、修復前のファイルを保存
→修復→修復できたら修復前のファイルを削除・
修復できなかったら管理者にメール
こんな感じですか?
0565560
2008/04/13(日) 03:31:23ID:t+wHgJcYごめんなさい 書き忘れてました
php5で作っています
0566NAME IS NULL
2008/04/13(日) 08:42:41ID:???普通に mysql_query() の戻り値を調べるのじゃダメなの?
0567NAME IS NULL
2008/04/13(日) 15:27:41ID:???make
phpMyAdminでみるとメインページに UTF−8
MySQL の文字セット: UTF-8 Unicode (utf8) ←どこに依存ですか?
0568NAME IS NULL
2008/04/13(日) 23:00:38ID:i44zPYKSここを見るとバックアップ前にFLUSH TABLESをしろと書いていますが
/etc/init.d/mysql stop
でサーバを止めた時は、
自動的にFLUSH TABLESも行われていると考えていいのでしょうか?
0569NAME IS NULL
2008/04/14(月) 02:22:05ID:???考えていい。
0570NAME IS NULL
2008/04/14(月) 03:52:51ID:???実際の画面とか見たかったんだけどどこにあるのかわかんなかった
初心者でも直感的に使えそうなの?
マウス操作でドロップしてデータを入力していくとか
違った文字数の入力も可能なのかな?
1行の構成が日本語で約100文字と約300文字の2種類あり
この2種類で1ページとして2万ページくらい自動入力したい
初心者なんですが直感だけでいけますか?
0571NAME IS NULL
2008/04/14(月) 18:56:36ID:???(即席で作ったリストなので細かい事は気にしないで下さいませ)
no type
-----------
1 friend
1 friend
1 family
2 family
2 friend
3 friend
3 friend
3 family
3 family
この時、カラム[no]でGROUP BYを掛けてしまうと、
1 friend
2 family
3 friend
という風になってしまいます。
これをそれぞれのtypeごとにGROUP BYを掛けて下記のように抽出したいです。
1 friend
1 family
2 family
2 friend
3 friend
3 family
どのようなSQLを書けばこのように抽出されますでしょうか?
どうかご教授の程宜しくお願い致します。
0572NAME IS NULL
2008/04/14(月) 19:03:28ID:???distinct
0573NAME IS NULL
2008/04/14(月) 19:09:39ID:???0574NAME IS NULL
2008/04/14(月) 19:18:02ID:???0575NAME IS NULL
2008/04/14(月) 19:32:40ID:???というSQLではない?
0576NAME IS NULL
2008/04/14(月) 19:58:06ID:???0577NAME IS NULL
2008/04/14(月) 20:12:08ID:???SELECT DISTINCT(no), DISTINCT(type) FROM hoge
とかやって、エラー出るからDISTINCTって一つしか指定できないもんだと思ってた。
ありがとうございます!
0578NAME IS NULL
2008/04/14(月) 21:42:25ID:???ってあたり危ないな。
GROUP BYは重複削除のためにあると思ってないか?
0579NAME IS NULL
2008/04/14(月) 22:06:24ID:???でも、DISTINCTもそういう計算が無いバージョンのGROUP BYと思ってた。
0580NAME IS NULL
2008/04/15(火) 01:12:39ID:???つうかdistinctで括弧使う変な書き方初めてみたわ
0581NAME IS NULL
2008/04/15(火) 08:42:18ID:???その書き方俺も初めて見た
関数じゃないのに勘違いしてないか?
0582NAME IS NULL
2008/04/15(火) 12:38:16ID:???IDごとにアクセス端末がいくつあるか(今日の)カウントした値をとりたいのですがどんな方法がいいでしょうか?
table_log
---------------------------
id ua time
1 a 2008-04-07
2 s 2008-04-07
1 i 2008-04-07
1 i 2008-04-07
2 a 2008-04-07
4 i 2008-04-07
1 s 2008-04-07
1 i 2008-04-07
1 i 2008-04-06
.................
SELECT
(SELECT COUNT(*) FROM table_log WHERE id=a.id and ua='i' and time="2008-04-07") As 'i',
(SELECT COUNT(*) FROM table_log WHERE id=a.id and ua='i' and time="2008-04-07") As 'a',
(SELECT COUNT(*) FROM table_log WHERE id=a.id and ua='i' and time="2008-04-07") As 's'
(SELECT COUNT(*) FROM table_log WHERE id=a.id and time="2008-04-07") As 'all'
FROM table_log a
WHERE id = 1;
こんな感じでとっているのですが1つのIDに12秒くらいかかります。
0583NAME IS NULL
2008/04/15(火) 12:56:16ID:???0584NAME IS NULL
2008/04/15(火) 17:28:33ID:WrDaLq3k今回、新たにstored procedureを導入しました。
dumpデータにプロシージャも含めるめ、-Rをつけて実行しましたが
リモート接続ではプロシージャのdumpがとられていません。
たぶん、権限の問題ではないかと思いますが、プロシージャのdumpに
必要な権限とはなんでしょうか?
ちなみに現在は、
SELECT,
LOCK TABLES,
EXECUTE,
CREATE ROUTINE,
ALTER ROUTINE ON
を与えています。
0585NAME IS NULL
2008/04/16(水) 01:34:54ID:???create show tableでもBIGINT unsigned に変わっていることは確認できました。
何が原因なのでしょうか?
0586NAME IS NULL
2008/04/16(水) 10:56:03ID:???クライアントは何使ってるの? それがintにしか対応してないって可能性はない?
0587584
2008/04/16(水) 11:47:23ID:???SPを作成したユーザ=definerがdumpできるようです。
なのでリモート接続するユーザを明示的にdefinerしてやれば
dumpできました。
ただ、SPを実行する際にdefinerの権限で動作する(sudo definerみたいなもん?)
ようなのでSP内でtemporaryテーブルや、insert, deleteを行っていたら
その権限がリモート接続するユーザに対して必要になる。
dumpだけの最小限の権限を考えていたのでちょっと困った。
0588584
2008/04/16(水) 12:09:44ID:???SQL SECURYTY でdefiner, invokerが指定で着るみたい。
つまり、定義者はリモート接続するユーザで
セキュリティ的には実行者とすることで
解決できそうな予感。
0589NAME IS NULL
2008/04/16(水) 14:02:02ID:Li0u4etGマスタ-スレーブ間のデータの同期間隔はどれくらいなのでしょうか?
調べていく内に仕組み等はわかるようになったのですが、同期間隔に関して詳しく書いている資料を発見できませんでした。
スレーブ側はクエリーログを受け取って順次実行していくので、同期間隔はハード性能に依存するところが大きいのでしょうか?
この変の挙動についてお詳しい方がおられましたら是非教えて頂けませんでしょうか。
0590NAME IS NULL
2008/04/16(水) 19:33:33ID:QEaTF0YFmysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| kokyaku |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
mysql> use kokyaku
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> insert into address (id,name,zip,city,addr,tel,date) values(1,'山田花子','100-0000','東京都千代田区','千代田1-1-1',012-345-6789',now()) ;
と入れたんですが、ちゃんと入力が完了しません。
Query OKがでないんですが、どうしたらいいですか?
あとReading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
これってなに?
0591NAME IS NULL
2008/04/16(水) 20:25:14ID:???電話番号カラムの記述をよく見てみ
0592NAME IS NULL
2008/04/16(水) 20:28:36ID:???気にしたことないけど、ネットワーク速度よりかはスレーブ側の更新クエリの
速度に引っ張られるんじゃないかな。
0593NAME IS NULL
2008/04/16(水) 20:34:04ID:???何を使ってるかしらぬが、処理側の変数がオーバーフローしてるんじゃね?
0594NAME IS NULL
2008/04/16(水) 20:35:15ID:???0595NAME IS NULL
2008/04/16(水) 21:31:19ID:???READMEにデュアルライセンスって書いてあるのですが
購入しないとインストールできない仕組みになっているのですか?
0596NAME IS NULL
2008/04/16(水) 22:54:41ID:???公式では5.0.51aまでしかDLできないので、URLにある5.0.58が非常に気になります。
インストールして使用することに問題はないのでしょうか?
0597NAME IS NULL
2008/04/17(木) 00:05:56ID:???>>595のリンク先はEnterpriseで有償
Community Serverは無償
0598NAME IS NULL
2008/04/17(木) 03:47:31ID:???0599590です。
2008/04/17(木) 08:37:37ID:xQuLnTlv;
これでいくかな?
0600NAME IS NULL
2008/04/17(木) 08:44:00ID:k/clcQ5/Out of memory (Needed xxxxxx bytes)
のエラーが頻繁に出て対処に困っています。
メモリーは2GBで、アクセス数は1時間で4000PV位です。
メモリーはサーバーの仕様でこれ以上増やせないのですが、
my.cfのどこかの設定値を変更して対応することは可能でしょうか?
宜しくお願いします。
0601NAME IS NULL
2008/04/17(木) 09:41:28ID:???エラーを吐いてるのは mysqld?クライアント側?
0602NAME IS NULL
2008/04/17(木) 09:52:46ID:???多分php.iniのココ。
memory_limit = **M
0603NAME IS NULL
2008/04/17(木) 09:54:21ID:k/clcQ5/phpから、DBにコネクションを確立した後、SQL文を実行した際に発生しています。
ちなみに、このエラーの発生頻度は約30回/日です。PVは6万PV/日、実行SQL数80万SQL/日です。
宜しくお願いします。
0604Zeno ◆5nZQbNmQPs
2008/04/17(木) 16:22:49ID:dYEsVLTeSun Microsystems が MySQL のソースコードをクローズするらしいな。
つまり、 MySQL がオープンソースではなくなるということだ。
買収した会社が Sun 故にこうなることは予想できていたが、その実行が予想より早くなりそうだ。
Sun は本気で死ね。
Sun to Begin Close Sourcing MySQL
ttp://developers.slashdot.org/article.pl?sid=08/04/16/2337224&from=rss
0605NAME IS NULL
2008/04/17(木) 16:49:44ID:???大量のクエリ結果を配列にぶち込んでるからじゃね?
0606NAME IS NULL
2008/04/17(木) 19:02:36ID:wr9HmqHRしょうもない質問ですが、みんな結合テーブルを使ったselectとかバキバキ
利用してるんでしょうか?
http://www.techscore.com/tech/sql/06_02.html を見て今勉強してます
これは、結果的にどういうメリットがあるんでしょう?
複数回クエリする必要がなくなる→負荷とエラーの発生率が下がる ということですか?
0607NAME IS NULL
2008/04/17(木) 19:54:13ID:???example.jp からアクセスしてみたら、
Host 'example.com' is not allowed to connect to this MySQL server
ってエラーが出た。
example.com ってどこから読んでるの?
OSはLinuxって
hostname しても example.jp ってちゃんと表示されるんだけど。
逆引きしてもちゃんとexample.jp になるし。
どなたかヘルプミー
0608NAME IS NULL
2008/04/17(木) 20:07:21ID:???ここの作業間違ったんだろうが。
0609NAME IS NULL
2008/04/17(木) 20:07:45ID:???正規化を勉強しなさい。
0610NAME IS NULL
2008/04/17(木) 20:10:22ID:???グローバルIPに対し接続を許可するつもりかい?
0611NAME IS NULL
2008/04/17(木) 20:40:54ID:???そのうちわかるよw
localhostとかいろいろトライ。
0612NAME IS NULL
2008/04/17(木) 21:04:35ID:???Mickosがはっきり否定してるぞ
http://developers.slashdot.org/comments.pl?sid=525246&cid=23098626
It is not a quesiton of close sourcing any existing code,
nor anything in the core server.
Everything we have released under GPL continues to be under GPL,
and the core server will always be under GPL (or some other FOSS licence).
0613606
2008/04/17(木) 21:36:42ID:wr9HmqHRありがとうございます。
正規化は勉強しているつもりなんですが、気になったので上記の質問をさせてもらいました。
引き続いての質問で恐縮ですが、
SELECT 受注表.納品日,商品表.商品名
FROM 受注表,商品表
WHERE 受注表.納品日 = '20010401'
AND 受注表.商品コード = 商品表.商品コード ;
とあるとき、受注表テーブルまたは商品表テーブルのどちらかがカラの時は
何も結果が返ってこないと考えていいのでしょうか?
かりに商品表テーブルがカラの時、「受注表.納品日」だけでも
戻ってくるということはないと考えていいのかな、と。
ためしに似たようなものを実行して試したんですが、何も戻ってきませんでした
自分のテストミスなのか・それでOKなのかわからないので教えてください すみません
0614606
2008/04/17(木) 21:43:59ID:wr9HmqHR>ためしに似たようなものを実行して試したんですが、何も戻ってきませんでした
という部分ですが、
WHERE 受注表.納品日 = '20010401'
AND 受注表.商品コード = 商品表.商品コード ;
はもちろんのこと、二行目を削除して
WHERE 受注表.納品日 = '20010401';
だけでやっても何も戻ってきませんでした
こういうものなんでしょうか?
0615NAME IS NULL
2008/04/17(木) 23:40:59ID:???0616NAME IS NULL
2008/04/18(金) 03:12:10ID:???http://www.technobahn.com/news/2008/200804172000.html
Linuxを代表するオープンソースベースのリレーショナルデータベース管理システムのMySQL
が近くソースコードの公開を停止する方向で準備を進めていることが16日、米カリフォル
ニア州サンタクララで開催中のMySQLコンファレンスの席上で明らかとなった。
0617NAME IS NULL
2008/04/18(金) 06:10:56ID:KIEogQYQ0618NAME IS NULL
2008/04/18(金) 06:49:14ID:???0619NAME IS NULL
2008/04/18(金) 11:28:11ID:???◆現状
XOOPS使用の為、MySQL4.0.27を文字コードEUCで稼働
◆やりたいこと
→1台のサーバで、XOOPS・OpenPNEの稼働
◆困っていること
→OpenPNEが文字コードUTF-8の為、文字コードUTF-8のデータベースを用意しなければならないが
1台のサーバに入っているMySQLで、データベースごとに文字コードを変えられるか分からない
宜しくお願い致します。
もう1台別のサーバを用意して、そっちでUTF-8のMySQLを用意した方が無難ですかね・・・
0620NAME IS NULL
2008/04/18(金) 12:30:23ID:???変えられる
0621NAME IS NULL
2008/04/18(金) 12:33:57ID:???受注表.納品日 = '20010401' にマッチするデータあるの?
リレーションの前に1テーブルで自在にクエリできるようになれば。
0622619
2008/04/18(金) 12:45:41ID:???ありがとうございます。
すみません、教えて君で申し訳ないのですが、がんばってググってはみたのですが、
どうも目的の事象を見つけられず具体的にはどうしたらいいのか分からず困ってます。
普通に CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET utf8 ; でいいのかと思ったのですが、
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARACTER SET utf8' at line 1
と、エラーを吐かれてしまって・・・
宜しくお願い致します。
0623NAME IS NULL
2008/04/18(金) 13:08:05ID:???データベースは
create database hoge character set 'utf8';
テーブルは
create table hoge (.. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0624619
2008/04/18(金) 13:48:35ID:???ありがとうございます。
create database hoge character set 'utf8'; で、やってみたのですがダメでした・・・
エラーは同じ、
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'character set 'utf8'' at line 1
です。
最初のインストール時のオプション指定が影響したりとかってしますか?
ちなみに、こんな感じでインストールしてます。
./configure \
--prefix=/usr/local \
--localstatedir=/var/mysql/data \
--with-mysqld-user=mysql \
--enable-assembler \
--with-mysqld-ldflags=-static \
--with-client-ldflags=-static \
--disable-shared \
--enable-local-infile \
--with-extra-charsets=all \
--with-charset=ujis \
--with-collation=ujis_japanese_ci \
--without-debug \
--without-bench
宜しくお願い致します。
0625NAME IS NULL
2008/04/18(金) 14:31:30ID:???うちは5.0だけど、
create database hoge ; で、データベース作成時には何も指定無しで、
create table hage (....) Engine=MyISAM CHARSER=utf8 ; で出来ないか?
(うちはそれで、Serverデフォルトutf8、特定のテーブルのみcp932で動いてるよ。)
0626614
2008/04/18(金) 16:21:37ID:???ありがとうございます
>受注表.納品日 = '20010401' にマッチするデータあるの?
あります。
あるなら、まともにクエリ成功してるはず と考えて良いのでしょうか?
僕の操作ミスかな?
0627NAME IS NULL
2008/04/18(金) 18:20:04ID:???バージョン:mysql5.0
db:test
table:tabletest
column:key,colum1,colum2
という構成にしています。
colum1をcolumn1に名前を変更したいのですが、
alter table tabletest change colum1 column1;
と入れても
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
と、エラーが出ます。構文が間違ってると言われているようなのですが、
マニュアルサイトでは
mysql> ALTER TABLE テーブル名 CHANGE 古いカラム名 新しいカラム名;
と記載されておりどこが間違っているのかわかりません。
お願いします。
0628NAME IS NULL
2008/04/18(金) 18:52:52ID:???0629NAME IS NULL
2008/04/18(金) 21:38:16ID:???Ubuntu7.1 serverとMySQL5.0.45を使っています。
データのインポートが異常に遅いのです。
以前まではx86版Ubuntuを使っていましたが、64bit版に変えました。
以前と設定もハードウェア構成もは全く同じなのです。
前もってphpmyadminを使ってエクスポートでとっておいたgzip圧縮のSQL文によるバックアップを
現環境のMySQLにインポートしているのですが、インポート実行時間が以前の50倍くらい遅くなっています。
時間をかければインポートできますが、大きめのデータだと何日まてばよいかわからない状況です。
topコマンドでは常にCPU100%でロードアベレージも1です。
メモリは8Gあって空きはまだ4G以上あります。
DBは全てinnodbです。
phpmyadminのランタイム情報を見ると、SQLの実行に関して
失敗回数 1,084 785.67 95.93%
と出ています。
もしかして失敗によるコミットとロールバックを繰り返しているから遅いのかなと思ったりもするのですが
原因がわからずにほとほと困り果てております。
もし宜しければお力添え頂けないでしょうか。
宜しくお願い致します。
0630NAME IS NULL
2008/04/18(金) 22:06:28ID:qYojHQc3PHPを使って今月と来月をdate関数で出して、範囲検索で抽出できると思いますが、
それをSQLだけでする方法ってありませんでしょうか?
0631NAME IS NULL
2008/04/18(金) 22:14:43ID:???今月〜来月の間の「何を」出したいんだ?
質問をする前に人に分かる日本語を書くよう心がけてよ
0632NAME IS NULL
2008/04/18(金) 22:21:54ID:???0633630
2008/04/18(金) 22:32:10ID:qYojHQc3申し訳ないです。。
登録されているdateにたいして、
「今月」〜「来月」という値を抽出したいと思っています。
考え方としては
WHERE date BETWEEN '2008-04-01' AND '2008-04-30'
みたいなSQLでその期間内のデータを抽出できると思いますが、
「2008-04-01」「2008-04-30」という範囲の値を、SQLで出せないかと思っています。
0634NAME IS NULL
2008/04/18(金) 23:03:17ID:???それで伝わると思ってるのか。
0635NAME IS NULL
2008/04/18(金) 23:55:05ID:???ヒント
DAYOFMONTH(), CURDATE(), ADDDATE()
そういう質問・説明の仕方を仕事でやると怒られないかい?
前提を省いた説明というのは基本的にはしてはいけないよ。
0636NAME IS NULL
2008/04/19(土) 12:10:52ID:???ガセネタ紹介乙
0637NAME IS NULL
2008/04/19(土) 14:26:10ID:???実務になったらこんな聞き方するクライアントばっかりだぞ?
0638NAME IS NULL
2008/04/19(土) 14:31:55ID:???0639NAME IS NULL
2008/04/19(土) 14:34:50ID:???じゃあ今日は特別に 君に答える権を授けよう
0640NAME IS NULL
2008/04/19(土) 14:53:56ID:???金払えよ
0641NAME IS NULL
2008/04/20(日) 22:18:25ID:???MySQL5.051a を使用しています。
WordPressの初期設定をしているのですが、
以下の部分で止まってしまっております。
# mysqladmin -u root password XXXXXX
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
どなたか助言をいただけませんでしょうか?
宜しくお願い致します
0642NAME IS NULL
2008/04/20(日) 22:29:02ID:???rootのpasswordをきちんと設定してますか?
0643641
2008/04/20(日) 22:50:37ID:???回答ありがとうございます。
rootのパスワードの設定は以下で問題ないですよね?
(エラーが出てしまっております)
%mysqladmin -u root password xxxxxxx
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)
0644NAME IS NULL
2008/04/20(日) 22:56:13ID:???このあたりを参考にするとか、ググってみるとか。
MySQLのrootパスワードは結構面倒でした(汗)
0646NAME IS NULL
2008/04/21(月) 18:24:30ID:???今更だけど、utf8のサポートはMysql 4.1以降。
だから、4.0でエラーが出るのは仕方ないと思う。
0647NAME IS NULL
2008/04/23(水) 19:06:36ID:???時刻を示す文字列が格納されたフィールドがあります。
2008年4月23日19時30分00秒なら、「20080423193000」という感じ。
このフィールドを見て、例えば現在から1ヶ月以内のレコードを抽出するとき、
どのようなクエリを送るのがスマートでしょうか。
WHERE 0+DATE_SUB(NOW(),INTERVAL 1 MONTH) < date AND date <= 0+NOW()
このようにやって期待通りに動いているようには見えるのですが……。
0649NAME IS NULL
2008/04/23(水) 22:22:01ID:???素直にdatetime型にする
0650NAME IS NULL
2008/04/23(水) 22:33:33ID:???この先色々なバグに悩まされるのが目に見える設計ですね
0651NAME IS NULL
2008/04/23(水) 23:13:59ID:???0652NAME IS NULL
2008/04/24(木) 00:32:04ID:???0653NAME IS NULL
2008/04/24(木) 09:31:08ID:???>>649に1票。Datetimeにしたほうが何かと便利じゃね?
0654NAME IS NULL
2008/04/24(木) 11:00:03ID:???0655NAME IS NULL
2008/04/24(木) 14:49:32ID:6a37T5mrヤフーでもAmazonでも、大きなポータルみたいなサイトを見ると、トップページに
沢山メニューやカテゴリがあります
(新着、トピック、ニュース、メール受信数、広告などなど)
これは、各領域ごとにSQLの読み込みしてるってことかなと思いますが、一ページに
どの程度リクエスト仕掛けていいんでしょう?
全部をまとめて1リクエストで済ませてるわけじゃないですよね?
そんなにいっぱい一気に読み込んで大丈夫なの?って気になりますが、、
こういうのはメモリとかCPU性能に依存するものなんですか?
変な質問ですみません
今のところ、1ページ1処理はうまく出来てるんですが、負荷を
沢山かけるものは心配です
参考になるサイトや書籍などあればそれも教えてください お願いします
0656NAME IS NULL
2008/04/24(木) 14:55:16ID:???0657NAME IS NULL
2008/04/24(木) 15:17:51ID:ZBZQUXh5table1
---------------------------
no cat name
1 1 わかめ
2 3 だいこん
3 2 にんじん
4 2 にく
5 3 こめ
6 4 かいわれ
....
100 100 にがうり
---------------------------
このようなテーブルで各catから一つずつnameを取得したいのですが、
その時に、noの降順を使って取得するにはどのようにすればよいでしょうか?
以下のように取得したいのです
---------------------------
no cat name
1 1 わかめ
4 2 にく
5 3 こめ
6 4 かいわれ
---------------------------
上手く伝えられているか不安なのでもう少し書き足しますと
---------------------------
no cat name
3 2 にんじん
4 2 にく
のようにcatにおいて重複した結果が出たときにnoの降順に従って
4 2 にく
だけを取得してほしいのです。
以下のようなクエリを実行したのですが、これではnoの降順を無視してグループ化されてしまいます。
SELECT
`no`,
`cat`,
`name`
FROM
`table1`
WHERE
1
GROUP BY `cat`
;
具体的なテーブル構造は下記になります。
CREATE TABLE `table1` (
`no` int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'No',
`cat` int(4) NOT NULL default '' COMMENT 'カテゴリ',
`name` varchar(32) NOT NULL default '' COMMENT '名前',
`up_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新日時',
`del_flg` TINYINT NOT NULL DEFAULT '0' COMMENT '削除フラグ'
) ENGINE = myisam CHARACTER SET ujis COLLATE ujis_japanese_ci COMMENT 'テーブル情報';
どうか宜しくお願い致します。
0658NAME IS NULL
2008/04/24(木) 15:34:13ID:???(SELECT max(no) AS no, cat FROM table1 GROUP BY cat) T1
INNER JOIN table1 T2 ON T1.no = T2.no AND T1.cat = T2.cat;
とか?
試してないけど。
0659655
2008/04/24(木) 15:43:59ID:6a37T5mrごくごく基礎的な考え方について、まとめてる本なんて知りませんか?
すみません、気になるんです。。
0660NAME IS NULL
2008/04/24(木) 15:50:26ID:???静的HTMLを一度作る時だけSQLを発行しているから無問題。
SQLの結果をキャッシュしておきたければmemcacheを使え。
0661657
2008/04/24(木) 16:00:29ID:???レス有り難う御座います。
うおっ結構複雑になってしまいますね・・・
今から提示して頂いたクエリを一つ一つかみ砕いて勉強してみます。
>>655
660さんもおっしゃっているような感じのことがメインですが
WEB+DB PRESS Vol.42にニコニコ動画の技術記事があります。
そこにDBとWEBアプリケーションサーバの大規模運用における勘所みたいなことが結構書かれていて
私は勉強になりました。
お力になれれば幸いです。
0662NAME IS NULL
2008/04/24(木) 16:29:19ID:???試してみたらうまくいったけど、あんまりいい方法ではないよ。
あくまで、答がちゃんと出るレベル。
0663658
2008/04/24(木) 17:37:55ID:???WHERE NOT EXISTS(
SELECT * FROM table1 T2 WHERE T1.cat = T2.cat AND T1.no < T2.no
);
とかでもOK
0664NAME IS NULL
2008/04/24(木) 19:47:59ID:???ノウハウは社外秘まではいかないだろうけど、それが飯の種ってもんです。
何でも知ってる人に聞いてみましょう。
本だったらSQLの簡単なものから読んだらいいんじゃないかな。
MySQLに限らず、RDBMS共通で勉強するといいかも。
0665655
2008/04/25(金) 06:21:05ID:???ありがとうございます、一度読み込んだ後にキャッシュする機能があるんですね
それが知れただけでもすごく助かりました
>>661
本の紹介、ありがとうございます
ニコニコの仕組みは勉強になりそうですね! ぜひ読んでみたいと思います ありがとう
>>664
完全独学でまわりに詳しい人いないのでここで聞かせてもらいました
またお世話になると思います、よろしくお願いします
どうもありがとうございました
0666NAME IS NULL
2008/04/25(金) 22:05:36ID:mG3NM/VW副問い合わせをにしたいSQL文があり困っています。
この場合、どういうSQL(関数)で代替するのでしょうか?
0667NAME IS NULL
2008/04/25(金) 22:22:40ID:c14dphK1泥臭いやり方だが、temporary tableかな
またはアプリケーション側で処理するとか
0668NAME IS NULL
2008/04/25(金) 23:01:57ID:???0669666
2008/04/25(金) 23:09:52ID:mG3NM/VWすみません、、ちょっとやり方が見えないのですが、、
例えば以下のようなSQLの場合、どうなるのでしょうか?
SELECT * FROM hoge INNER JOIN(
SELECT hoge_id FROM test
) AS test ON hoge.hoge_id=test.hoge_id
0670NAME IS NULL
2008/04/25(金) 23:18:07ID:???INNER JOIN test ON hoge.hoge_id=test.hoge_id
サブセレしなくても普通にこれでいんじゃないの。
それとも例題のために削ってるから?
0671666
2008/04/25(金) 23:20:34ID:???例題の為に削っているからです。。
実際、副問い合わせが必要な時は、そこでCOUNTしたり
WHEREで抽出した値を出したいから、という理由が多いです。
0672NAME IS NULL
2008/04/27(日) 13:21:26ID:Tqt++e11select * from web where name ='2chan' and category = '2chan' and type = '2chan'
って漢字で、全部2chan(同一単語)で検索したいんだけど、
where以降を縮める方法ってないですか?
PHPのifみたいにフィールド名括弧で括って()='2chan'でもだめだし・・・。
初歩すぎるのか探してもなかなか見つからない。
0673NAME IS NULL
2008/04/27(日) 16:05:58ID:???0674NAME IS NULL
2008/04/27(日) 16:24:11ID:Tqt++e11簡潔な回答ありがとうございます。
0675NAME IS NULL
2008/04/28(月) 00:32:12ID:???0676NAME IS NULL
2008/04/28(月) 03:35:46ID:???文字数1000文字区切り、最後の改行
でデータを取り出したいのですが可能でしょうか?
できれば1000文字以下で丸めこみたいです
以下のようにやっては見たのですがどうもすっきりしません。
よろしくお願いします。
SELECT
CONCAT(SUBSTRING(TEXT,1,1000),SUBSTRING_INDEX(SUBSTRING(TEXT,1000,1000),"
",1)) AS TEXT
FROM hoge;
0677NAME IS NULL
2008/04/28(月) 09:10:45ID:???INはORだろ
0678NAME IS NULL
2008/04/28(月) 10:01:14ID:???1000文字取り出した後はプログラム側で処理してはいかがでしょう?
0679NAME IS NULL
2008/04/28(月) 12:53:41ID:???だったら、そういうクエリを示さないと、解決にならない。
0680NAME IS NULL
2008/04/29(火) 16:57:15ID:???このページを見たところ
http://dev.mysql.com/downloads/mysql/5.0.html
ここだと 5.0.51b しかないようです。
b は beta の略ですよね?
beta 無しの一つ前のバージョンはどこでダウンロードできるのでしょうか?
0681NAME IS NULL
2008/04/29(火) 17:23:46ID:???それはベータじゃない。リリース版。
ってかいつの間にか5.0.51bになっててきづかなかった。
5.0.51->5.0.51aの時はSSL絡みのバグ修正だったようだけど、
今回のChanges探したんだが見つからない。
bkbitsのほうにも、Enterpriseには5.0.60きてるけど、
Communityには5.0.51aまでしか記載がない。
0682NAME IS NULL
2008/04/29(火) 17:35:14ID:???無償版と有償版の開発は完全に切り離されることとなり、
無償版と有償版の2つのMySQLはまったく別々の進化を遂げることとなる見通しだ。
0683680
2008/04/29(火) 18:00:49ID:???レスありがとうございます。
http://dev.mysql.com/doc/refman/5.1/ja/choosing-version.html
ここのバージョンの命名規則に b の意味するところが書いてないようなのですが
51 -> 51a -> 51b は
51 -> 52 にするほどでもない細かい修正だと理解して良いのでしょうか?
0684NAME IS NULL
2008/04/29(火) 19:57:40ID:???その通りです。
個人的にはbetaを意識させるbをバージョンに含むのには反対ですけどね。
0686NAME IS NULL
2008/04/29(火) 22:52:30ID:9aVChAdoServer Instance Configuration WizardのApply security settingで
エラーがでて完了しません
mysql.serversテーブルがないようなメッセージが出ています
ポートは開放しているはずですが、複数端末で同じようなエラーが出てしまいます
いろいろ調べたのですが、対処法がわかりません。
環境はwindowsXP SP2です
0687NAME IS NULL
2008/04/29(火) 22:56:35ID:vsezzVYUオススメありませんか?
ググっても出てこないのでお願いします
0688NAME IS NULL
2008/04/30(水) 00:50:20ID:???俺は読んでないけど…
http://www.oreilly.co.jp/books/9784873113432/toc.html
つーか、サイトや書籍を当たるよりもいきなりガシガシ
ソースコード読んだ方が速いんじゃないか
0689NAME IS NULL
2008/04/30(水) 01:04:19ID:???0690NAME IS NULL
2008/04/30(水) 01:37:43ID:???0691NAME IS NULL
2008/04/30(水) 01:41:19ID:???そういう事
0692NAME IS NULL
2008/04/30(水) 01:46:55ID:???ありがとうございます
なんと身近な本に普通に載ってたんですね…
0693NAME IS NULL
2008/04/30(水) 16:53:35ID:3+aSlCcRどう書けば可能でしょうか?
0694NAME IS NULL
2008/04/30(水) 17:03:55ID:???SELECT foo AS '2 foo', bar AS '1 bar' FROM Example
ORDER BY bar, foo;
とでもすればいいんじゃないかな?
0695NAME IS NULL
2008/04/30(水) 17:40:27ID:???プライマリキーは key_a 並べ替えたいカラムを col_a として書きました。
SELECT
a.*,
b.order_num
FROM
sample_table a
JOIN (
SELECT a.key_a, count(*) AS order_num
FROM sample_table a LEFT JOIN sample_table b ON
a.col_a > b.col_a
GROUP BY a.key_a
) b
USING (key_a)
ORDER BY a.col_a
MySQLでの確認はしてませんので、方言が混ざってそうだったら翻訳しといてください
0696NAME IS NULL
2008/04/30(水) 23:16:14ID:6t3erPxsExcelで数千行になる正規化されていないデータを、一気にMySQLに入れることってできるでしょうか?
普段、Excelにデータを溜め込んでいるのですが、それをサーバーに置いて、Web経由でデータの抽出ができるようにしたいんです。
もしいまのExcelのデータをすぐMySQLに入れられたら、造作無いのではないかと思っています。
よろしくお願い致します。
0697NAME IS NULL
2008/04/30(水) 23:38:08ID:???COPY句でも作って突っ込めばいけるんじゃない?
0698NAME IS NULL
2008/04/30(水) 23:49:06ID:???正規化せずに取り込むと後でものすごく後悔しそうないがする。
0699NAME IS NULL
2008/05/01(木) 01:12:40ID:V4TVtf8T$result = $db->query($sql);
if (DB::isError( $result )) {
die($result->getMessage());
}
while($row = $result->fetchRow()){
echo $row[0]; // 返却データをループ
}
という感じのプログラムを、テーブル名のみを変更して13行並べているのですが、最後の4つあたりが「DB Error: no such field」というエラーが出て正常に処理されません。
エラーが出ている箇所を上のほうに持ってくると解決するのですが、するとまた下の4つが・・・という感じです。
これって何が原因なのでしょうか?
0700NAME IS NULL
2008/05/01(木) 10:54:47ID:???PHPのモジュールの問題じゃね?
0701NAME IS NULL
2008/05/01(木) 13:42:14ID:???$db にfinishっぽい関数あったら、ループ後に呼んでみるとか
0702NAME IS NULL
2008/05/01(木) 13:59:30ID:/NYPxvw/mysqlの変数に
クエリの結果を代入する方法があれば教えてください
0703NAME IS NULL
2008/05/01(木) 21:04:05ID:???cpu:Core2Duo E6320
os:debian sarge
db:mysql 5
上記組み合わせで、このサーバをDB専用サーバーとして稼動させた
場合、mysqlのチューニングによってはCPUが最大で50%(1cpu)まで
しか使えない可能性ってありますでしょうか?
0704NAME IS NULL
2008/05/01(木) 22:57:20ID:???0705NAME IS NULL
2008/05/01(木) 23:13:07ID:???mysqlの変数って何?
ストアドファンクションを作ってるのかな。
>>703
smpのカーネルじゃないとそうなることもあるのかもしれない?
有識者の方お願いします。
>>704
何がしたいのか分かりません。
0706NAME IS NULL
2008/05/02(金) 11:35:50ID:???select @name:=name from hoge;
select @name;
0708NAME IS NULL
2008/05/02(金) 22:12:33ID:???0709NAME IS NULL
2008/05/02(金) 22:14:32ID:???0710NAME IS NULL
2008/05/03(土) 03:45:01ID:UXm9qTN+うまくいきません
delete from schedule where `evId` =''
delete from schedule where `evId` =NULL
両方ともだめです 何が原因として考えられるでしょう?
誰かご意見お願いします
0711NAME IS NULL
2008/05/03(土) 04:10:50ID:???0712NAME IS NULL
2008/05/05(月) 05:16:45ID:???例えば
A B C D
となっているフィールドを
A C B D
にしたいんですが。
0713NAME IS NULL
2008/05/05(月) 06:08:56ID:???0714NAME IS NULL
2008/05/05(月) 06:15:56ID:???データのほうをいじってもいいんだけど、一応データベースの方も変えられるなら知っておこうと。
0715NAME IS NULL
2008/05/05(月) 11:01:12ID:???0716NAME IS NULL
2008/05/05(月) 12:41:16ID:???0717NAME IS NULL
2008/05/05(月) 18:14:35ID:???alter table TBL modify B int after C
とか?
0718NAME IS NULL
2008/05/05(月) 21:18:24ID:umNt+46L次回の更新ではmd5で暗号化したパスワードを保存し、
その値でログイン出来るようにしたいと思います。
現状のパスワードをmd5化して更新する方法ってありませんでしょうか?
MySQLは4.1.22を使っています。
0719NAME IS NULL
2008/05/06(火) 01:21:23ID:???update tbl set col=md5(col)
0720NAME IS NULL
2008/05/06(火) 03:26:20ID:???ちわちわ
0721NAME IS NULL
2008/05/06(火) 14:56:41ID:???0722NAME IS NULL
2008/05/06(火) 19:58:26ID:???運用していたDBがオワタw
0723NAME IS NULL
2008/05/06(火) 20:05:41ID:???アナウンス無しで?
0724NAME IS NULL
2008/05/06(火) 20:09:24ID:???アナウンス無しで。
設定はしたから新規のデータは入るようになったけど、
古いデータが破壊されちゃった。
外国の安い会社だから、まぁ自己責任orz
0725NAME IS NULL
2008/05/06(火) 20:29:06ID:???泣くわそんなん
0726NAME IS NULL
2008/05/06(火) 20:30:12ID:???0727NAME IS NULL
2008/05/07(水) 00:22:52ID:???遅レスですけど上手くできました。ありがとうございました。
0728NAME IS NULL
2008/05/07(水) 13:33:51ID:???サイトの説明どおり1ステップづつこなしていたのですが、サンプル用のバックアップファイルをDLしてきて自分の環境で復元するところでつまづいてしまいました。
バックアップファイル内の命令文を1文づつ手作業で打ち込んでいったところ、
CREATE TABLE T01Prefecture (
PREF_CD INT,
PREF_NAME VARCHAR(10),
PRIMARY KEY (PREF_CD)
);
を打ち込んだところで、
ERROR 1005 (HY000): Can't create table 'sampledb040.t01prefecture' (errno: 121)
というエラーが表示されました。
テーブルが作成できないというエラーのようですが、原因がさっぱりわかりません。
テーブル名をT10Prefectureに変えると作成できるのですが…
どなたかこのエラーの原因をお知りでしたら、ぜひお教え願えないでしょうか?
0729NAME IS NULL
2008/05/07(水) 14:28:12ID:???どっかで打ち間違えたんじゃないの?
0730NAME IS NULL
2008/05/07(水) 15:20:47ID:???ググっていくつかのサイトを見てみましたが、以前同じ名前のテーブルを作成した事があるのが悪い…のかな?
同じエラーで悩んでいるらしき人のBlogなどは見つかるのですが、何がどう問題なのか理解が及ばない。
0731NAME IS NULL
2008/05/07(水) 16:37:15ID:???既にその名前のテーブルが存在するなら作れないですよ。
0732NAME IS NULL
2008/05/07(水) 18:27:43ID:???0733NAME IS NULL
2008/05/07(水) 22:32:39ID:???後出しでホントすみません。
ttp://mysqlweb.net/category/4037459-1.html
のリンクにある040backup.zipというファイルなのです。
前のステップでsampledb040を使った練習があったけど、やはりこれのデータが変な風に残っているのでしょうか?
0734NAME IS NULL
2008/05/07(水) 23:16:52ID:???0735728
2008/05/08(木) 14:39:58ID:???最初は参考サイトにあるとおりリダイレクト(でいいのかな? Mysql -u ユーザー(root) -p データベース名 <"パス")とやってたのです。
それでテーブルを作成できませんというエラーがでるので1行づつ手打ちしてみたのです。
後出しばかりでホントごめん。
人に相談するには早すぎました。まともな説明ができるようになるまでは独学でがんばります…
0736NAME IS NULL
2008/05/08(木) 21:38:34ID:???drop したあと、ほんとにdropできてるか確認してみるとか?
テーブルの作成権限がないだけかもしれないけどMySQLのその辺は
詳しくないので、もしそうなら他の人にお任せします。
0737NAME IS NULL
2008/05/09(金) 13:39:41ID:???0738NAME IS NULL
2008/05/10(土) 11:00:09ID:???うそです
0739728
2008/05/10(土) 12:14:55ID:???お騒がせしてすみませんでした。
こんな解決方法で良いのかな…?
0740NAME IS NULL
2008/05/10(土) 20:35:52ID:???"c:\hoge\hoge.txt"
"c:/hoge/hoge.txt"
これ以外に指定方法ってあるんでしょうか。
どちらでやっても、not found (Errcode: 2) になってしまいます><
0741NAME IS NULL
2008/05/10(土) 21:25:53ID:???0742NAME IS NULL
2008/05/10(土) 21:26:01ID:???\の場合は\\と書かないとダメな気がする
0743740
2008/05/10(土) 21:42:07ID:???存在してます。
>>742
\\でやってみましたが、同じくnot foundでした。
ちなみに、xserver(共用レンタルサーバ)上のDBにLOADさせようとしているんですが、
気になっているのが、LOADするファイルはUTF-8なんです。
ところが、xserverのMySQLのcharacter setはujis、character setsは
latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru
latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek
win1250 croat cp1257 latin5 で、utf8がないんですよね。
phpMyAdminで、ALTER TABLE テーブル名 CHARACTER SET utf8; を指定した後に
実行しても結果は同じエラー。
phpでプログラムを組んで、クエリ発行前に"SET NAMES utf8"をやっても同じエラーでした。
ためしに、LOADするファイルをujis、テーブル側もALTER TABLEやSET NAMESでujisに設定してやってみましたが、同じエラーでした。
MySQLのバージョンは4.0.27です。
いろいろ調べてるのですが、解決策が見つからなくて。
0744740
2008/05/10(土) 23:10:59ID:/V9T+N7z結局、not foundになった理由はわからないんですが、
phpMyAdminの「インポート」からLOADできました。
数時間前まで「インポート」画面には、
「インポートするファイルの形式」は"SQL"しか指定できなかったのですが、
不思議なことに、先ほどみたら"CSV"が指定できるようになっていて、
そこから入力ファイルを指定してLOADできるようになりました。
0745NAME IS NULL
2008/05/10(土) 23:32:01ID:ZRD2El4Rphp_mysql.dll
php_mysqli.dll
コピーしましたが、phpinfo()でMYSQL動きません。
プロンプトからは動きます。
extennsion_dir=c://php/etc
extension=php_mysql.dll
extension=php_mysqli.dll
しました。
dllのバージョンは、phpにあわせなければだめですか?
php5.1なのですが、
dllは5.2です。
5.1のダウンロードはどちらで行えばいいんでしょうか?
restart &再起動を行いました。
0746NAME IS NULL
2008/05/10(土) 23:46:05ID:ZRD2El4Rじゃなくて/ext
の間違いです。
0747NAME IS NULL
2008/05/10(土) 23:49:19ID:???copy C:\php\libmysql.dll C:\windows\system32
0748NAME IS NULL
2008/05/11(日) 01:49:34ID:I11LIJS2libmysql.dll
コピーしてもだめでした。
php5ts.dll
php5apache2.dll
をコピーしてもだめでした。
0749NAME IS NULL
2008/05/11(日) 03:10:53ID:ymTwAShD0750NAME IS NULL
2008/05/11(日) 17:12:51ID:Lz+kCEMODBに対して発行された全てのSQLをログ出力したいのですが、
MySQLでそういった処理は可能でしょうか?
0751NAME IS NULL
2008/05/11(日) 18:22:01ID:???0752NAME IS NULL
2008/05/12(月) 01:10:50ID:???0753NAME IS NULL
2008/05/12(月) 01:26:19ID:???0754NAME IS NULL
2008/05/12(月) 16:10:28ID:???>>646にも書いたけど、4.0系はutfサポートしてません。4.1以降です。
0755NAME IS NULL
2008/05/12(月) 20:15:57ID:8xhRTUUytable1
---------------------------
name
ねこ
いぬ
うさぎ
かめ
....
ぞう
---------------------------
このようなテーブルで特定の名前を検索し、結果ヒットしなかった名前だけを取得したいのですよがどうのようにしたらよいでしょうか?
例:ねこ、パンダを検索 => パンダを取得
SELECT
1
FROM
`table1`
WHERE
`name` = 'ねこ'
;
このようなクエリをループで数回発行し、取得もできるのですが、できれば1回のクエリで取得したいのです。
ドキュメントを見ていると、 `name` IN ( 'ねこ', 'パンダ' )
として何かすればできそうかなとも思ったのですが上手くかけません。
どうか宜しくお願いします。
0756NAME IS NULL
2008/05/12(月) 20:34:25ID:???つまり条件で使用されなかった名前を得たいわけですよね。
通常だと、`name` IN ( 'ねこ', 'パンダ' ) でヒット分を出して
アプリ側で消し込むのが通常かと。
0757NAME IS NULL
2008/05/12(月) 21:43:28ID:???レス有り難う御座います。
う〜んやっぱりどちらにしてもアプリ側の処理に頼るしかないのかな。
もう少し自分で粘ってみます。
0758NAME IS NULL
2008/05/12(月) 22:12:00ID:???0759NAME IS NULL
2008/05/12(月) 22:21:02ID:???検索条件を表示するようなクエリが記述できないからね
例
'ねこ', 'パンダ'で検索したときに、
ねこ
パンダ
を取得するSQL
・・・不可能
0760NAME IS NULL
2008/05/12(月) 22:24:42ID:a2zzvFoHWindows2K上で「MySQL入門以前」という書籍を見ながらMySQLをインストールしています。
Apache、PHP、MySQLのインストールは終わり、mysqldをサービスとして登録し終わり
再起動すると、MySQLサーバが起動していません。
#書籍で言うと65ページ付近です
コマンドプロンプトから
cd c:\mysql\bin で移動し
C:\mysql\bin>mysql
と打ち込むと
ERROR 2003: Can't connect to MySQL Server on "localhost" (10061)
と表示され、接続できません。
コントロールパネル>管理ツール>サービス でMySQLを確認すると
「スタートアップの種類」は「自動」となっていますが、「サービスの状態」が「停止」となっています。
「開始」をクリックすると
「ローカルコンピュータのMySQLサービスを開始できません。」
「エラー1067:プロセスを途中で強制終了しました」
と表示されます。
色々検索してみて、コマンドプロンプトから
C:\mysql\bin>net start mysql
と打ち込んでも
「システムエラー 1067が発生しました」
「プロセスを途中で強制終了しました」
と表示され、先に勧めない状態です。
同じ書籍で同じようなエラーを対処された方はいらっしゃいませんでしょうか。
どうかご教示ください。
0761NAME IS NULL
2008/05/12(月) 22:38:21ID:???0762NAME IS NULL
2008/05/12(月) 22:39:45ID:???0763NAME IS NULL
2008/05/13(火) 00:16:15ID:???そちらのページを拝見して、サービスの削除・サービスの再インストールを
行いましたが駄目でした。MySQLのアンインストールからやり直してみようと思います。
0764NAME IS NULL
2008/05/13(火) 15:44:20ID:NUBRvh8UPHP MyAdmin やプロンプト上からinsert行うと、普通にinsertできるのでしょうか?
0765NAME IS NULL
2008/05/13(火) 15:47:34ID:???0766NAME IS NULL
2008/05/13(火) 18:50:11ID:???| key | title | que1|
| 1 | test | test |
| 7 | test | test |
+-----+-------+-
というテーブルがあり、titleからkeyを取り出したいのですが、
select que1 from question where title ='test';ではqueは取り出せるのに
select key from question where title ='test';では構文エラーになります。
主キーは取り出せないんでしょうか?
0767NAME IS NULL
2008/05/13(火) 18:52:43ID:???0768NAME IS NULL
2008/05/13(火) 18:54:18ID:???無事取り出せました。
0769NAME IS NULL
2008/05/13(火) 21:39:29ID:NUBRvh8U異なってるはずなんですが。
0770NAME IS NULL
2008/05/13(火) 21:40:40ID:NUBRvh8U0771NAME IS NULL
2008/05/13(火) 22:04:51ID:NUBRvh8U日本語できなきゃ、SQLできませんね。えへ!
テーブルに登録されていない
ユニークな列 brandに
日本語文字列'あしっくす' をinsertしようとしているのですが、
あしっくす という文字列が登録されていないのに、
Duplicate entry 'あしっくす' for key 2
とエラー表示されるのはなぜなんでしょうか?
0772訂正
2008/05/13(火) 22:07:10ID:NUBRvh8U日本語できなきゃ、SQLできませんね。えへ!
テーブルに登録されている
ユニークな列 brandに
日本語文字列'あしっくす' をinsertしようとしているのですが、
あしっくす という文字列が登録されていないのに、
Duplicate entry 'あしっくす' for key 2
とエラー表示されるのはなぜなんでしょうか?
0773訂正
2008/05/13(火) 23:31:32ID:NUBRvh8U0774NAME IS NULL
2008/05/14(水) 03:58:48ID:???◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3
5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/
▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
0775NAME IS NULL
2008/05/15(木) 05:20:29ID:???「マルチ列INSERTステートメントの場合」とか書いてあるけど、
このページ内ほとんど
×列
○行
じゃないかな。
0776NAME IS NULL
2008/05/15(木) 08:30:54ID:/PcvCBeiphpinfoでMYSQLが認識されない。dllに応じてapacheの対応バージョンが異なるらしいんだけど、
本当ですか?
0777NAME IS NULL
2008/05/15(木) 09:58:14ID:???0778NAME IS NULL
2008/05/15(木) 13:04:45ID:???0未満にはならないようにとか、そういった制約ってありますか?
入れるときにチェックしないとだめでしょうか?
0779NAME IS NULL
2008/05/16(金) 16:40:06ID:V7rySszX文字コードがutf8のデータベースから、eucのデータベースへ中身を
移動させるのって難しいですか?もちろんMysqlです
管理ツールはphpMyadminを使おうと思ってるんですが、、
蓄積されている情報をEUCに書き換えるような作業が必要になるんでしょうか?
カンタンな手順や専用のツールなんてあるんでしょうか?
どなたか教えてください よろしくお願いします
0780NAME IS NULL
2008/05/16(金) 17:59:07ID:???0781NAME IS NULL
2008/05/17(土) 09:05:01ID:???insert into euctable select * from utf8table;
0782NAME IS NULL
2008/05/17(土) 19:33:10ID:dhQBeSfs改変したら公開が義務付けられるそうですが、
今のところそういうことをする予定はありません。
「無償版を使うなら、これをしなければいけない、
またこれはやってはいけない。」
というのは他に何がありますか?
商用ライセンスとの違いはなんでしょうか?
サポートを受けられる、というだけのことですか?
「こういうことをやりたいなら、商用版を買うしかない。」
ということはありますか?
0783NAME IS NULL
2008/05/17(土) 19:36:46ID:???バレてはいけない
0784NAME IS NULL
2008/05/17(土) 20:31:20ID:???0785NAME IS NULL
2008/05/17(土) 21:19:27ID:???バイナリーファイル、たとえばdocやxlsの先頭100KBを表に入れたいとき。
0786NAME IS NULL
2008/05/17(土) 21:23:16ID:???Winny のハッシュ管理
0787NAME IS NULL
2008/05/17(土) 22:00:06ID:Zz9EtgnEありませんでしょうか?
0788NAME IS NULL
2008/05/17(土) 22:20:18ID:???0789NAME IS NULL
2008/05/17(土) 22:23:10ID:Zz9EtgnEランダム関数?
勉強不足で。。。
調べてみます。
0790NAME IS NULL
2008/05/17(土) 22:35:01ID:???何でもいいからデータを大量に入れたいならランダムを生成する適当な関数作っちゃえばいい。
0791NAME IS NULL
2008/05/17(土) 22:37:54ID:???0792NAME IS NULL
2008/05/17(土) 22:41:57ID:???0793NAME IS NULL
2008/05/17(土) 22:59:08ID:dhQBeSfsMySQLも必要だと言われたのさ。
データベースなんて職場のアクセスをいじったぐらいだ。。。。
0794NAME IS NULL
2008/05/17(土) 23:02:21ID:???0795779
2008/05/17(土) 23:13:43ID:4inawo49ありがとうございます
>>780
ALTER TABLE というのは具体的にどうしたらいいんでしょう?
>>781
insertでデータを移動させるということでしょうか?
データベース自体の動いているサーバーが違うんですが、
その場合はどうしたらいいんでしょうか?
0796NAME IS NULL
2008/05/18(日) 00:12:40ID:6bXnmuPh初めてのログインで
mysql -u root
を実行したら「root@localhostに権限がありません」的なエラーがでました。
1番始めはrootにパスは設定されてないですよね???
ちなみに
mysql -u root -p
をやるとPassword入力を求められますが何を入力してもログインできませんでした。。
0797NAME IS NULL
2008/05/18(日) 00:21:56ID:???>ALTER TABLE
SQL関連のマニュアルか、リファレンスを読んで下さい。
0798NAME IS NULL
2008/05/18(日) 00:38:19ID:???Alter table tbl convert to charset
でもこれは、そのテーブル自体の格納されているデータを変換するもの。
二台別々のDBが動いてんなら、一旦もとのtblからデータを全部dumpして、
それを新しい方のtblに放り込んでやればいいんでない。
(この時に特に変換作業は不要。詳しくはmanual参照。でも多分わかってないとハマりそう)
>>796
原因はようわからんが、一旦data_dir以下の全ファイル(インストしたてって言ってるから、重要なデータは入ってないでしょ)
を削除して、/usr/bin/mysql_install_db(←RHEL系のディストリの場合。他ディスでは違う場所かも知れん。)
を実行してやれば、権限テーブルが再構築されるので、再度mysqldを実行。
>>786
ハッシュ自体を管理するんなら、バイナリな必要ないんじゃない?
ハッシュを生成するためのもとのデータを入れるなら、binaryじゃなきゃいかんけども・・。
0799779
2008/05/18(日) 08:06:53ID:JfDPw4vMどうもです ありがとうございました
>>798
詳しい説明ありがとうございました
データ移行の本読むべきですね 基本でした ありがとうございました
0800NAME IS NULL
2008/05/18(日) 10:46:41ID:6+oG6BiDデータのインポートは出来ないんでしょうか?
csvファイルを取り込みたいのですが、
どのような方法がベターでしょうか?
0801796
2008/05/18(日) 11:08:49ID:???(データベース「MySQL」のusr.MYDファイルを開いてみたら空だった)
原因は/tmpにアクセスする際の
パーミション問題(PCLinuxOSのディストリ的な影響)だったので
TMPDIR=/tmp/
MYSQL_UNIX_PORT=/tmp/mysqld.sock
export TMPDIR MYSQL_UNIX_PORT
という形で環境変数を変更してmysql_install_dbを実行したら問題なく動作しました。
>>797-798
ありがとうございました。助かりました。
0802NAME IS NULL
2008/05/19(月) 00:30:52ID:???現在DBI経由で、perlなどからSQL実行していますが
この時 long_query_timeに引っかかったクエリーは
エラーなり、補足捕捉情報かなにかを返すのでしょうか?
またこの時、viewは正しく返ってこない、と考えて良いのでしょうか?
MySQLバージョンは、4.0/4.1/5.0になります。
0803NAME IS NULL
2008/05/19(月) 11:48:56ID:cfRUIA6l一般クエリログを出すようにしているのですが、
このログファイルのローテートは MySQL 自身が
やってくれるのでしょうか?
それとも logrotate を設定しなければならないのでしょうか?
0804NAME IS NULL
2008/05/19(月) 14:48:36ID:???MySQLのソースインストールのconfigureで「--with-readline」オプションがありますが、
この設定はmy.cnf上で後から変更可能でしょうか?
0805NAME IS NULL
2008/05/20(火) 07:40:10ID:???GPLと相容れないプログラムとリンクできない
0806NAME IS NULL
2008/05/20(火) 11:56:52ID:FPNVgIjN0807NAME IS NULL
2008/05/20(火) 21:51:22ID:???とありますが、接続毎に隔離されたHEAPテーブルは作れないでしょうか?
バージョン4.1です。
0808NAME IS NULL
2008/05/20(火) 22:29:57ID:GGh+9Iru$sql = "UPDATE test SET count=count+1 WHERE id='1'";
$res = mysql_query($sql ,$con);
if($res==false){
// 実行されない場合の処理
}
と言うのをやろうとしたのですが、$resがtrueになります。
もしかして、UPDATEって、登録値が無い場合でもtrueになるのでしょうか?
バージョンは4.1.22を使っています。
0809NAME IS NULL
2008/05/20(火) 23:46:08ID:GuaauZDQmysqldumpでダンプを取りたいのですが、
mysqldump -u root test > dump.sql と打つと
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'mysqldump -u root test > dump.sql' at line 1> dump.sql;
となります。
サイトをさんこうにしてやっていますが
うまくいきません。どこが原因でしょうか?
教えて下さいませ。
0810NAME IS NULL
2008/05/21(水) 00:06:16ID:???接続が切れたときに消えてなくなってもいいのであれば、temporary テーブル。
0811NAME IS NULL
2008/05/21(水) 00:07:10ID:???それ、mysql> プロンプトからやってないか?
0812NAME IS NULL
2008/05/21(水) 00:08:42ID:???falseはSQLの実行エラーの場合です。
updateがあったかは、たしか 影響を受けた行数を取得する
関数があったと思うので実行後にそれを使ってください。
0813NAME IS NULL
2008/05/21(水) 00:33:26ID:O5tzPctuコマンドプロンプトからやってますが何か?
0814NAME IS NULL
2008/05/21(水) 00:53:14ID:???MYSQLの設定を済ませて
PHP5のphp.iniの設定では
絵xtension=php_mysql.dllのところを;はずしました。
MySQLの動作もちゃんとしてます。
ですが、
<?php
phpinfo()
?>
上で確認したところMySQLの表示してないです。
mySQLのインストールはこちらのURLを参考にしました。
?http://vine.1-max.net/MySQL.html?
こちらには、php5-mysqlが乗ってなかったので追加して
インストールしました。
どこが悪いのでしょうか?
以下がバーションになります。
LINUX:vinelinux3.2
apache:1.3 場所:/etc/httpd/
php5:5.2 /etc/php5/
MYSQL:4.0 /usr/share/mysql/
0815814
2008/05/21(水) 02:02:33ID:???0817NAME IS NULL
2008/05/21(水) 02:54:27ID:???全テーブルに更新時刻と挿入時刻カラムをつけ、
beforeトリガーでこれらを更新しようと考えていますが、
オーバーヘッドはどんなものでしょうか?
用途は中小規模のグループウェアみたいなものです。
もしオーバーヘッドが大きいならtimestampで更新時刻だけ
記録することも考えるのですが、挿入時刻もあった方がいいようなのです。
MySQLで設計するのは初めてで感覚がわからないので、
なんとなくで結構ですので助言をお願いします。
0818NAME IS NULL
2008/05/21(水) 13:12:17ID:2ndXeLqA何お前
ずいぶんと偉そうだな
0819NAME IS NULL
2008/05/21(水) 15:25:29ID:???理解できるようになってから出直せ
0820>>813
2008/05/21(水) 22:05:35ID:hrtOIMUi0821NAME IS NULL
2008/05/21(水) 23:17:40ID:wc8hj2Slmysql>select * from XXX; を実行し、結果が多い場合、最初の方の結果がスクロールし、コンソールから消えてしまいます。
ls | moreのような感じで、1画面ずつ見たい場合はどうすればよいでしょうか?
やり方がわからないので、bashから
user$echo "select * from XXX;" | mysql testDB > result.txt のような感じでテキストファイルに落としています。
よろしくお願いいたします。
0822NAME IS NULL
2008/05/22(木) 00:05:25ID:???limit
0823NAME IS NULL
2008/05/22(木) 00:18:02ID:???mysql> pager less
0824NAME IS NULL
2008/05/22(木) 00:18:18ID:P5ig6HYlMySQL5.1を使用しています。
国内IPを判別する為に以下のようなデータを入力したのですがこれを元に
phpにアクセスしてきたipを国内かどうか(定義IP範囲に含まれているかどうか)判別したいのですが
どのような問い合わせをすれば良いでしょうか?
例えば、58.138.127.1をtable1に対してselectしても一致しないですし。当たり前ですが・・・
table1
---------------------------
ip
58.98.0.0/16
58.112.0.0/15
58.138.0.0/17
58.138.128.0/18
....
このような場合、範囲中にあるIPを全て下記のように生成し、登録してselectさせるしかないのでしょうか?
table2
---------------------------
ip
58.138.127.1
58.138.127.2
58.138.127.3
58.138.127.4
....
純粋なクエリ等の問題ではないのかもしれませんが、いくら考えても良い方法がみつからずほとほと困ってしまいました。
どうかお力添え頂けないでしょうか?宜しくお願い致します。
0825NAME IS NULL
2008/05/22(木) 00:37:04ID:???phpがトリガならmod_geoipでも使ったらどうか?
0828NAME IS NULL
2008/05/22(木) 01:18:09ID:???MySQLのみでうちがやるなら、IPはINET_ATON()で整数保管。
マスクは別フィールドに保管。
比較の際は、IPの整数をマスクサイズでビット演算して比較。
現状のテーブルのままやるのなら、文字列だからMySQLの
正規表現関数を使うのが速度的にも妥当では。
0829NAME IS NULL
2008/05/22(木) 02:19:27ID:???0830NAME IS NULL
2008/05/22(木) 08:19:01ID:???http://mainichi.jp/enta/geinou/graph/200805/21/?inb=yt
ネット証券会社が主催するFX(外国為替証拠金)取引コンテストの発表会が21日、都内で行われた。
コンテストに特別参加するグラビアアイドルの滝沢乃南さん、山本彩乃さん、折原みかさん、山口愛実さん、佐々木梨絵さん
の5人が顔をそろえ、シストレに挑戦する意気込みなどを語った。
同コンテストは、自分で作成したトレードソフトの機能を評価する「シストレソフト部門」と、
FX初心者でも安心の仮想マネーを使った取引を体験できる「トレード部門」で賞金総額2000万円を争う。
シストレ優秀ソフトは、最高2000万円までの範囲内で買い取りの可能性もあるという。登録受付は22日から。
仮想取引は6月2日〜09年4月30日までとなっている。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
https://www.click-sec.com/corp/guide/demo/
http://www.fx-gp.com/about/
▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
0831NAME IS NULL
2008/05/22(木) 12:15:32ID:???PHP側でIPのチェックしたいならPrarのNet_IPv4
http://pear.php.net/manual/ja/package.networking.net-ipv4.php
0832NAME IS NULL
2008/05/22(木) 12:26:36ID:???0833NAME IS NULL
2008/05/22(木) 19:08:36ID:???本来は100文字までのデータしか入力しないカラムでも
varchar(255)とtinytextの限界で作成しておいて、
アプリ側の入力チェックで100文字制限をするという方針はありでしょうか?
制限を100文字以上に拡張したくなったとき、アプリ側のチェックだけ直して
テーブルは変更する必要がなくていいのではないかと思うのですが。
0834NAME IS NULL
2008/05/22(木) 21:54:45ID:???0835NAME IS NULL
2008/05/23(金) 01:26:43ID:???http://dev.mysql.com/doc/refman/5.1/ja/storage-requirements.html
>>833
別に自分のしたいようにすればいいんでね?(自分にとって、管理しやすいほう、扱いやすいほうで)
ただ、fixed formatでテーブル作成してるんなら、discには実際使ってない部分の領域も書き込まれるけどね。
0837NAME IS NULL
2008/05/23(金) 21:38:08ID:Dt8inalF0838NAME IS NULL
2008/05/24(土) 02:02:00ID:???(そのテーブル対して、更新&参照&集計が頻繁に発生すします。)
my.conf-hugeを元にいろいろチューニングを試してみたんですが、
io-waitが100%に刺さったまま、ハングしたようになり困っています。
開発当初はoracle案件で、ありきたりのチューニングだけで、問題なく動作していたのですが、
クライアントの方針変更で、急にMySQLで開発することになり、非常に難儀しています。
(ちなみに案件規模は、楽天クラスの商品在庫管理です。)
0839NAME IS NULL
2008/05/24(土) 02:15:08ID:/LSToqrfクラに泣き付いてでも、オラクルに戻してもらえ。
0840NAME IS NULL
2008/05/24(土) 02:20:15ID:???大規模すぎてMySQLの範疇じゃないだろ
0841NAME IS NULL
2008/05/24(土) 02:36:57ID:???ありがとうございます。でも、それは無理っぽいです。
クライアントのライバル会社が全社的にOpenOfficeを採用したとかで、新聞に載ったらしく、
クライアントの経営トップがそれに対抗して、バックエンドにオープンソース採用の方針を
打ち出したいらしく、私が土下座するくらいでは受け入れられそうにも無いです。
0842NAME IS NULL
2008/05/24(土) 02:49:35ID:/LSToqrfコッド博士クラスの優秀なDB開発者を雇ってMySQLを改造してもらえ。
0843NAME IS NULL
2008/05/24(土) 03:34:26ID:VAruVHOx0844NAME IS NULL
2008/05/24(土) 03:39:53ID:???土下座て。
やるだけの事はやってちゃんと検証データとボトルネック、仕組み的に無理ですって事を踏まえた上で
それでもなんとかしろと言うならやりますが、紆余曲折、最悪こういう想定事態になりますが
よろしいですか?ってクライアントと折衝する人に言ってもらえばどうでしょうか。
自分の仕事は最低限筋の通った理屈を報告して折衝担当者に理解してもらうこと。
もちろん前向きにね。
自分の仕事を理解し、精一杯やるだけやってしっかりとこなした上で無理難題言う上司や客に必要以上の負担を強いられる道理はないでしょ?
ただその事を丁寧にビジネス用語で当たり障り無く表現して相手に理解、納得してもらうよう「伝える」努力は必要ですけど。
私もそこまでのデータの運用経験はないけど、微力ながら言わせてもらうと
■ハード面
・SASでRAID0+1 ファイバーチャネル使えるならそれに越したことはないけど。
=> ディスクの読み込み速度が上がって結果的にMySQLの更新・参照・集計早くなります。
=> バックアップできます。三世代管理くらいまではしたほうが幸せになれるかも。
=> RAIDはライトキャッシュとBBUのついているものを使用 なるべくキャッシュは多い方がいいです。
2GとかつけれるのもあるけどRAIDカード選びは慎重にね。
ディスクはシークタイムがあるから10000rpmのもので秒間16コミットしかできない
ライトキャッシュ積むといっぱいコミットできます
・レプリケーション
=> レプリケーションしているとは思うけど、なんとなくしてなさそうな節があるのでやって見て下さい。
スレーブサーバに参照を掛けるとスレーブの台数分だけ参照はバンバン早くなります。
ただし、マスターと完全同期ではないので入金処理等精度の必要な部分はマスターを使って下さい。
アプリケーション側でのスレーブ参照制御が面倒なら間にLVSでもなんでもいいからロードバランサー仕込むと吉
・memcacheサーバ
=> 80G程度ならサーバ10台以内で構築できると思う
更新はライトスルーでMySQLにも書いて単純参照はmemcacheからすると涙でるほど早い。
但しきちんと両方更新されたか確認、制御する仕組みは必要。
ソフト面に続く
0845NAME IS NULL
2008/05/24(土) 04:32:39ID:???・設計の見直し
=> 詳細知らないので絶対とは言えませんが、MySQL用にテーブル設計、運用設計見直した方がいいと思います。
単一テーブル80Gは異常に思えます。
同一テーブルを複数作って分割・分散したり非正規化してみたり。
内部の詳しい人に相談して下さい。詳細知らないと設計はできません。
・インデックスの見直し
=> 当然ですがインデックスの付け方と発行クエリでMySQLの速度は1000倍違うこともあります。
複合インデックス、プライマリ、単一ユニーク、複合ユニーク気を付けながらexplainしてチューニング。
・クエリの見直し
=> これもexplainしながらチューニング 色々調べてみてください。
=> 拡張インサート、INSERT IGNORE等を使うと便利な局面もあるかもしれません。
=> 集計は、トリガを使ってインサート時に集計値をインクリメントしたりすると負荷がさけれます。
=> DELETEは実行コストが高いので、削除フラグを付けて対応する。一日一回纏めてDELETE処理する等
・MyISAM、InnoDB
=> 参照はMyISAM、更新はInnoDB。
ライトスルー、レプリケーションと合わせて使えばパフォーマンス全然違います。
MyISAMはライトロックが有効かもしれません。デッドロックに気をつけて。
・コンパイル
=> MySQLはソースからICCでコンパイル。速いっす。
・文字コード
=> できればUTF-8。一番苦労しなくて済みます。MySQLの内部コードもUTF-8。
・チューニング
=> ケースバイケースなんでなんとも言えませんが
tmp_table_size
max_heap_table_size
は同じ値にしないとダメですよー
query_cacheをしてみてください
禁断のチューニング
innodb_support_xa = OFF
innodb_flush_method = O_DIRECT
sync_binlog = 0
innodb_flush_log_at_trx_commit = 2
innodbを使用している場合上記設定だとディスクIOがガンガン減るので更新負荷がガクンと下がります。
ただし、データの保存性は最悪。
予期せぬマシンダウンがあれば復旧できない場合もあります。
・専門のコンサル
=> 実現までの早さと質が必要ならMySQLに習熟してる会社にコンサル依頼するのが一番早いような気が・・・
KLABさんにでも頼んでみたら?とふと思いました。
私も規模が大きくなるに連れて運用に悩まされ、夢の中のトイレで自分のションベンの放物線を眺めている時でさえMySQLの事を
考えていた時期が三ヶ月ほどありました。
データもいっぱい壊しました。いっぱい怒られました。あぁ思い出したらトイレに行きたくなってきたのでこれくらいで。
0846NAME IS NULL
2008/05/24(土) 04:38:50ID:???0847NAME IS NULL
2008/05/24(土) 08:15:30ID:???実例を入れて膨らませて、本にしてくれませんか。絶対買います。
0848NAME IS NULL
2008/05/24(土) 08:50:47ID:???0849NAME IS NULL
2008/05/24(土) 13:53:59ID:???ありがとう、めっさ参考になった。
0850NAME IS NULL
2008/05/24(土) 20:05:43ID:???ちょっと、ブログかなんかに書いておくれよ
0851NAME IS NULL
2008/05/24(土) 21:17:02ID:???0852NAME IS NULL
2008/05/25(日) 11:54:18ID:G//yp2T+MySQLでテーブルを結合する方法として以下の二つがあります。
1.select * from HOGE as a, FOO as b where a.id = b.id
2.select * from HOGE as a inner join FOO as b on a.id = b.id
この二つの方法のうち、どちらが人気でしょうか?
また、性能の違いはありますでしょうか?
0853NAME IS NULL
2008/05/25(日) 13:58:22ID:CfdJAAug結合条件をFROM句に書いたか
WHERE句に書いたかの違いだけだと思うけど。
性能の違いはないんじゃないかな?
1のように結合条件をWHERE句にごちゃごちゃとかくよりも
2みたいにFROM句に書いたほうが
テーブルとの関係が分かりやすいのはあるかもね。
でも自分は1の方法が多いかな。
以上、末節ながら。。。
0854NAME IS NULL
2008/05/25(日) 15:30:43ID:???DB元のサイトによると予想時間が八時間ということですが、同じように予想時間二時間のファイルをインポートした時は16時間かかりました
170時間以上経過というのは異常でしょうか? また原因はどこにあるでしょうか?
スペックはCPU:Celeron2.2G,Mem:DDR333の512MB,HDD:UltraATA/100の40GB、Ubuntu8.04上で動かしています
0855NAME IS NULL
2008/05/25(日) 15:50:29ID:???MySQL詳しくないんだが、インポートの途中経過とかログに出せないの?
CPU使用率とかディスクアクセス見るしかない?
0856NAME IS NULL
2008/05/25(日) 15:54:12ID:???作業を始めてからGUIの動作を受け付けなくなりましたorz
さっき調べたら途中経過を出すステートメントを見つけましたが、作業中でコマンド入力不能……
一度落としてデータベースを空にしてから再開しようかと迷ってます
0857NAME IS NULL
2008/05/25(日) 17:20:47ID:???メモリーが少なすぎないか?
せめて1GBは無いと、その規模では予想時間の倍の時間がかかるイメージ。
0858NAME IS NULL
2008/05/25(日) 18:14:09ID:???データベース区切った方が早いよ
自分の場合、1GBちょっと約700万のデータを50万レコードごと区切って入れたら1時間くらいだった。
あと基本だけど
・リモートよりサーバにUPしてから、コマンド打って入れたほうが数倍早い
・INSERT文はマルチインサートの方が数十倍早い
・インデックス貼ってるなら削除してからの方が早い
因みに環境はCPU:Athlon 3200 ,Mem:1GB
0859NAME IS NULL
2008/05/25(日) 21:50:45ID:???text型を使う意義ってあるのでしょうか?
0860NAME IS NULL
2008/05/26(月) 08:30:12ID:anlWXK4f明示的に使うことがあるよね。
0861NAME IS NULL
2008/05/26(月) 08:35:58ID:???0862NAME IS NULL
2008/05/26(月) 14:24:40ID:???syntaxエラーが出てしまい困っております。
どのように改修したら宜しいでしょうか?
アドバイス頂ければと思います。
create table m_user(
No integer PRIMARY KEY AUTO_INCREMENT,
ID char(8) UNIQUE KEY,
password varchar(20),
name varchar(20),
mail_address varchar(50),
authority varchar(2) NOTNULL);
エラー内容は下記です。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'NOTNU
LL)' at line 7
0863862
2008/05/26(月) 14:42:08ID:???MYSQLのVerは5.0です。
宜しくお願いいたします。
0864NAME IS NULL
2008/05/26(月) 14:46:05ID:???0865854
2008/05/26(月) 14:51:12ID:???一気に三倍の1.5GBにして、HDD領域も少し増やして、改めてテーブルを用意して流し込んでます
結果が出たらまた報告しますね
0867NAME IS NULL
2008/05/26(月) 21:30:33ID:+Ce61WTVコマンドプロンプトでmysql -u root -pって入力した時に入れるパスワード
ってなんですか?
xamppでphpと一括でインストールして始めてやってみようとしたんですけど・・・
0868NAME IS NULL
2008/05/26(月) 21:51:49ID:+Ce61WTVサイトで調べて、mysqladmin -u root password パスワード
と入力したら、
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost (using password: NO)
と出たんですけどどうゆう意味ですか?
0869NAME IS NULL
2008/05/26(月) 21:52:09ID:???0870NAME IS NULL
2008/05/26(月) 22:02:48ID:MQWbRVv1っていれたら、英語がいっぱい出てきました!
0871NAME IS NULL
2008/05/26(月) 22:12:38ID:???0872NAME IS NULL
2008/05/26(月) 22:18:08ID:t8RRxsu70873NAME IS NULL
2008/05/27(火) 02:23:53ID:mN2Gb71B0874NAME IS NULL
2008/05/27(火) 03:55:09ID:???注文明細テーブルにある金額カラムに
自動でインサートしたいんですが何か方法はありますか?
たとえば、
商品単価=100
数量=3
だったら、自動で金額カラムに300とインサートしたいです。
数量を4に変更したら金額が400になって欲しいです。
0875NAME IS NULL
2008/05/27(火) 03:58:05ID:???0876NAME IS NULL
2008/05/27(火) 03:58:35ID:???0877NAME IS NULL
2008/05/27(火) 05:31:49ID:???0878NAME IS NULL
2008/05/27(火) 10:59:28ID:???INSERT文の中に、算術記号も使えた。
INSERT INTO tbl (金額) VALUES (商品単価*数量);
MySQLも似たようなことが出来るはず。
0879NAME IS NULL
2008/05/27(火) 13:35:56ID:???0880NAME IS NULL
2008/05/27(火) 19:03:30ID:???「TABLE_NAME」とか大文字とアンダバー組み合わせて統一?
本やググっても「これが定番」という資料がみつからないんで、ちと困ってます。
0881NAME IS NULL
2008/05/27(火) 19:05:03ID:???0882NAME IS NULL
2008/05/27(火) 19:08:35ID:???別に特に気にしてない。気分次第かな。
カラム名については、外部参照するようなidなんかは、
"なんたら_id"みたいな感じ。
ちなみに、大文字小文字については、Unix環境だけでなく、
まったく同じ構成のDBをWin環境でもテストとかするから、小文字で統一。
0883NAME IS NULL
2008/05/27(火) 19:14:31ID:???0885NAME IS NULL
2008/05/27(火) 21:15:40ID:???2byteだけはやめとけ。
英語でもローマ字表記でもいいから、ASCII文字の方がOSが変わっても扱いやすい。
0886NAME IS NULL
2008/05/28(水) 00:37:08ID:???-----------------------------------
id int
name VARCHAR(128)
priority TINYINT(2) DEFAULT 1
-----------------------------------
こんなテーブルがあったとして以下の条件でデータをとるにはどうすればいいでしょうか?
カラムは5つ
ランダムでとる
priority(優先度)が高いものが選ばれる可能性を高くする
5つとる・ランダムは以下でできますが
SELECT * FROM `hoge` Order By rand() limit 0,5;
優先順位を考慮に入れるとり方が思いつきません。
正確(完璧なアルゴリズム)ではなくてもいいのでご鞭撻のほどお願いします。
テーブルのつくりに問題がある場合もおっしゃっていただけると助かります。
今考えているのは
先に優先順位でソートして上位数件取得
そこからランダム取得
です。
0887NAME IS NULL
2008/05/28(水) 02:27:58ID:???優先順位が高いと当たる確立が上がる という意味でしょうか。
その場合でしたら、やり方はいろいろあるでしょうけど、
シンプルなのは優先順位の値に従い該当レコードを
重複させたリストを作り、それに対してランダム取得など。
0888NAME IS NULL
2008/05/28(水) 03:40:11ID:???今即席で考えてみた。
priority の値を1〜5として、
select *,(rand()*5 + priority) as rand_col from hoge order by rand_col desc limit 1;
みたいな感じでどうか。(実際はpriorityの数値と、rand()*nのnを適切に与えてやらないといけないが・・)
上の例を、レコード5件、priorityを1.2.3.4.5としてやってみて、10000回の結果(それぞれのidが最大になった回数)
(priorityの値が大きいほうが選ばれやすい。言葉の意味的には逆なような気が??)
1 = 28
2 = 259
3 = 1058
4 = 2767
5 = 5888
割合的には、(約)1:10:40:100:200
もっときれいに分かれるかと思ったけど、微妙だな・・・。
(文系脳ではここら辺が限界、スマソ)
0889NAME IS NULL
2008/05/28(水) 09:11:48ID:l7349jpGmy.cnfファイルの
[mysqldump]と[client]部分にdefault-character-set=utf8
と記述したんですが、コマンドプロンプトで
Show VARIABLES LIKE 'CHAR%'; と入力し確認したんですが、
latin1のままになってます。
どうすれば変更できますか?
0890NAME IS NULL
2008/05/28(水) 10:49:33ID:???0891NAME IS NULL
2008/05/28(水) 15:09:44ID:OeWwUjG2確認せずにボロボロこぼしてしまった.
まぁローカルのサービスだったからよかったけど.
0892NAME IS NULL
2008/05/28(水) 15:40:03ID:NgaxVuoBDQN男の家族消えろ DQN男の親消えろ DQN男の友達消えろ DQN男の親戚消えろ
DQN男の家族消えろ DQN男の親消えろ DQN男の友達消えろ DQN男の親戚消えろ
DQN男の家族消えろ DQN男の親消えろ DQN男の友達消えろ DQN男の親戚消えろ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね
苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね
苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね
苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね苦しんで死ね
死ぬとき このレスの事思い出してから地獄いけよ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
0893889
2008/05/28(水) 17:31:34ID:xeQEQXZcどこの部分に書き込めばいいんですか?
0894NAME IS NULL
2008/05/28(水) 18:18:08ID:???0895NAME IS NULL
2008/05/28(水) 18:48:13ID:???落ち着けw
0896NAME IS NULL
2008/05/28(水) 19:38:46ID:???GPL汚染とはいえ、SQL叩いただけでというのは意味が分からないんですが・・
0897NAME IS NULL
2008/05/28(水) 20:05:24ID:???「MySQL 4.0.2 はレプリケーション目的には適しません」
とありますがこれは何故なんでしょうか?
現在4.027を使っています。
0898NAME IS NULL
2008/05/28(水) 20:15:15ID:???ALTER TABLE address ADO PRIMARY KEY (NUMBER);と入力したら、
ERROR 1064 (42000): You habe an error in your SQL syntax; check the manulal that
corresponds to your MySQL serber version for the right syntax to use near
'ADO PRIMARY KEY(number)' at line 1
とゆうエラーが出たんですけどどうゆう意味ですか?
0899NAME IS NULL
2008/05/28(水) 20:15:38ID:???アプリ販売するなら一応そうだけど、MySQL+PHPの場合は回避されるはず。それで一回MySQLのサポート外したから>PHP
0900ほい!
2008/05/28(水) 20:51:36ID:3lvkdlof「にっこっこ掲示板」ヤフーで検索してみ!「にっこっこ」でOK
新しいの誕生したよ
まだ規制ないし、色々貼れる
0901NAME IS NULL
2008/05/28(水) 20:56:27ID:???そうですかありがとうございます :]
0902854
2008/05/28(水) 22:46:11ID:???無事に60時間で作業完了しました!
メモリの増設は効果覿面だったみたいです。
0903NAME IS NULL
2008/05/28(水) 23:18:52ID:???結局、どういう方法でインポートしたの?
他の人間の為にも、報告よろ
0904NAME IS NULL
2008/05/29(木) 01:27:03ID:???おつかれw
そこの環境だと予想の8倍かかると覚えておけばよいのかなw
0905NAME IS NULL
2008/05/29(木) 11:47:29ID:???ADOがTYPOでは?
0906NAME IS NULL
2008/05/29(木) 11:51:28ID:???これエラーメッセージからのコピペ?
0907NAME IS NULL
2008/05/29(木) 11:51:36ID:???察してやれ。なにしろ you habe に serber だ。
0908NAME IS NULL
2008/05/29(木) 11:55:27ID:???MySQLは初めて触れたので、入れたいプログラム
(http://www.perseus.tufts.edu/hopper/)の指示通りに
mysql -uユーザー -p データベース名 < importfile.sql
でやりました
>>904
ですねー
一万円で買ったパソコンならこのスピードでも大満足ですwww
0909NAME IS NULL
2008/05/29(木) 12:28:55ID:???やっぱりそうか。実は>>854の時から気にはなってたんだが、
http://bugs.mysql.com/bug.php?id=33057
このバグに関係ありかもしれない。
5.0では5.0.52〜5.0.54まで、5.1でも5.1.22とかはコレに該当しそう。
ウチでも、5.0.51ではほんの数秒で完了するインポートが、5.0.52で数分〜十分位かかったから
調べてみて発見した。ちなみに、5.0.56以降、5.1.23以降はFixされてる。
0910名無しさん@Vim%Chalice
2008/05/29(木) 17:01:38ID:VDNC7sY4このソフトってmysql以外のRDBMSに接続することって可能でしょうか?
可能な場合、その種類について教えてください。
リバース、フォワードエンジニアリングができればよいと考えています。
よろしくお願いします。
0911NAME IS NULL
2008/05/30(金) 01:21:05ID:???ネット証券会社が主催するFX(外国為替証拠金)取引コンテストの発表会が21日、都内で行われた。
コンテストに特別参加するグラビアアイドルの滝沢乃南さん、山本彩乃さん、折原みかさん、山口愛実さん、佐々木梨絵さん
の5人が顔をそろえ、シストレに挑戦する意気込みなどを語った。
同コンテストは、自分で作成したトレードソフトの機能を評価する「シストレソフト部門」と、
FX初心者でも安心の仮想マネーを使った取引を体験できる「トレード部門」で賞金総額2000万円を争う。
シストレ優秀ソフトは、最高2000万円までの範囲内で買い取りの可能性もあるという。登録受付は22日から。
仮想取引は6月2日〜09年4月30日までとなっている。
ttp://www.fx-gp.com/
●社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
https://www.click-sec.com/corp/guide/demo/
0912NAME IS NULL
2008/05/30(金) 03:26:51ID:???number int auto_increment,
title VARCHAR(100) NOT NULL
tag_table
number_tag int auto_increment,
number int,
title VARCHAR(100) NOT NULL
タギングテーブル(tag_table)と商品テーブル(var_table)から検索する際の取り方なのですが、
val_table.titleとtag_table.title(複数の場合や存在しない場合もある)からlikeで調べたいのです。
ただ、タグが複数ある場合、存在しない場合などの際、うまくとれません。
複数ある場合はCONCATで結合、タグが存在しない場合はval_tableのtitleのみから調べて返してほしいのですがどうすればいいでしょうか?
SELECT a.title from hoge_table a,tag_table b where a.number = b.number;
0913NAME IS NULL
2008/05/30(金) 06:49:37ID:???LEFT JOIN
select a.number,a.title,b.title from val_table as a LEFT JOIN tag_table as b on (a.number = b.number_tag);
>複数ある場合はCONCATで結合
GROUP_CONCAT() # mysql 独特なので注意
select min(a.number),min(a.title),GROUP_CONCAT(b.title) from val_table as a LEFT JOIN tag_table as b on (a.number = b.number_tag) GROUP BY a.number;
0914NAME IS NULL
2008/05/30(金) 13:16:38ID:???4.0.2はわからんが、
数年前の4.0.xx(忘れた)のころはレプリケーションにバグがあって
マスターとスレーブの内容が一致しないなんてことが起こった。
その後なおったはずだけど…
0915NAME IS NULL
2008/05/30(金) 13:29:24ID:eZR1pwPYそんなので何のために使えるんだろうか・・・
参照系の不完全な負荷分散専用?
0916965
2008/05/30(金) 16:36:34ID:???ありがとうございます!
結合はそれでいけました。
ただ、GROUP_CONCAT(b.title)をlike 検索できません。
GROUP_CONCAT(b.title) As tags
にして
tags like "%test%"
してみたのですが
unknown column になります。
0917912
2008/05/30(金) 16:48:56ID:???そしてHAVING でできました。
913さんほんとうにありがとうございます。
0918NAME IS NULL
2008/05/30(金) 19:56:01ID:Z2jF5HUG田舎DQN男の家族消えろ 田舎DQN男の親消えろ 田舎DQN男の子供消えろ 田舎DQN男の親戚消えろ
田舎DQN男の家族消えろ 田舎DQN男の親消えろ 田舎DQN男の子供消えろ 田舎DQN男の親戚消えろ
田舎DQN男の家族消えろ 田舎DQN男の親消えろ 田舎DQN男の子供消えろ 田舎DQN男の親戚消えろ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
死ぬとき このレスの事思い出してから地獄へ行けよ
ニヤ(・∀・)ニヤ(・∀・)
0919NAME IS NULL
2008/05/30(金) 21:17:36ID:XvuF1EUTrootのmysqlのパスワードをリセットしようとしているのですが、
うまくいきません。
xamppに付属のバッチファイルでパスワード削除できるとFAQに書いてあるのですが、
mysql\resetroot.bat がエラーで動作しません orz
apache friends - xampp windows版faq
http://www.apachefriends.org/jp/faq-xampp-windows.html#password2
エラー内容は、下記です。
ERROR: 1136 Column count doesn't match value count at row 1
080530 21:10:06 [ERROR] Aborting
080530 21:10:06 [Note] bin\mysqld.exe: Shutdown complete
Passwoerter fuer Benutzer "root" und "pma" wurden geloescht.
Passwords for user "root" and "pma" were deleted.
続行するには何かキーを押してください . . .
また同じエラーの下記の対処をしても同じエラーがでてしまました。
リアルシステムズ/IT化・情報化・ホームページの企画・設計・開発:xamppのmysqlでrootパスワードがresetroot.batでリセットできない
http://blog.livedoor.jp/real_systems/archives/51166848.html
どうにかパスワードをリセットする方法はないでしょうか?
0920NAME IS NULL
2008/05/30(金) 22:49:27ID:???0921919
2008/05/31(土) 03:43:29ID:P9Fe+Y8M解決しましたらこちらに報告に来ます。
お騒がせしました。
0922NAME IS NULL
2008/05/31(土) 10:54:59ID:w17RNyoM絶対に打ち込んではいけないコマンドを
私に伝授してください!!!!!!
0923NAME IS NULL
2008/05/31(土) 11:52:21ID:???0924NAME IS NULL
2008/05/31(土) 11:54:53ID:???0925NAME IS NULL
2008/05/31(土) 11:55:21ID:???drop database mysql
0926NAME IS NULL
2008/05/31(土) 12:01:48ID:???0927NAME IS NULL
2008/05/31(土) 12:57:23ID:w17RNyoMこら〜!
とんでもないことなってもうたやないかい!
0928NAME IS NULL
2008/05/31(土) 13:13:36ID:yOEBInyWファイルシステムでもおなじか
0929NAME IS NULL
2008/05/31(土) 13:18:08ID:???包み隠さないことはいいことだ。
0930NAME IS NULL
2008/05/31(土) 13:31:42ID:???まったくだ。 grant なんとか on *.* が mysql.* まで含んでしまうのは、まずいと思う。
まあ *.* するのがまずいんだろうけど。
0931NAME IS NULL
2008/05/31(土) 13:36:25ID:???いい加減さもウリの1つです。
0932NAME IS NULL
2008/06/01(日) 17:46:19ID:???305 Query SET NAMES ujis
305 Query SET character_set_results = NULL
305 Query SET autocommit=1
305 Query SET sql_mode='STRICT_TRANS_TABLES'
305 Query SET NAMES sjis <-------これは誰が発行しているのかわかりません
305 Query UPDATE tab1 SET name = 'jdbc 修正 myjava3.java', note = 'myjava jdbc 修正 ' WHERE number = 70
305 Quit
java のコードに sjis に設定しているってこと?
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_results | ujis |
| character_set_server | ujis |
0933NAME IS NULL
2008/06/01(日) 20:57:44ID:???0934NAME IS NULL
2008/06/01(日) 21:26:07ID:???0935NAME IS NULL
2008/06/01(日) 23:39:26ID:???2chを開いて「自己解決しました」
と書き込む
0936NAME IS NULL
2008/06/02(月) 16:59:47ID:???test テーブル
| id | name | group_id |
+-----------------------+
| 1 | test1 | 0 |
| 2 | test2 | 1 |
| 3 | test3 | 0 |
| 4 | test4 | 1 |
| 5 | test5 | 2 |
| 6 | test6 | 2 |
group テーブル
| id | name |
+-------------+
| 1 | group1 |
| 2 | group2 |
上記のテーブルを結合し、下記結果のように
testテーブルのgroup_idが1以上のデータのみ、
group_idでグループ化して表示させることは可能でしょうか。
| test_name | group_name |
+-----------+------------+
| test1 | NULL |
| test2 | group1 |
| test3 | NULL |
| test5 | group2 |
下記のSQL文を実行してみるも、
group_idを持たないデータまでグループ化されてしまいます。
select test.name as test_name,group.name as group_name
from test
left join group on test.group_id = group.id
group by test.group_id
| test_name | group_name |
+-----------+------------+
| test1 | NULL |
| test2 | group1 |
| test5 | group2 |
0937NAME IS NULL
2008/06/02(月) 17:12:43ID:???0938NAME IS NULL
2008/06/02(月) 17:38:59ID:???面白い発想だ
0939NAME IS NULL
2008/06/02(月) 18:02:25ID:???失礼いたしました。
0940NAME IS NULL
2008/06/02(月) 18:35:28ID:???group by の値をユニークにしてやればいいのだから、たとえばこんな感じ?
select min(a.name),b.name from test as a left join group as b on (a.group_id = b.id)
group by case when a.group_id > 0 then a.group_id else a.id -100 end;
-100 はユニークにするためのいい加減な値なので、適当に。
group のような予約語はテーブル名にしない方がいいような気がする。
0941NAME IS NULL
2008/06/02(月) 18:57:44ID:???left join での接続方法を変えてみたらどうなんだろう
SELECT test.name,group.name,test.id,group.id FROM group LEFT JOIN test ON test.id = group.id GROUP BY group.id HAVING test.group_id > 0
テストテーブル作るのが面倒だったから直書きだから動かなかったらスマン
0942NAME IS NULL
2008/06/02(月) 19:01:45ID:???SELECT test.name,group.name,test.group_id,group.id FROM group LEFT JOIN test ON test.group_id = group.id GROUP BY group.id HAVING test.group_id > 0
0943NAME IS NULL
2008/06/02(月) 19:52:21ID:???レスをいただいており、大変感謝いたします。
>>940
>>group のような予約語はテーブル名にしない方がいいような気がする。
例としてわかりやすいテーブル名にしようと思い、
とんだミスをしてしまいました…。気を付けます。
>>select min(a.name),b.name from test as a left join group as b on (a.group_id = b.id)
>>group by case when a.group_id > 0 then a.group_id else a.id -100 end;
この方法で解決できました!
テスト用でも本DBでも正常に動作しました。ありがとうございます。
>>942
>>SELECT test.name,group.name,test.group_id,group.id FROM group LEFT JOIN test ON test.group_id = group.id GROUP BY group.id HAVING test.group_id > 0
この方法も試させていただきました。
すると、group_idを持たないデータは表示されなくなるようです。
| test_name | group_name |
+---------+-----------+
| test2 | group1 |
| test5 | group2 |
しかしながら、大変勉強になるレスをいただきまして
ありがとうございました。
0944NAME IS NULL
2008/06/03(火) 20:53:33ID:9lp1uw3k打つのをしり込みする
コマンドを
もしあれば
伝授してください!
0945NAME IS NULL
2008/06/03(火) 21:28:22ID:???マスターじゃないけど rm -rf でディレクトリを削除するのはやっぱり
不安だよ。何回も確認する。
0946NAME IS NULL
2008/06/04(水) 11:22:18ID:???最近、パーティショニングを使い始めました。
やりたいことはPARTITION BY KEY()を使用したパーティショニングをし、
分割したデータやインデックスをdisk分散させるということなのですが、
これを実現させるには個々のパーティションに対し、DATA DIRECTORYと
INDEX DIRECTORYを地道に指定していくしかないのでしょうか?
0947NAME IS NULL
2008/06/04(水) 16:53:49ID:sTUXwMfMUPDATE test SET name='bbb' WHERE id='2'
UPDATE test SET name='ccc' WHERE id='3'
と言うように、各レコードを更新するに辺り
上記のように3回のSQLを実行せずに、まとめて1回で実行する
方法はありますでしょうか?
0948NAME IS NULL
2008/06/04(水) 17:20:59ID:???name=IF(id=1,'aaa),
IF(id=2,'bbb',
IF(id=3,'ccc', 'xxx')
)
)
WHERE id in (1,2,3)
0949NAME IS NULL
2008/06/04(水) 17:44:01ID:???0950NAME IS NULL
2008/06/04(水) 17:46:30ID:???0951NAME IS NULL
2008/06/04(水) 19:41:26ID:???autoincrement のフィールドの値が変わるじゃねぇか…。
0952NAME IS NULL
2008/06/04(水) 23:33:29ID:R8ngxTCT秘密のコマンドがあると聞いた
そのコマンドとは?
0953NAME IS NULL
2008/06/04(水) 23:46:50ID:???>>952が知らないコマンドは出てくるんじゃないの?
0954NAME IS NULL
2008/06/05(木) 01:51:04ID:???またかよ…。 だからSELECTだっつってんだろが
0955NAME IS NULL
2008/06/05(木) 11:41:51ID:???でも誰も知らないから誰も答えられません。
0956NAME IS NULL
2008/06/05(木) 16:34:39ID:539Qwkefmysql-3.23.58-16.FC3.1から
アップデートしたいのですが、
どうすればよいのでしょうか?
0957NAME IS NULL
2008/06/05(木) 18:55:13ID:???0958NAME IS NULL
2008/06/05(木) 20:17:33ID:539Qwkefやはりそれが一番簡単ですかね。
ドメインとメールアカウントが
けっこうあるので移転がめんどうだ・・・
0959NAME IS NULL
2008/06/07(土) 02:13:41ID:YKItF8pvもし、スレ違いだったら誘導してくれると嬉しいです。
服の検索をするためのテーブル設計について行き詰まっています。
同じ服だけど、他種類のサイズがある場合、
どういうテーブル設計にすればいいか考えあぐねています。
現状では、
(1) 服のサイズ以外の基本情報テーブル
(2) 服の型番で、各サイズごとに記載したテーブル
を用意しています。
サイズで検索し、当てはまった商品の基本情報と全サイズ一覧を出す場合、
一度のリクエストで、何度もクエリを送信しなければならず、非効率です。
何とか良い方法はないでしょうか?
あるいは、そういう目的別のテーブル設計事例集などがあればいいのですが、
テーブル設計でAmazon検索しても、なぜか魔法瓶が羅列されてしまって、参考になりませんw
お薦めの本、あるいは、複数サイズの洋服の最適なテーブル設計があれば、
ヒントだけでも頂けませんでしょうか?
0960NAME IS NULL
2008/06/07(土) 03:54:16ID:???0961NAME IS NULL
2008/06/07(土) 07:45:35ID:???型番ごとに各サイズを格納するという作業をプログラム側でやってしまうのは、
良い方法なのでしょうか? なんか泥臭い感じがして。
0962NAME IS NULL
2008/06/07(土) 09:19:41ID:???あのね、「服の型番」と「サイズ」がどういう関係にあるか自体、業界外の人間には分からないんだ。
「型番」が決まればサイズが決まるのか、それとも、型番→サイズというハイアラーキーになっているのかとか…。
「型番」=「商品の基本情報」(のプライマリキー)で、「型番」→「サイズ」がハイアラーキーなのなら、
「型番ごとに各サイズを格納するという作業」は単なるJOINだから、プログラム側では何もしなくてよいのでは。
0963NAME IS NULL
2008/06/07(土) 09:48:42ID:???業界や会社の物事を、いかにコンピューター上で実現するか。
0964NAME IS NULL
2008/06/07(土) 10:50:32ID:???例えば、型番「hoge」の中にS(15)、M(20)、L(25)があるというイメージです。
言われているハイアラーキーな関係になるかと思います。
>>959で言うと、
(1) テーブルに、型番「foo」の基本情報のフィールドがあり、
(2) テーブルに、S、M、L というサイズのフィールドが、
型番「foo」に対してそれぞれあります。
上記前提で、
例えばサイズ検索をして、hogeのMが引っ掛かった場合、
「foo」の全サイズ情報も出力したいので、SとLのフィールドが必要になります。
しかし、型番「bar」のサイズ展開は、L、XL、XXLであるため、
型番を元に、サイズをひとつのフィールドにまとめてしまうと、
検索するのに問題が生じます。
よって、それぞれのサイズのフィールドに、
各型番の基本情報をまとめるようなビューを作成しなければならないのです。
この方式だと、検索結果に一致したサイズの型番で
改めてクエリを投げて、結果をまとめるという処理が必要になります。
未熟なので、もっと効率的な方法はいくらでもあるのでしょうし、
指摘されている方法であっけなく片付けられる手順があるのかも知れませんが、
それを学ぶ手段や書籍を見つけられずに試行錯誤しているのが現状です。
MySQLに関してチューニングや入門書はいくらでも見つけられるのですが、
こういう事例に関しての設計例は、一切見つけられなくて困っています。
何とかお知恵あるいは書籍の情報を頂ければと思うのですが。
0965NAME IS NULL
2008/06/07(土) 11:14:02ID:???の意味が分からん。
単純に、これじゃだめなの?
基本情報に「bar」があり、サイズがMかLのものを取得。
create table dress (RID int primary key auto_increment, ID varchar(24), sz varchar(8));
create table info (RID int primary key auto_increment, ID varchar(24), body text);
insert into dress (ID,sz) values ('foo','S'),('foo','M'),('foo','L),('bar','S'),('bar','M'),('bar','L'),('bar','LL'),('bar','LX');
insert into info (ID,body) values('foo','dress type foo'),('bar','dress type bar');
select distinct D.ID,D.sz,I.body from dress as D left join info as I using (ID) where (I.body like '%bar%' and( D.sz = 'M' or D.sz = 'L'));
0966964
2008/06/07(土) 11:14:09ID:???n,type,size,length,width
1,'foo','S',15,40
2,'foo','M',20,45
3,'foo','L',25,50
4,'bar','L',24,52
5,'bar','XL',28,58
6,'bar','XXL',32,64
・商品情報テーブル item
n,type,name,info
1,'foo','ふー','フーな感じです。'
2,'bar','ばー','バーな感じです。'
かなりシンプルにしましたが、
テーブルのイメージとしてはこんな感じです。
ここからsize.lengthで検索し、
一致したtypeの商品情報と他のサイズの情報を取り出したいのです。
良い設計あるいは最適な取り出し方について事例を知っていれば
教えて頂けると嬉しいです。
0967964
2008/06/07(土) 11:26:12ID:???すいません、入れ違いました。
ご回答ありがとうございます。
ただ、>>966のようなイメージなのです。
>>965だと、barのLに関するdress, info情報は返ってきますが、
同時に(同時じゃなくてもいいですが)、barのLLとXLのdress情報も欲しいのです。
0968NAME IS NULL
2008/06/07(土) 11:30:15ID:???試してないけど
select distinct I.type,I.name,S.size,S.length,S.width from item as I left join size as S using(type)
where exists (select X.type from size as X where (X.size = 'M' and X.length= 15 and X.type = I.type);
0969NAME IS NULL
2008/06/07(土) 11:31:40ID:FRaL8y0I5.0や6.0のバージョンではないの?
コマンドからしかできないのですかね?
0970NAME IS NULL
2008/06/07(土) 11:56:22ID:???ありがとうございます。
非常に参考になります。
かなり欲しい結果に近い部分を得られました。
select distinct I.type,I.name,S.size,S.length,S.width from item as I left join size as S using(type)
where exists (select X.type from size as X where (X.length=15 and X.type=I.type));
で、fooのsize「S」が一致し、fooの全ての情報が取り出せました。
これに、X.length=15にあてはまるS.sizeがどれなのかも合わせて欲しいのです。
やはり、その場合は2回クエリを投げる必要がありますか?
実際のテーブルは規模がもっと大きいので、
検索結果が100件あるとすると、
ひとつのリクエストなのに1+100回クエリを投げないといけなくなり、
どうにか上手にまとめられればと思います。
0971964
2008/06/07(土) 12:03:39ID:???よく考えると、>>968さんのクエリと、
通常のサイズ検索クエリ(select size from size where length=15;など)の2回やれば、
欲しい結果が全て得られることが分かりました。
1回では不可能な気がするので、現状最善の方法が見つかりました。
これでどうにかなりそうです。
大変勉強になりました。ありがとうございます。
0972NAME IS NULL
2008/06/07(土) 20:56:12ID:???GUI tools
0973NAME IS NULL
2008/06/08(日) 09:11:08ID:???mysql-5.1.24-rc-win32.zip をダウンロード&解凍し、インストール自体は問題無くできたのですが、
その後に行う Server Instance Config Wizard の最後のでエラーとなってしまいます。
ttp://sylphys.ddo.jp/upld2nd/pc3/src/1212883375565.png
ttp://sylphys.ddo.jp/upld2nd/pc3/src/1212883466326.png
(恐らく、推測、妄想…)パスワードを設定したのにも関わらず、
パスワードなしでログインしようとしてエラーになっているのでしょうか?だとしたら、バグ?
結局、この最後に行う "Apply Security Settings" って何を行うのでしょうか?
0974NAME IS NULL
2008/06/08(日) 13:16:18ID:???information_schema
っていうデータベースって削除してよい?
本家の解説読んでもイマイチワカランカッタ
0975NAME IS NULL
2008/06/08(日) 13:42:57ID:???0976NAME IS NULL
2008/06/09(月) 02:47:03ID:???それVIEWみたいなもんだろ。
各テーブルの情報がテーブルっぽく見えてるだけのような。
消す意味が分からん。
0977NAME IS NULL
2008/06/09(月) 02:54:10ID:???おまいは testデータベースも残しておけ
0978NAME IS NULL
2008/06/09(月) 22:10:35ID:???information_schemaはRDBMSにとって必須なものだよ。
Windowsのレジストリってよくわからない設定しか書いてないから
消してよい?って言ってるようなもん。
つまり、「それを消すなんてとんでもない。」
0979NAME IS NULL
2008/06/10(火) 01:29:46ID:???みたいにしてビューを作ると「*」が展開された形で作成されてしまい、
元のテーブルtのカラムが増減したときビューを作り直さなければならない
のですが、「*」を展開しない状態でビューを作ることはできないのでしょうか?
0980NAME IS NULL
2008/06/10(火) 03:18:18ID:dXdBkxZR? /秒の数値を見ているのですが、
「52.55」になっています。
起動してから一秒当たり52.55回SQLが発行されたという意味だと思いますが、
MYSQLでどの程度まで耐えられるのでしょうか?
これから、アクセスが伸びていくサイトなので、どの辺までが限界が読めなくて困っています。
max_connectionの設定を1000にしてあるので、最大接続数エラーになったことはないのですが、
サーバーのこの数値がここまでいくと、そろそろ限界っていったものがありますか?
宜しくお願いします。
0981NAME IS NULL
2008/06/10(火) 08:33:45ID:???そうゆうのは、本番環境に投入する前にベンチなりとっとくもんじゃね?
それに、当然CPU,Memにもよるだろうし、ほかのプロセス(httddとかphpとか)状況にもよるし、
なにより、どんなクエリが発行されるかによって、(同一ハード環境でも)はっきり言って100倍違う。
ちなみにウチの環境だと、
cpu Core Duo 2.0Ghz Men 1GB で、
ごく軽いクエリをmysqldが100%cpu使って20000/s以上出るけど、
ちょっと複雑なクエリにすると、途端に1000/s位になるし、
Apache + mod_perl で実環境に近い状態でやると250/s位。
だからウチの場合ではその近辺まではなんも手ぇ打たんでいいかなと判断してる。(現状 20-25/s位で推移してるし)
もちろんこれはウチの環境に限っての話であって、これらの数値は全く意味をなさないけど。
サーバマシンの構成やデータ量、どんなクエリ投げてるかは、君しか知らんから、一概にいくらとは言えないよ。
0982NAME IS NULL
2008/06/10(火) 12:02:34ID:gwmqg6/k0983NAME IS NULL
2008/06/10(火) 12:42:51ID:???作りたいと思っているのですが、手動なら>mysql 起動後に
SQLを打ち込んでいますが、スクリプトからの場合はどのような
方法が良いでしょうか?
0984983
2008/06/10(火) 13:45:11ID:???テキストファイルにコマンド列記し、
mysql -u root < hoge.txt でいけました。失礼しました。
0985NAME IS NULL
2008/06/10(火) 14:13:38ID:???どうすればいいんでしょうか?
教えて下さい。
0986985
2008/06/10(火) 14:49:42ID:???申し訳ありませんでした。
0987973
2008/06/10(火) 16:40:12ID:???0988NAME IS NULL
2008/06/10(火) 17:11:57ID:???0989NAME IS NULL
2008/06/10(火) 23:19:32ID:???0990NAME IS NULL
2008/06/11(水) 08:29:18ID:???> mysql
と
> mysqladmin
はどう違うんでしょうか?
0991NAME IS NULL
2008/06/11(水) 09:22:08ID:???0993NAME IS NULL
2008/06/11(水) 11:43:52ID:???0994NAME IS NULL
2008/06/11(水) 11:56:36ID:???0995990
2008/06/11(水) 14:23:51ID:???なるほど。よくわかりました。ありがとうございます。
>>994
あまりリナックスはさわったことないので挑戦してみます!
0996NAME IS NULL
2008/06/11(水) 14:38:12ID:???PHP の Windows Help に続き、↑の Japanese v5.1 の CHM の Windows HTML Help ファイルでも、
キーワード部分が文字化けしてたので、修正した。ヘルププロジェクトファイルとコンテンツファイルをちょびっと弄った。
欲しい人はどうぞ
ttp://toku.xdisc.net/Sn2/up3/www/re2467.zip.html
レス数が950を超えています。1000を超えると書き込みができなくなります。