[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 14:11 / Filesize : 244 KB / Number-of Response : 847
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

MySQL 総合 Part13



1 名前:NAME IS NULL mailto:sage [2008/01/30(水) 03:49:10 ID:???]
快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part12] pc11.2ch.net/test/read.cgi/db/1190512649/
[関連スレと過去ログ]
find.2ch.net/index.php?STR=MySQL
makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on

[MySQL Developer Zone] dev.mysql.com/
[MySQL 日本語リファレンスマニュアル] dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual] dev.mysql.com/doc/internals/en/

[MyNA] www.mysql.gr.jp/
[MLja] lists.mysql.com/mysql-ja

ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
www.mysql.gr.jp/frame/modules/bwiki/?FAQ
MyNAでの「心得の条」
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.|

655 名前:NAME IS NULL [2008/04/24(木) 14:49:32 ID:6a37T5mr]
質問です
ヤフーでもAmazonでも、大きなポータルみたいなサイトを見ると、トップページに
沢山メニューやカテゴリがあります
(新着、トピック、ニュース、メール受信数、広告などなど)
これは、各領域ごとにSQLの読み込みしてるってことかなと思いますが、一ページに
どの程度リクエスト仕掛けていいんでしょう?
全部をまとめて1リクエストで済ませてるわけじゃないですよね?
そんなにいっぱい一気に読み込んで大丈夫なの?って気になりますが、、
こういうのはメモリとかCPU性能に依存するものなんですか?

変な質問ですみません 
今のところ、1ページ1処理はうまく出来てるんですが、負荷を
沢山かけるものは心配です
参考になるサイトや書籍などあればそれも教えてください お願いします

656 名前:NAME IS NULL mailto:sage [2008/04/24(木) 14:55:16 ID:???]
それがノウハウというやつでして

657 名前:NAME IS NULL [2008/04/24(木) 15:17:51 ID:ZBZQUXh5]
質問させて下さい。
table1
---------------------------
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 'テーブル情報';

どうか宜しくお願い致します。

658 名前:NAME IS NULL mailto:sage [2008/04/24(木) 15:34:13 ID:???]
SELECT T1.no, T21cat, T2.name FROM
(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;

とか?
試してないけど。

659 名前:655 [2008/04/24(木) 15:43:59 ID:6a37T5mr]
ノウハウってことは社外秘みたいな?
ごくごく基礎的な考え方について、まとめてる本なんて知りませんか?
すみません、気になるんです。。

660 名前:NAME IS NULL mailto:sage [2008/04/24(木) 15:50:26 ID:???]
ああいうでかいポータルは1アクセス毎に動的にSQLを発行しているのではなく、
静的HTMLを一度作る時だけSQLを発行しているから無問題。

SQLの結果をキャッシュしておきたければmemcacheを使え。

661 名前:657 mailto:sage [2008/04/24(木) 16:00:29 ID:???]
>>658
レス有り難う御座います。
うおっ結構複雑になってしまいますね・・・
今から提示して頂いたクエリを一つ一つかみ砕いて勉強してみます。

>>655
660さんもおっしゃっているような感じのことがメインですが
WEB+DB PRESS Vol.42にニコニコ動画の技術記事があります。
そこにDBとWEBアプリケーションサーバの大規模運用における勘所みたいなことが結構書かれていて
私は勉強になりました。
お力になれれば幸いです。

662 名前:NAME IS NULL mailto:sage [2008/04/24(木) 16:29:19 ID:???]
分かってると思うけど、T21catはT1.catのtypoね。
試してみたらうまくいったけど、あんまりいい方法ではないよ。
あくまで、答がちゃんと出るレベル。

663 名前:658 mailto:sage [2008/04/24(木) 17:37:55 ID:???]
SELECT no, cat, name FROM table1 T1
WHERE NOT EXISTS(
SELECT * FROM table1 T2 WHERE T1.cat = T2.cat AND T1.no < T2.no
);

とかでもOK



664 名前:NAME IS NULL mailto:sage [2008/04/24(木) 19:47:59 ID:???]
>>659
ノウハウは社外秘まではいかないだろうけど、それが飯の種ってもんです。
何でも知ってる人に聞いてみましょう。

本だったらSQLの簡単なものから読んだらいいんじゃないかな。
MySQLに限らず、RDBMS共通で勉強するといいかも。

665 名前:655 mailto:sage [2008/04/25(金) 06:21:05 ID:???]
>>660
ありがとうございます、一度読み込んだ後にキャッシュする機能があるんですね
それが知れただけでもすごく助かりました
>>661
本の紹介、ありがとうございます
ニコニコの仕組みは勉強になりそうですね! ぜひ読んでみたいと思います ありがとう
>>664
完全独学でまわりに詳しい人いないのでここで聞かせてもらいました
またお世話になると思います、よろしくお願いします

どうもありがとうございました

666 名前:NAME IS NULL [2008/04/25(金) 22:05:36 ID:mG3NM/VW]
副問い合わせが出来ないサーバ(MySQL4.0.25です)を使うことになったのですが、
副問い合わせをにしたいSQL文があり困っています。

この場合、どういうSQL(関数)で代替するのでしょうか?

667 名前:NAME IS NULL [2008/04/25(金) 22:22:40 ID:c14dphK1]
>>666
泥臭いやり方だが、temporary tableかな
またはアプリケーション側で処理するとか

668 名前:NAME IS NULL mailto:sage [2008/04/25(金) 23:01:57 ID:???]
JOIN

669 名前:666 [2008/04/25(金) 23:09:52 ID:mG3NM/VW]
>>667
すみません、、ちょっとやり方が見えないのですが、、
例えば以下のようなSQLの場合、どうなるのでしょうか?

SELECT * FROM hoge INNER JOIN(
SELECT hoge_id FROM test
) AS test ON hoge.hoge_id=test.hoge_id

670 名前:NAME IS NULL mailto:sage [2008/04/25(金) 23:18:07 ID:???]
SELECT * FROM hoge
  INNER JOIN test ON hoge.hoge_id=test.hoge_id

サブセレしなくても普通にこれでいんじゃないの。
それとも例題のために削ってるから?

671 名前:666 mailto:sage [2008/04/25(金) 23:20:34 ID:???]
>>670
例題の為に削っているからです。。
実際、副問い合わせが必要な時は、そこでCOUNTしたり
WHEREで抽出した値を出したいから、という理由が多いです。

672 名前:NAME IS NULL [2008/04/27(日) 13:21:26 ID:Tqt++e11]
すごい初歩の質問なんだけど、
select * from web where name ='2chan' and category = '2chan' and type = '2chan'
って漢字で、全部2chan(同一単語)で検索したいんだけど、
where以降を縮める方法ってないですか?
PHPのifみたいにフィールド名括弧で括って()='2chan'でもだめだし・・・。
初歩すぎるのか探してもなかなか見つからない。

673 名前:NAME IS NULL mailto:sage [2008/04/27(日) 16:05:58 ID:???]
むり



674 名前:NAME IS NULL [2008/04/27(日) 16:24:11 ID:Tqt++e11]
>>673
簡潔な回答ありがとうございます。

675 名前:NAME IS NULL mailto:sage [2008/04/28(月) 00:32:12 ID:???]
'2chan' IN (name, category, type)

676 名前:NAME IS NULL mailto:sage [2008/04/28(月) 03:35:46 ID:???]
TEXTカラムから
文字数1000文字区切り、最後の改行
でデータを取り出したいのですが可能でしょうか?

できれば1000文字以下で丸めこみたいです

以下のようにやっては見たのですがどうもすっきりしません。
よろしくお願いします。
SELECT
 CONCAT(SUBSTRING(TEXT,1,1000),SUBSTRING_INDEX(SUBSTRING(TEXT,1000,1000),"
",1)) AS TEXT
FROM hoge;

677 名前:NAME IS NULL mailto:sage [2008/04/28(月) 09:10:45 ID:???]
>>675
INはORだろ

678 名前:NAME IS NULL mailto:sage [2008/04/28(月) 10:01:14 ID:???]
>>676
1000文字取り出した後はプログラム側で処理してはいかがでしょう?

679 名前:NAME IS NULL mailto:sage [2008/04/28(月) 12:53:41 ID:???]
>>671
だったら、そういうクエリを示さないと、解決にならない。

680 名前:NAME IS NULL mailto:sage [2008/04/29(火) 16:57:15 ID:???]
Windows にインストールしようとしてバイナリを探して
このページを見たところ
dev.mysql.com/downloads/mysql/5.0.html

ここだと 5.0.51b しかないようです。
b は beta の略ですよね?
beta 無しの一つ前のバージョンはどこでダウンロードできるのでしょうか?

681 名前:NAME IS NULL mailto:sage [2008/04/29(火) 17:23:46 ID:???]
>>680
それはベータじゃない。リリース版。

ってかいつの間にか5.0.51bになっててきづかなかった。
5.0.51->5.0.51aの時はSSL絡みのバグ修正だったようだけど、
今回のChanges探したんだが見つからない。

bkbitsのほうにも、Enterpriseには5.0.60きてるけど、
Communityには5.0.51aまでしか記載がない。

682 名前:NAME IS NULL mailto:sage [2008/04/29(火) 17:35:14 ID:???]
無償版の「MySQL Community Server」の提供は今後も継続されるが、
無償版と有償版の開発は完全に切り離されることとなり、
無償版と有償版の2つのMySQLはまったく別々の進化を遂げることとなる見通しだ。

683 名前:680 mailto:sage [2008/04/29(火) 18:00:49 ID:???]
>>681
レスありがとうございます。
dev.mysql.com/doc/refman/5.1/ja/choosing-version.html
ここのバージョンの命名規則に b の意味するところが書いてないようなのですが

51 -> 51a -> 51b は
51 -> 52 にするほどでもない細かい修正だと理解して良いのでしょうか?



684 名前:NAME IS NULL mailto:sage [2008/04/29(火) 19:57:40 ID:???]
>>683
その通りです。

個人的にはbetaを意識させるbをバージョンに含むのには反対ですけどね。

685 名前:680 mailto:sage [2008/04/29(火) 20:17:13 ID:???]
>>684
なるほど、ありがとうございました。

686 名前:NAME IS NULL [2008/04/29(火) 22:52:30 ID:9aVChAdo]
MySQL5.1のインストールで
Server Instance Configuration WizardのApply security settingで
エラーがでて完了しません
mysql.serversテーブルがないようなメッセージが出ています
ポートは開放しているはずですが、複数端末で同じようなエラーが出てしまいます
いろいろ調べたのですが、対処法がわかりません。
環境はwindowsXP SP2です

687 名前:NAME IS NULL [2008/04/29(火) 22:56:35 ID:vsezzVYU]
mysqlのソースコードの解説したサイトとか書籍とか
オススメありませんか?

ググっても出てこないのでお願いします

688 名前:NAME IS NULL mailto:sage [2008/04/30(水) 00:50:20 ID:???]
>>687
俺は読んでないけど…

www.oreilly.co.jp/books/9784873113432/toc.html

つーか、サイトや書籍を当たるよりもいきなりガシガシ
ソースコード読んだ方が速いんじゃないか

689 名前:NAME IS NULL mailto:sage [2008/04/30(水) 01:04:19 ID:???]
Linuxもいつかは誰かの所有物になるのかな

690 名前:NAME IS NULL mailto:sage [2008/04/30(水) 01:37:43 ID:???]
そんときは、別のオープンソースOSがLinuxの代わりになってるよ。


691 名前:NAME IS NULL mailto:sage [2008/04/30(水) 01:41:19 ID:???]
Linux は正式にリーナスの物だけど誰も困ってない
そういう事

692 名前:NAME IS NULL mailto:sage [2008/04/30(水) 01:46:55 ID:???]
>>688
ありがとうございます

なんと身近な本に普通に載ってたんですね…

693 名前:NAME IS NULL [2008/04/30(水) 16:53:35 ID:3+aSlCcR]
selectする情報の中にorder byで並び替えた際の順番を入れたいのですが
どう書けば可能でしょうか?



694 名前:NAME IS NULL mailto:sage [2008/04/30(水) 17:03:55 ID:???]
order byは最後に実行されるから、select句でその情報を取得するのは無理。

SELECT foo AS '2 foo', bar AS '1 bar' FROM Example
ORDER BY bar, foo;

とでもすればいいんじゃないかな?

695 名前:NAME IS NULL mailto:sage [2008/04/30(水) 17:40:27 ID:???]
テーブルレイアウトがないので、、、テーブル名が sample_table で、
プライマリキーは 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での確認はしてませんので、方言が混ざってそうだったら翻訳しといてください

696 名前:NAME IS NULL [2008/04/30(水) 23:16:14 ID:6t3erPxs]
ExcelとMySQLに関する質問です。

Excelで数千行になる正規化されていないデータを、一気にMySQLに入れることってできるでしょうか?

普段、Excelにデータを溜め込んでいるのですが、それをサーバーに置いて、Web経由でデータの抽出ができるようにしたいんです。
もしいまのExcelのデータをすぐMySQLに入れられたら、造作無いのではないかと思っています。

よろしくお願い致します。


697 名前:NAME IS NULL mailto:sage [2008/04/30(水) 23:38:08 ID:???]
列がちゃんと決まってるなら行番号あたりをキーにしたテーブル作って
COPY句でも作って突っ込めばいけるんじゃない?

698 名前:NAME IS NULL mailto:sage [2008/04/30(水) 23:49:06 ID:???]
CSVで保存すれば、取り込める。
正規化せずに取り込むと後でものすごく後悔しそうないがする。


699 名前:NAME IS NULL [2008/05/01(木) 01:12:40 ID:V4TVtf8T]
$sql = "select ホゲ from ホゲホゲ where ホゲホゲホゲ like '%$word%';";
$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つが・・・という感じです。
これって何が原因なのでしょうか?

700 名前:NAME IS NULL mailto:sage [2008/05/01(木) 10:54:47 ID:???]
>>699
PHPのモジュールの問題じゃね?

701 名前:NAME IS NULL mailto:sage [2008/05/01(木) 13:42:14 ID:???]
>>699
$db にfinishっぽい関数あったら、ループ後に呼んでみるとか

702 名前:NAME IS NULL [2008/05/01(木) 13:59:30 ID:/NYPxvw/]
SQLのみを使って
mysqlの変数に
クエリの結果を代入する方法があれば教えてください

703 名前:NAME IS NULL mailto:sage [2008/05/01(木) 21:04:05 ID:???]
質問です。

cpu:Core2Duo E6320
os:debian sarge
db:mysql 5

上記組み合わせで、このサーバをDB専用サーバーとして稼動させた
場合、mysqlのチューニングによってはCPUが最大で50%(1cpu)まで
しか使えない可能性ってありますでしょうか?



704 名前:NAME IS NULL mailto:sage [2008/05/01(木) 22:57:20 ID:???]
きれーにするーされたな

705 名前:NAME IS NULL mailto:sage [2008/05/01(木) 23:13:07 ID:???]
>>702
mysqlの変数って何?
ストアドファンクションを作ってるのかな。

>>703
smpのカーネルじゃないとそうなることもあるのかもしれない?
有識者の方お願いします。

>>704
何がしたいのか分かりません。

706 名前:NAME IS NULL mailto:sage [2008/05/02(金) 11:35:50 ID:???]
>>702
select @name:=name from hoge;
select @name;

707 名前:696 [2008/05/02(金) 19:34:28 ID:gVoO+8Lg]
>>697
>>698
どうもありがとうございます。
参考になりました。


708 名前:NAME IS NULL mailto:sage [2008/05/02(金) 22:12:33 ID:???]
MySQLの無料版ってなくなっちゃうんですか?

709 名前:NAME IS NULL mailto:sage [2008/05/02(金) 22:14:32 ID:???]
無くならないよ

710 名前:NAME IS NULL [2008/05/03(土) 03:45:01 ID:UXm9qTN+]
質問します カラムの値がNULLのものを削除したくて以下を実行しましたが
うまくいきません
delete from schedule where `evId` =''
delete from schedule where `evId` =NULL
両方ともだめです 何が原因として考えられるでしょう?
誰かご意見お願いします

711 名前:NAME IS NULL mailto:sage [2008/05/03(土) 04:10:50 ID:???]
evId IS NULL

712 名前:NAME IS NULL mailto:sage [2008/05/05(月) 05:16:45 ID:???]
データベースのフィールドの順番を変えるにはどんな命令を使うんでしょうか。
例えば

A B C D

となっているフィールドを

A C B D

にしたいんですが。

713 名前:NAME IS NULL mailto:sage [2008/05/05(月) 06:08:56 ID:???]
変える必要なんてあるの?



714 名前:NAME IS NULL mailto:sage [2008/05/05(月) 06:15:56 ID:???]
データファイル読み込むとき、フィールドの順番とデータの順番が逆になってたんで。

データのほうをいじってもいいんだけど、一応データベースの方も変えられるなら知っておこうと。

715 名前:NAME IS NULL mailto:sage [2008/05/05(月) 11:01:12 ID:???]
まあ、速度的な面とかなら。


716 名前:NAME IS NULL mailto:sage [2008/05/05(月) 12:41:16 ID:???]
DROP → CREATE

717 名前:NAME IS NULL mailto:sage [2008/05/05(月) 18:14:35 ID:???]
>>712
alter table TBL modify B int after C
とか?


718 名前:NAME IS NULL [2008/05/05(月) 21:18:24 ID:umNt+46L]
今までパスワードを暗号化せずにそのまま保存していたのですが、
次回の更新ではmd5で暗号化したパスワードを保存し、
その値でログイン出来るようにしたいと思います。

現状のパスワードをmd5化して更新する方法ってありませんでしょうか?
MySQLは4.1.22を使っています。

719 名前:NAME IS NULL mailto:sage [2008/05/06(火) 01:21:23 ID:???]
>>718
update tbl set col=md5(col)


720 名前:NAME IS NULL mailto:sage [2008/05/06(火) 03:26:20 ID:???]
>>1
ちわちわ

721 名前:NAME IS NULL mailto:sage [2008/05/06(火) 14:56:41 ID:???]
巣に帰れ。

722 名前:NAME IS NULL mailto:sage [2008/05/06(火) 19:58:26 ID:???]
ホスティング会社が3.23→5.0にうpグレードしやがった。
運用していたDBがオワタw

723 名前:NAME IS NULL mailto:sage [2008/05/06(火) 20:05:41 ID:???]
>>722
アナウンス無しで?



724 名前:NAME IS NULL mailto:sage [2008/05/06(火) 20:09:24 ID:???]
>>723
アナウンス無しで。
設定はしたから新規のデータは入るようになったけど、
古いデータが破壊されちゃった。

外国の安い会社だから、まぁ自己責任orz

725 名前:NAME IS NULL mailto:sage [2008/05/06(火) 20:29:06 ID:???]
データ破壊てw
泣くわそんなん

726 名前:NAME IS NULL mailto:sage [2008/05/06(火) 20:30:12 ID:???]
泣き虫は嫌いだ、じっちゃんも言ってた

727 名前:NAME IS NULL mailto:sage [2008/05/07(水) 00:22:52 ID:???]
>>719
遅レスですけど上手くできました。ありがとうございました。

728 名前:NAME IS NULL mailto:sage [2008/05/07(水) 13:33:51 ID:???]
参考サイトをみながらMySQLを勉強している者です。

サイトの説明どおり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に変えると作成できるのですが…
どなたかこのエラーの原因をお知りでしたら、ぜひお教え願えないでしょうか?

729 名前:NAME IS NULL mailto:sage [2008/05/07(水) 14:28:12 ID:???]
普通はリダイレクト使ってやるような作業だよね
どっかで打ち間違えたんじゃないの?

730 名前:NAME IS NULL mailto:sage [2008/05/07(水) 15:20:47 ID:???]
文字を打ち間違えた場合だと、T01prefectureをT10prefectureに変えても通らないはずだと思うのです。

ググっていくつかのサイトを見てみましたが、以前同じ名前のテーブルを作成した事があるのが悪い…のかな?
同じエラーで悩んでいるらしき人のBlogなどは見つかるのですが、何がどう問題なのか理解が及ばない。

731 名前:NAME IS NULL mailto:sage [2008/05/07(水) 16:37:15 ID:???]
>>730
既にその名前のテーブルが存在するなら作れないですよ。

732 名前:NAME IS NULL mailto:sage [2008/05/07(水) 18:27:43 ID:???]
DROP TABLE T01Prefecture;

733 名前:NAME IS NULL mailto:sage [2008/05/07(水) 22:32:39 ID:???]
バックアップファイル内に予めテーブルを削除する文も入っているんです。
後出しでホントすみません。
ttp://mysqlweb.net/category/4037459-1.html
のリンクにある040backup.zipというファイルなのです。

前のステップでsampledb040を使った練習があったけど、やはりこれのデータが変な風に残っているのでしょうか?




734 名前:NAME IS NULL mailto:sage [2008/05/07(水) 23:16:52 ID:???]
リダイレクトでファイル直接流してみなよ

735 名前:728 mailto:sage [2008/05/08(木) 14:39:58 ID:???]
ご、ごめん。
最初は参考サイトにあるとおりリダイレクト(でいいのかな? Mysql -u ユーザー(root) -p データベース名 <"パス")とやってたのです。
それでテーブルを作成できませんというエラーがでるので1行づつ手打ちしてみたのです。

後出しばかりでホントごめん。
人に相談するには早すぎました。まともな説明ができるようになるまでは独学でがんばります…

736 名前:NAME IS NULL mailto:sage [2008/05/08(木) 21:38:34 ID:???]
>>735
drop したあと、ほんとにdropできてるか確認してみるとか?

テーブルの作成権限がないだけかもしれないけどMySQLのその辺は
詳しくないので、もしそうなら他の人にお任せします。

737 名前:NAME IS NULL mailto:sage [2008/05/09(金) 13:39:41 ID:???]
MySQLのトリガーって他のテーブルに対して処理できないって本当ですか?

738 名前:NAME IS NULL mailto:sage [2008/05/10(土) 11:00:09 ID:???]
>>737
うそです

739 名前:728 mailto:sage [2008/05/10(土) 12:14:55 ID:???]
MySQLのdataフォルダ内にあるsampledb040フォルダを削除し、データベースを作詞するところからやり直したらテーブルが作成できました。
お騒がせしてすみませんでした。

こんな解決方法で良いのかな…?

740 名前:NAME IS NULL mailto:sage [2008/05/10(土) 20:35:52 ID:???]
LOAD DATA LOCAL INFILEを使うときの、ローカルPC側のファイルパスの指定の仕方って、

"c:\hoge\hoge.txt"
"c:/hoge/hoge.txt"

これ以外に指定方法ってあるんでしょうか。
どちらでやっても、not found (Errcode: 2) になってしまいます><

741 名前:NAME IS NULL mailto:sage [2008/05/10(土) 21:25:53 ID:???]
hogeディレクトリーにhoge.txtが本当に存在してるかい?

742 名前:NAME IS NULL mailto:sage [2008/05/10(土) 21:26:01 ID:???]
>>740
\の場合は\\と書かないとダメな気がする

743 名前:740 mailto:sage [2008/05/10(土) 21:42:07 ID:???]
>>741
存在してます。

>>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です。

いろいろ調べてるのですが、解決策が見つからなくて。



744 名前:740 [2008/05/10(土) 23:10:59 ID:/V9T+N7z]
解決しました。
結局、not foundになった理由はわからないんですが、
phpMyAdminの「インポート」からLOADできました。
数時間前まで「インポート」画面には、
「インポートするファイルの形式」は"SQL"しか指定できなかったのですが、
不思議なことに、先ほどみたら"CSV"が指定できるようになっていて、
そこから入力ファイルを指定してLOADできるようになりました。

745 名前:NAME IS NULL [2008/05/10(土) 23:32:01 ID:ZRD2El4R]
extの中に、
php_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 &再起動を行いました。




746 名前:NAME IS NULL [2008/05/10(土) 23:46:05 ID:ZRD2El4R]
/etc
じゃなくて/ext
の間違いです。

747 名前:NAME IS NULL mailto:sage [2008/05/10(土) 23:49:19 ID:???]
>>745
copy C:\php\libmysql.dll C:\windows\system32

748 名前:NAME IS NULL [2008/05/11(日) 01:49:34 ID:I11LIJS2]
system32の中に

libmysql.dll
コピーしてもだめでした。

php5ts.dll
php5apache2.dll
をコピーしてもだめでした。

749 名前:NAME IS NULL [2008/05/11(日) 03:10:53 ID:ymTwAShD]
Windowsを使わなければ良い

750 名前:NAME IS NULL [2008/05/11(日) 17:12:51 ID:Lz+kCEMO]
Debian上でMySQL5.0を使用しています。

DBに対して発行された全てのSQLをログ出力したいのですが、
MySQLでそういった処理は可能でしょうか?

751 名前:NAME IS NULL mailto:sage [2008/05/11(日) 18:22:01 ID:???]
log = /var/log/・・・

752 名前:NAME IS NULL mailto:sage [2008/05/12(月) 01:10:50 ID:???]
innodbのデータファイルをテーブルごとに作成する方法ってありますか?

753 名前:NAME IS NULL mailto:sage [2008/05/12(月) 01:26:19 ID:???]
innodb_file_per_table



754 名前:NAME IS NULL mailto:sage [2008/05/12(月) 16:10:28 ID:???]
>>743
>>646にも書いたけど、4.0系はutfサポートしてません。4.1以降です。


755 名前:NAME IS NULL [2008/05/12(月) 20:15:57 ID:8xhRTUUy]
質問させて下さい。
table1
---------------------------
name
ねこ
いぬ
うさぎ
かめ
....
ぞう
---------------------------

このようなテーブルで特定の名前を検索し、結果ヒットしなかった名前だけを取得したいのですよがどうのようにしたらよいでしょうか?
例:ねこ、パンダを検索 => パンダを取得

SELECT
1
FROM
`table1`
WHERE
`name` = 'ねこ'
;

このようなクエリをループで数回発行し、取得もできるのですが、できれば1回のクエリで取得したいのです。

ドキュメントを見ていると、 `name` IN ( 'ねこ', 'パンダ' )
として何かすればできそうかなとも思ったのですが上手くかけません。
どうか宜しくお願いします。

756 名前:NAME IS NULL mailto:sage [2008/05/12(月) 20:34:25 ID:???]
>>755
つまり条件で使用されなかった名前を得たいわけですよね。
通常だと、`name` IN ( 'ねこ', 'パンダ' ) でヒット分を出して
アプリ側で消し込むのが通常かと。

757 名前:NAME IS NULL mailto:sage [2008/05/12(月) 21:43:28 ID:???]
>>765
レス有り難う御座います。
う〜んやっぱりどちらにしてもアプリ側の処理に頼るしかないのかな。
もう少し自分で粘ってみます。

758 名前:NAME IS NULL mailto:sage [2008/05/12(月) 22:12:00 ID:???]
NOT EXISTSを使ってできそうな予感

759 名前:NAME IS NULL mailto:sage [2008/05/12(月) 22:21:02 ID:???]
ごめん、やっぱり純粋なSQLじゃ無理だわ
検索条件を表示するようなクエリが記述できないからね


'ねこ', 'パンダ'で検索したときに、
ねこ
パンダ
を取得するSQL

・・・不可能

760 名前:NAME IS NULL [2008/05/12(月) 22:24:42 ID:a2zzvFoH]
初めまして。
Windows2K上で「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が発生しました」
「プロセスを途中で強制終了しました」
と表示され、先に勧めない状態です。

同じ書籍で同じようなエラーを対処された方はいらっしゃいませんでしょうか。
どうかご教示ください。

761 名前:NAME IS NULL mailto:sage [2008/05/12(月) 22:38:21 ID:???]
oshiete1.goo.ne.jp/qa803697.html

762 名前:NAME IS NULL mailto:sage [2008/05/12(月) 22:39:45 ID:???]
d.hatena.ne.jp/yzn/20060922

763 名前:NAME IS NULL mailto:sage [2008/05/13(火) 00:16:15 ID:???]
>>761-762
そちらのページを拝見して、サービスの削除・サービスの再インストールを
行いましたが駄目でした。MySQLのアンインストールからやり直してみようと思います。




764 名前:NAME IS NULL [2008/05/13(火) 15:44:20 ID:NUBRvh8U]
PHP上からMySQLでinsertすると、Duplicate entry '〜' for key 2

PHP MyAdmin やプロンプト上からinsert行うと、普通にinsertできるのでしょうか?

765 名前:NAME IS NULL mailto:sage [2008/05/13(火) 15:47:34 ID:???]
キーが同じならどこからでも無理だろ

766 名前:NAME IS NULL mailto:sage [2008/05/13(火) 18:50:11 ID:???]
+-----+-------+
| 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';では構文エラーになります。
主キーは取り出せないんでしょうか?

767 名前:NAME IS NULL mailto:sage [2008/05/13(火) 18:52:43 ID:???]
keyは予約語だからでは? `key` とかしてみる。

768 名前:NAME IS NULL mailto:sage [2008/05/13(火) 18:54:18 ID:???]
ありがとうございます!
無事取り出せました。

769 名前:NAME IS NULL [2008/05/13(火) 21:39:29 ID:NUBRvh8U]
キーはインクリメントされるので、
異なってるはずなんですが。

770 名前:NAME IS NULL [2008/05/13(火) 21:40:40 ID:NUBRvh8U]
`key`は基本だとおも。

771 名前:NAME IS NULL [2008/05/13(火) 22:04:51 ID:NUBRvh8U]
質問日本語になってなかったので、再度質問します。
日本語できなきゃ、SQLできませんね。えへ!

テーブルに登録されていない 
ユニークな列 brandに
日本語文字列'あしっくす' をinsertしようとしているのですが、
あしっくす という文字列が登録されていないのに、

Duplicate entry 'あしっくす' for key 2

とエラー表示されるのはなぜなんでしょうか?





772 名前:訂正 [2008/05/13(火) 22:07:10 ID:NUBRvh8U]
質問日本語になってなかったので、再度質問します。
日本語できなきゃ、SQLできませんね。えへ!

テーブルに登録されている 
ユニークな列 brandに
日本語文字列'あしっくす' をinsertしようとしているのですが、
あしっくす という文字列が登録されていないのに、

Duplicate entry 'あしっくす' for key 2

とエラー表示されるのはなぜなんでしょうか?

773 名前:訂正 [2008/05/13(火) 23:31:32 ID:NUBRvh8U]
カタガナとひらがな で重複すしてました。




774 名前:NAME IS NULL mailto:sage [2008/05/14(水) 03:58:48 ID:???]

◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
system-trading.jp/news/index.php?cID=3

5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
  デモトレードの優勝者には賞金三百万円がプレゼントされます。


▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
www.fx-gp.com/about/

▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円

775 名前:NAME IS NULL mailto:sage [2008/05/15(木) 05:20:29 ID:???]
dev.mysql.com/doc/refman/5.1/ja/mysql-insert-id.html
「マルチ列INSERTステートメントの場合」とか書いてあるけど、
このページ内ほとんど
×列
○行
じゃないかな。

776 名前:NAME IS NULL [2008/05/15(木) 08:30:54 ID:/PcvCBei]
MYSQLとPHPがどうマニュアルどおりやっても、
phpinfoでMYSQLが認識されない。dllに応じてapacheの対応バージョンが異なるらしいんだけど、
本当ですか?

777 名前:NAME IS NULL mailto:sage [2008/05/15(木) 09:58:14 ID:???]
ビルドからやってんの?

778 名前:NAME IS NULL mailto:sage [2008/05/15(木) 13:04:45 ID:???]
mysql5.0.27を使っているんですが、型の制約として、 num = num - 5 とかやっても
0未満にはならないようにとか、そういった制約ってありますか?
入れるときにチェックしないとだめでしょうか?


779 名前:NAME IS NULL [2008/05/16(金) 16:40:06 ID:V7rySszX]
質問です
文字コードがutf8のデータベースから、eucのデータベースへ中身を
移動させるのって難しいですか?もちろんMysqlです
管理ツールはphpMyadminを使おうと思ってるんですが、、
蓄積されている情報をEUCに書き換えるような作業が必要になるんでしょうか?
カンタンな手順や専用のツールなんてあるんでしょうか?
どなたか教えてください よろしくお願いします

780 名前:NAME IS NULL mailto:sage [2008/05/16(金) 17:59:07 ID:???]
Alter Table

781 名前:NAME IS NULL mailto:sage [2008/05/17(土) 09:05:01 ID:???]
>>779
insert into euctable select * from utf8table;


782 名前:NAME IS NULL [2008/05/17(土) 19:33:10 ID:dhQBeSfs]
GPLの意味がいまいち分かりません。。。


改変したら公開が義務付けられるそうですが、
今のところそういうことをする予定はありません。
「無償版を使うなら、これをしなければいけない、
またこれはやってはいけない。」
というのは他に何がありますか?

商用ライセンスとの違いはなんでしょうか?
サポートを受けられる、というだけのことですか?

「こういうことをやりたいなら、商用版を買うしかない。」
ということはありますか?



783 名前:NAME IS NULL mailto:sage [2008/05/17(土) 19:36:46 ID:???]
>>782
バレてはいけない



784 名前:NAME IS NULL mailto:sage [2008/05/17(土) 20:31:20 ID:???]
BINARY型ってどういうときに使うんですか?

785 名前:NAME IS NULL mailto:sage [2008/05/17(土) 21:19:27 ID:???]
>>784
バイナリーファイル、たとえばdocやxlsの先頭100KBを表に入れたいとき。

786 名前:NAME IS NULL mailto:sage [2008/05/17(土) 21:23:16 ID:???]
>>784
Winny のハッシュ管理

787 名前:NAME IS NULL [2008/05/17(土) 22:00:06 ID:Zz9EtgnE]
データを大量に作りたい場合の作成ツールとか
ありませんでしょうか?

788 名前:NAME IS NULL mailto:sage [2008/05/17(土) 22:20:18 ID:???]
なんでもいいならランダム関数でも使えば?

789 名前:NAME IS NULL [2008/05/17(土) 22:23:10 ID:Zz9EtgnE]
できればおすすめのツールがあればということなんですが。。。
ランダム関数?
勉強不足で。。。
調べてみます。

790 名前:NAME IS NULL mailto:sage [2008/05/17(土) 22:35:01 ID:???]
CSVファイルからのINSERTなら何かツールがあるでしょ。
何でもいいからデータを大量に入れたいならランダムを生成する適当な関数作っちゃえばいい。

791 名前:NAME IS NULL mailto:sage [2008/05/17(土) 22:37:54 ID:???]
つーかこんなんで悩んでる人がMySQLを何に使うんだ。

792 名前:NAME IS NULL mailto:sage [2008/05/17(土) 22:41:57 ID:???]
初学者は常にいます。

793 名前:NAME IS NULL [2008/05/17(土) 22:59:08 ID:dhQBeSfs]
mediawikiを自宅のPCで使ってみようと思ったら、
MySQLも必要だと言われたのさ。

データベースなんて職場のアクセスをいじったぐらいだ。。。。



794 名前:NAME IS NULL mailto:sage [2008/05/17(土) 23:02:21 ID:???]
アクセスはRDBMSではないからな〜

795 名前:779 [2008/05/17(土) 23:13:43 ID:4inawo49]
>>780-781
ありがとうございます
>>780
ALTER TABLE というのは具体的にどうしたらいいんでしょう?

>>781
insertでデータを移動させるということでしょうか?
データベース自体の動いているサーバーが違うんですが、
その場合はどうしたらいいんでしょうか?

796 名前:NAME IS NULL [2008/05/18(日) 00:12:40 ID:6bXnmuPh]
MySQLver5.0.45の公式バイナリをLinuxにインストールしたあと
初めてのログインで
mysql -u root
を実行したら「root@localhostに権限がありません」的なエラーがでました。
1番始めはrootにパスは設定されてないですよね???

ちなみに
mysql -u root -p
をやるとPassword入力を求められますが何を入力してもログインできませんでした。。



797 名前:NAME IS NULL mailto:sage [2008/05/18(日) 00:21:56 ID:???]
>>795
>ALTER TABLE
SQL関連のマニュアルか、リファレンスを読んで下さい。

798 名前:NAME IS NULL mailto:sage [2008/05/18(日) 00:38:19 ID:???]
>>795
Alter table tbl convert to charset 
でもこれは、そのテーブル自体の格納されているデータを変換するもの。
二台別々のDBが動いてんなら、一旦もとのtblからデータを全部dumpして、
それを新しい方のtblに放り込んでやればいいんでない。
(この時に特に変換作業は不要。詳しくはmanual参照。でも多分わかってないとハマりそう)

>>796
原因はようわからんが、一旦data_dir以下の全ファイル(インストしたてって言ってるから、重要なデータは入ってないでしょ)
を削除して、/usr/bin/mysql_install_db(←RHEL系のディストリの場合。他ディスでは違う場所かも知れん。)
を実行してやれば、権限テーブルが再構築されるので、再度mysqldを実行。

>>786
ハッシュ自体を管理するんなら、バイナリな必要ないんじゃない?
ハッシュを生成するためのもとのデータを入れるなら、binaryじゃなきゃいかんけども・・。

799 名前:779 [2008/05/18(日) 08:06:53 ID:JfDPw4vM]
>>797
どうもです ありがとうございました
>>798
詳しい説明ありがとうございました
データ移行の本読むべきですね 基本でした ありがとうございました

800 名前:NAME IS NULL [2008/05/18(日) 10:46:41 ID:6+oG6BiD]
query browserって
データのインポートは出来ないんでしょうか?
csvファイルを取り込みたいのですが、
どのような方法がベターでしょうか?

801 名前:796 mailto:sage [2008/05/18(日) 11:08:49 ID:???]
mysql_install_dbが権限テーブル作成に失敗していました。
(データベース「MySQL」のusr.MYDファイルを開いてみたら空だった)

原因は/tmpにアクセスする際の
パーミション問題(PCLinuxOSのディストリ的な影響)だったので


TMPDIR=/tmp/
MYSQL_UNIX_PORT=/tmp/mysqld.sock
export TMPDIR MYSQL_UNIX_PORT

という形で環境変数を変更してmysql_install_dbを実行したら問題なく動作しました。

>>797-798
ありがとうございました。助かりました。

802 名前:NAME IS NULL mailto:sage [2008/05/19(月) 00:30:52 ID:???]
long_query_timeについて質問です。

現在DBI経由で、perlなどからSQL実行していますが
この時 long_query_timeに引っかかったクエリーは
エラーなり、補足捕捉情報かなにかを返すのでしょうか?
またこの時、viewは正しく返ってこない、と考えて良いのでしょうか?
MySQLバージョンは、4.0/4.1/5.0になります。

803 名前:NAME IS NULL [2008/05/19(月) 11:48:56 ID:cfRUIA6l]
MySQL を CentOS 5.1 で使っています。
一般クエリログを出すようにしているのですが、
このログファイルのローテートは MySQL 自身が
やってくれるのでしょうか?

それとも logrotate を設定しなければならないのでしょうか?



804 名前:NAME IS NULL mailto:sage [2008/05/19(月) 14:48:36 ID:???]
質問です。
MySQLのソースインストールのconfigureで「--with-readline」オプションがありますが、
この設定はmy.cnf上で後から変更可能でしょうか?

805 名前:NAME IS NULL mailto:sage [2008/05/20(火) 07:40:10 ID:???]
>>782
GPLと相容れないプログラムとリンクできない

806 名前:NAME IS NULL [2008/05/20(火) 11:56:52 ID:FPNVgIjN]
phpMyBackupPro ってソケット経由では使えないのでしょうか?

807 名前:NAME IS NULL mailto:sage [2008/05/20(火) 21:51:22 ID:???]
HEAPテーブルについて、マニュアルには「クライアント間で共有できる」
とありますが、接続毎に隔離されたHEAPテーブルは作れないでしょうか?
バージョン4.1です。

808 名前:NAME IS NULL [2008/05/20(火) 22:29:57 ID:GGh+9Iru]
PHPでの例ですが

$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を使っています。

809 名前:NAME IS NULL [2008/05/20(火) 23:46:08 ID:GuaauZDQ]
質問です、
mysqldumpでダンプを取りたいのですが、
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;
となります。
サイトをさんこうにしてやっていますが
うまくいきません。どこが原因でしょうか?
教えて下さいませ。


810 名前:NAME IS NULL mailto:sage [2008/05/21(水) 00:06:16 ID:???]
>>807
接続が切れたときに消えてなくなってもいいのであれば、temporary テーブル。

811 名前:NAME IS NULL mailto:sage [2008/05/21(水) 00:07:10 ID:???]
>>809
それ、mysql> プロンプトからやってないか?

812 名前:NAME IS NULL mailto:sage [2008/05/21(水) 00:08:42 ID:???]
>>808
falseはSQLの実行エラーの場合です。
updateがあったかは、たしか 影響を受けた行数を取得する
関数があったと思うので実行後にそれを使ってください。

813 名前:NAME IS NULL [2008/05/21(水) 00:33:26 ID:O5tzPctu]
>>811
コマンドプロンプトからやってますが何か?



814 名前:NAME IS NULL mailto:sage [2008/05/21(水) 00:53:14 ID:???]
MYSQLを導入したんだけどPHPから接続できないですけどどうしてでしょうか?
MYSQLの設定を済ませて
PHP5のphp.iniの設定では
絵xtension=php_mysql.dllのところを;はずしました。
MySQLの動作もちゃんとしてます。
ですが、
<?php
phpinfo()
?>
上で確認したところMySQLの表示してないです。
mySQLのインストールはこちらのURLを参考にしました。
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/

815 名前:814 mailto:sage [2008/05/21(水) 02:02:33 ID:???]
自己解決しました。

816 名前:807 mailto:sage [2008/05/21(水) 02:50:01 ID:???]
>>810
早速有難う御座います。 temporary テーブルでやってみようと思います。

817 名前:NAME IS NULL mailto:sage [2008/05/21(水) 02:54:27 ID:???]
MySQL 5.0.51a Linux版です。
全テーブルに更新時刻と挿入時刻カラムをつけ、
beforeトリガーでこれらを更新しようと考えていますが、
オーバーヘッドはどんなものでしょうか?
用途は中小規模のグループウェアみたいなものです。
もしオーバーヘッドが大きいならtimestampで更新時刻だけ
記録することも考えるのですが、挿入時刻もあった方がいいようなのです。

MySQLで設計するのは初めてで感覚がわからないので、
なんとなくで結構ですので助言をお願いします。

818 名前:NAME IS NULL [2008/05/21(水) 13:12:17 ID:2ndXeLqA]
>>813
何お前
ずいぶんと偉そうだな

819 名前:NAME IS NULL mailto:sage [2008/05/21(水) 15:25:29 ID:???]
>>813
理解できるようになってから出直せ

820 名前:>>813 [2008/05/21(水) 22:05:35 ID:hrtOIMUi]
出来ましたが何か?

821 名前:NAME IS NULL [2008/05/21(水) 23:17:40 ID:wc8hj2Sl]
mysql 4.1.20 CentOS4.1で質問です。
mysql>select * from XXX; を実行し、結果が多い場合、最初の方の結果がスクロールし、コンソールから消えてしまいます。
ls | moreのような感じで、1画面ずつ見たい場合はどうすればよいでしょうか?
やり方がわからないので、bashから 
user$echo "select * from XXX;" | mysql testDB > result.txt のような感じでテキストファイルに落としています。

よろしくお願いいたします。


822 名前:NAME IS NULL mailto:sage [2008/05/22(木) 00:05:25 ID:???]
>>821
limit

823 名前:NAME IS NULL mailto:sage [2008/05/22(木) 00:18:02 ID:???]
>>821
mysql> pager less




824 名前:NAME IS NULL [2008/05/22(木) 00:18:18 ID:P5ig6HYl]
質問させて下さい。
MySQL5.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
....

純粋なクエリ等の問題ではないのかもしれませんが、いくら考えても良い方法がみつからずほとほと困ってしまいました。
どうかお力添え頂けないでしょうか?宜しくお願い致します。

825 名前:NAME IS NULL mailto:sage [2008/05/22(木) 00:37:04 ID:???]
cidrとip表記をごっちゃにしている時点でどうかと思うが、
phpがトリガならmod_geoipでも使ったらどうか?

826 名前:821 mailto:sage [2008/05/22(木) 01:08:34 ID:???]
>>822 >>823 解決しました。ありがとうございます!!

827 名前:824 mailto:sage [2008/05/22(木) 01:09:18 ID:???]
>>825
レス有り難う御座います。
早速調べてみます。

828 名前:NAME IS NULL mailto:sage [2008/05/22(木) 01:18:09 ID:???]
>>824
MySQLのみでうちがやるなら、IPはINET_ATON()で整数保管。
マスクは別フィールドに保管。
比較の際は、IPの整数をマスクサイズでビット演算して比較。

現状のテーブルのままやるのなら、文字列だからMySQLの
正規表現関数を使うのが速度的にも妥当では。

829 名前:NAME IS NULL mailto:sage [2008/05/22(木) 02:19:27 ID:???]
みんな文字化け回避するためにカラムごとに文字コード設定してるの?

830 名前:NAME IS NULL mailto:sage [2008/05/22(木) 08:19:01 ID:???]

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/
www.fx-gp.com/about/

▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円

831 名前:NAME IS NULL mailto:sage [2008/05/22(木) 12:15:32 ID:???]
>>824 >>828

PHP側でIPのチェックしたいならPrarのNet_IPv4
pear.php.net/manual/ja/package.networking.net-ipv4.php


832 名前:NAME IS NULL mailto:sage [2008/05/22(木) 12:26:36 ID:???]
PrarじゃなくてPearでした。

833 名前:NAME IS NULL mailto:sage [2008/05/22(木) 19:08:36 ID:???]
varchar (n)の使用バイト数はn+1とのことですが、それなら
本来は100文字までのデータしか入力しないカラムでも
varchar(255)とtinytextの限界で作成しておいて、
アプリ側の入力チェックで100文字制限をするという方針はありでしょうか?

制限を100文字以上に拡張したくなったとき、アプリ側のチェックだけ直して
テーブルは変更する必要がなくていいのではないかと思うのですが。



834 名前:NAME IS NULL mailto:sage [2008/05/22(木) 21:54:45 ID:???]
>>833の便乗質問ですが各データ型で使用するバイト長ってどこでわかりますか?


835 名前:NAME IS NULL mailto:sage [2008/05/23(金) 01:26:43 ID:???]
>>834
dev.mysql.com/doc/refman/5.1/ja/storage-requirements.html

>>833
別に自分のしたいようにすればいいんでね?(自分にとって、管理しやすいほう、扱いやすいほうで)
ただ、fixed formatでテーブル作成してるんなら、discには実際使ってない部分の領域も書き込まれるけどね。

836 名前:834 mailto:same [2008/05/23(金) 01:41:31 ID:???]
>>835
ありがとうございます!助かりました


837 名前:NAME IS NULL [2008/05/23(金) 21:38:08 ID:Dt8inalF]
SQL文だけで、半角カナを全角カナにする方法(関数)って、ありますでしょうか?

838 名前:NAME IS NULL mailto:sage [2008/05/24(土) 02:02:00 ID:???]
搭載物理メモリ48Gのサーバーで、大きな単一テーブル(80G程度)を上手く扱う方法って無いですか?
(そのテーブル対して、更新&参照&集計が頻繁に発生すします。)

my.conf-hugeを元にいろいろチューニングを試してみたんですが、
io-waitが100%に刺さったまま、ハングしたようになり困っています。

開発当初はoracle案件で、ありきたりのチューニングだけで、問題なく動作していたのですが、
クライアントの方針変更で、急にMySQLで開発することになり、非常に難儀しています。
(ちなみに案件規模は、楽天クラスの商品在庫管理です。)


839 名前:NAME IS NULL [2008/05/24(土) 02:15:08 ID:/LSToqrf]
その規模になると、MySQLでは、どうやっても無理。パフォーマンスや安定性の面でもお薦めしない。
クラに泣き付いてでも、オラクルに戻してもらえ。


840 名前:NAME IS NULL mailto:sage [2008/05/24(土) 02:20:15 ID:???]
単一tblって時点で何だかな〜…
大規模すぎてMySQLの範疇じゃないだろ

841 名前:NAME IS NULL mailto:sage [2008/05/24(土) 02:36:57 ID:???]
>>839-840
ありがとうございます。でも、それは無理っぽいです。

クライアントのライバル会社が全社的にOpenOfficeを採用したとかで、新聞に載ったらしく、
クライアントの経営トップがそれに対抗して、バックエンドにオープンソース採用の方針を
打ち出したいらしく、私が土下座するくらいでは受け入れられそうにも無いです。

842 名前:NAME IS NULL [2008/05/24(土) 02:49:35 ID:/LSToqrf]
かなり痛いトップだな。
コッド博士クラスの優秀なDB開発者を雇ってMySQLを改造してもらえ。


843 名前:NAME IS NULL [2008/05/24(土) 03:34:26 ID:VAruVHOx]
バカ相手してても身体壊すだけだから辞めちゃえw



844 名前:NAME IS NULL mailto:sage [2008/05/24(土) 03:39:53 ID:???]
>>841
土下座て。
やるだけの事はやってちゃんと検証データとボトルネック、仕組み的に無理ですって事を踏まえた上で
それでもなんとかしろと言うならやりますが、紆余曲折、最悪こういう想定事態になりますが
よろしいですか?ってクライアントと折衝する人に言ってもらえばどうでしょうか。
自分の仕事は最低限筋の通った理屈を報告して折衝担当者に理解してもらうこと。
もちろん前向きにね。
自分の仕事を理解し、精一杯やるだけやってしっかりとこなした上で無理難題言う上司や客に必要以上の負担を強いられる道理はないでしょ?
ただその事を丁寧にビジネス用語で当たり障り無く表現して相手に理解、納得してもらうよう「伝える」努力は必要ですけど。

私もそこまでのデータの運用経験はないけど、微力ながら言わせてもらうと
■ハード面
・SASでRAID0+1 ファイバーチャネル使えるならそれに越したことはないけど。
=> ディスクの読み込み速度が上がって結果的にMySQLの更新・参照・集計早くなります。
=> バックアップできます。三世代管理くらいまではしたほうが幸せになれるかも。
=> RAIDはライトキャッシュとBBUのついているものを使用 なるべくキャッシュは多い方がいいです。
2GとかつけれるのもあるけどRAIDカード選びは慎重にね。
ディスクはシークタイムがあるから10000rpmのもので秒間16コミットしかできない
ライトキャッシュ積むといっぱいコミットできます

・レプリケーション
=> レプリケーションしているとは思うけど、なんとなくしてなさそうな節があるのでやって見て下さい。
スレーブサーバに参照を掛けるとスレーブの台数分だけ参照はバンバン早くなります。
ただし、マスターと完全同期ではないので入金処理等精度の必要な部分はマスターを使って下さい。
アプリケーション側でのスレーブ参照制御が面倒なら間にLVSでもなんでもいいからロードバランサー仕込むと吉

・memcacheサーバ
=> 80G程度ならサーバ10台以内で構築できると思う
更新はライトスルーでMySQLにも書いて単純参照はmemcacheからすると涙でるほど早い。
但しきちんと両方更新されたか確認、制御する仕組みは必要。

ソフト面に続く

845 名前:NAME IS NULL mailto:sage [2008/05/24(土) 04:32:39 ID:???]
■ソフト面
・設計の見直し
=> 詳細知らないので絶対とは言えませんが、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の事を
考えていた時期が三ヶ月ほどありました。
データもいっぱい壊しました。いっぱい怒られました。あぁ思い出したらトイレに行きたくなってきたのでこれくらいで。

846 名前:NAME IS NULL mailto:sage [2008/05/24(土) 04:38:50 ID:???]
追記:あっSUNが買収してオープンソースでなくなるんじゃなかったっけ?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<244KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef