MySQL 総合 Part9

このエントリーをはてなブックマークに追加
1NAME IS NULL
快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part8] http://pc8.2ch.net/test/read.cgi/db/1148936556/

[関連スレと過去ログ]
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

・関連ツール及びユーティリティ
・関連書籍
>>2
2NAME IS NULL:2006/08/17(木) 14:59:36 ID:???
3NAME IS NULL:2006/08/17(木) 17:01:44 ID:???
現在のテンプレの元型を拵えた者ですが、

[Planet MySQL] http://www.planetmysql.org/

の追加を検討してください。
4NAME IS NULL:2006/08/18(金) 06:54:40 ID:hlgu37B7
質問です。

insertやupdate時にnow()で挿入/更新されたdatetimeの値を
select文を発行することなく取得する方法は無いでしょうか?
auto_incrementのmysql_insert_id()に相当するようなものがあることを
期待しているのですが。
5NAME IS NULL:2006/08/18(金) 08:59:02 ID:???
>>4
たぶん無理
何がしたいかを書けば解決策はあると思うが…
6NAME IS NULL:2006/08/18(金) 11:10:50 ID:???
アプリ側で現在時刻を取っておいてそれをINSERTするか、SELECT now()してINSERTしかないんじゃないかな
7前スレ983:2006/08/18(金) 12:21:40 ID:???
前スレ>>996さんへ
以下のようなクエリを試してみましたが、やはりindexが使用されていないようです。

EXPLAIN SELECT `diary_ID`
FROM new_comment
WHERE `diary_owner_ID` = '1'
AND (
`commenter_ID` < '1'
OR `commenter_ID` > '1'
)
ORDER BY `timestamp` DESC
LIMIT 7
8NAME IS NULL:2006/08/18(金) 12:46:12 ID:???
>>7
だから、複合インデックス作って試せっていったじゃん。バイバイ。
9NAME IS NULL:2006/08/18(金) 12:50:19 ID:???
InnoDBでレコード数6千万を超えているテーブルがあります
フィールドは12 UTF8形式

全文検索のためにMyISMA+Sennaに変換しようと思うのだけど
これって通常、アリなことでしょうか?
10NAME IS NULL:2006/08/18(金) 12:57:36 ID:???
>>
レコード数的な問題の前に、sennaって確かMyISAMのみ。
InnoDB はダメ。
11NAME IS NULL:2006/08/18(金) 13:01:27 ID:???
>>10
そうですが、InnoDBの方が性能は上と言われ
全文検索のためにMyISAMに変更というのは
俗に言う、性能ダウンをするということなので

DBマスターの皆さんから見るとこれはアカンと思うのではないかと・・・
それならInnoDB+(  )を使って外部ツールを使えというアドバイスはあるものなのでしょうか?

多分、クエリも見直さないといけないし
6000万のレコードにちりばめられている日本語に文字化けがないか調べないといけないし
胃が痛くなる思いです
12NAME IS NULL:2006/08/18(金) 13:04:31 ID:???
>>9
あ、MyISAMに変換する腹積もりなんだね。
比べ物になるかわからんが、500万レコードなら経験あるけど一瞬でクエリ出る。
sennaは2億ぐらいまではOKみたなので要件的にもOK。
ぜし、やってみてパフォーマンスレポートをここに求む。
13NAME IS NULL:2006/08/18(金) 15:09:57 ID:???
MySQL 日本語リファレンスマニュアル
を読んでいるのですが、
これは全部読み終われば一通りMySQLを使えるようになりますか?
4章まで読みましたが、さっぱり理解できず先行き不安・・・
14NAME IS NULL:2006/08/18(金) 15:42:12 ID:???
>>13
全部読んでもさっぱり理解できないのなら無理
15NAME IS NULL:2006/08/18(金) 16:04:33 ID:???
はじめからリファレンスマニュアルなんか読んでも頭に入らないでしょ
個人の作った解説サイトでもみれ
16NAME IS NULL:2006/08/18(金) 18:06:54 ID:???
>>12
人柱ですか(涙
sennaは理論上2億6000万ですからOKでしょうが、なんせ、ひろゆき会社だからなw

まずは移行できたら、報告します
パフォーマンスレポートはgdやJGraphを使ったグラフ形式がいいのかわかりませんので
174:2006/08/18(金) 19:18:21 ID:???
>>4です。

>>5-6
レスありがとうございます。あったら便利だしひょっとしたらあるかなと思ったのです。
#mysql_insert_datetime()とかで返してくれればいいのになあ。。

やりたいことは

 1.ユーザがデータをPHPスクリプトにPOST
 2.受けたPHPスクリプトが入力データをテーブルAに格納
 3.insertされた情報(auto_incrementのIDや登録日時を含む)を
   盛り込んだ別データを生成
 4.生成した別データをテーブルBに格納

というものです。おっしゃる通り登録後にselectで取得したり、登録時刻自体を
スクリプトで生成すれば解決できるのですが、何か二度手間をしているような
気持ち悪さがあったので質問させていただきました。
18NAME IS NULL:2006/08/18(金) 19:26:37 ID:???
>>14-15
レスありがとうございます。

>はじめからリファレンスマニュアルなんか読んでも頭に入らないでしょ
>個人の作った解説サイトでもみれ

そうですよね!どうもありがとうございます。
自分が大馬鹿だから理解できないのかと思ってました。(実際そうですが)
まずは個人の解説サイトからはいっていきます。
19NAME IS NULL:2006/08/18(金) 19:52:45 ID:???
>>17
update hoge set date=(@T:=now());
select @T;
取り出すのに select使うけど DBアクセスは無いから速いかも。
20NAME IS NULL:2006/08/18(金) 22:20:09 ID:???
>>11

いまは MyISAM より InnoDB のほうが速いの? ほんとに?
214:2006/08/18(金) 22:24:37 ID:???
>>19
そのやり方は知りませんでした。
さっそく使ってみます。ありがとうございます。
22NAME IS NULL:2006/08/18(金) 22:50:36 ID:???
>>7
>`commenter_ID` < '1'
> OR `commenter_ID` > '1'

これってさ、なんでシングルクォートで囲んでるの?
数値をこんなことしていんだっけ?
23NAME IS NULL:2006/08/19(土) 02:42:19 ID:???
>>22
いいんだよ。
っていうか、むしろ囲んだほうがベター。
24NAME IS NULL:2006/08/19(土) 13:39:56 ID:???
グリーンだよ。
25NAME IS NULL:2006/08/19(土) 22:09:56 ID:D+Qyk0yf
MySQLをコマンドラインで操作する際、
tabキーでテーブル名の補完ができると
本に記述されているのですが、

自分のMySQLでは何も反応しません。。
この機能ってどのいじれば使えるんでしょう??

ちなみに環境は
FedoraCore5
MyQL 5.0
Bash 3.0
です。
26NAME IS NULL:2006/08/20(日) 12:16:34 ID:HFAIbdvR
最近mysqlをはじめてみたんだけど

二バイト文字がinsertされないっ!

プロンプト直打ちなら大丈夫なんだけど
perl経由で

$sth = $dbh->prepare("INSERT INTO member (a,b,c)VALUES ('う','ん','こ')");

としてもダメなんだ。半角英数字ならいけるんだけども。
教えてください。エロイ人。
27NAME IS NULL:2006/08/20(日) 17:55:40 ID:???
>>26
どうダメなのか書きやがれ、うんこ野郎。
28うんこ野郎:2006/08/20(日) 19:32:18 ID:HFAIbdvR
$sth = $dbh->prepare("INSERT INTO member (a,b,c)VALUES ('u','n','k')");

半角英数字ならinsertできるんだが
二バイト文字だとinsertされないということなんだ。
29NAME IS NULL:2006/08/20(日) 20:12:46 ID:???
>>28
「されない」じゃねぇだろ!エラーぐらい書け、糞野郎。
30糞野郎:2006/08/20(日) 20:52:15 ID:HFAIbdvR
エラーがでないわけだが。
31NAME IS NULL:2006/08/20(日) 21:14:18 ID:???
環境ぐらい書け、ビッチ野郎。
32NAME IS NULL:2006/08/20(日) 21:19:47 ID:???
>>30
Perlスクリプトの文字コードとMySQLサーバの文字エンコーディングを
調べてみなさい糞坊や
33NAME IS NULL:2006/08/20(日) 21:31:44 ID:???
1バイトしか入らないフィールドだったりして
34ビッチ野郎:2006/08/20(日) 21:34:12 ID:HFAIbdvR
環境は
perl5.8
mysql5.0.24
windows xp

35糞坊や:2006/08/20(日) 21:37:31 ID:HFAIbdvR
フィールドはcharで50バイトで設定

perlスクリプトはsjis
mysqlのmy.iniもsjis
↑これ以外に設定するところがあれば教えてくだしあ
36糞坊や:2006/08/20(日) 21:41:08 ID:HFAIbdvR
コマンドで直打ちした日本語部分が

かねやんMySQLAdmin1.43[sjis版]
で日本語が???になってる
サーバーの設定がやはりおかしいのだろうか。
37糞坊や:2006/08/20(日) 21:44:23 ID:HFAIbdvR
my.iniの設定

[mysql]
default-character-set=sjis

これでいいんだよね。他にも設定場所があるんかな
38NAME IS NULL:2006/08/20(日) 22:02:31 ID:???
>>37
[mysql]のdefault-character-setをsjisにしてどうするんだ

[mysqld]で指定しなけりゃ意味ないだろ糞坊や
39糞坊や:2006/08/20(日) 22:06:55 ID:HFAIbdvR
[mysqld]

default-character-set=sjis

ごめんお、書き漏れてた。
mysqldも設定はこうなってる。
なんでだよー
40NAME IS NULL:2006/08/20(日) 22:14:06 ID:???
>>39
ならばPerlで、insert文発行する前に
set names sjis を発行してみたらどうかね?
つまり

$dbh->prepare("set names sjis");
$dbh->prepare("INSERT INTO member (a,b,c)VALUES ('う','ん','こ')");

こうしてみるとどうなる?
41糞坊や:2006/08/20(日) 22:14:30 ID:HFAIbdvR
ありがと。
いまから試してみるお
42糞坊や:2006/08/20(日) 22:25:56 ID:HFAIbdvR
半角英数字はOK
全角文字はNG

だめですた。
43NAME IS NULL:2006/08/20(日) 22:38:04 ID:???
全部のコードをEUCにしろよ、蛸坊主
44蛸坊主:2006/08/20(日) 23:37:56 ID:HFAIbdvR

明日、EUCで試してみます。
今日はありがとうございました。

おやすみなさい。
45NAME IS NULL:2006/08/21(月) 01:36:21 ID:VybCRsL9
http://dev.mysql.com/downloads/mysql/5.0.html のLinux (non RPM package)
Linux (x86, glibc-2.2, "standard" is static, gcc)と
Linux (x86)の
違いはどのような点でしょうか?パフォーマンスや機能に違いはありますか?
マニュアルに記述が無い様なんですが。

ちなみに、Linux (x86, glibc-2.2, "standard" is static, gcc)では
phpの./configure --with-mysqlが失敗して原因が分からずハマりました(FC5)。
Linux (x86)ではconfigureが通りましたが。
46NAME IS NULL:2006/08/21(月) 01:40:39 ID:???
まーた始まった
47NAME IS NULL:2006/08/21(月) 02:16:56 ID:kPEGA5wc
【就職】「中韓などアジアの優秀な人材を、もっと日本企業に」 留学生2000人に無償奨学金月20〜30万円…経産省・文科省[08/20]★7
1 :試されるだいちっちφ ★ :2006/08/21(月) 00:42:25 ID:???0
★アジア留学生に奨学金、日本で就職促す 2千人に国支給

 中国、韓国などアジア諸外国の優秀な人材に、日本企業にもっと入ってもらおうと、
日本の大学で学ぶ留学生への無償奨学金制度を07年度から経済産業・文部科学
両省が始める。大学・大学院に、採用意欲のある企業と提携して、留学生向けの専門
講座やビジネス日本語講座などの2年間の特別コースを新設してもらい、その受講生
1人あたり、住居費分、学費免除分、生活費など月計20万〜30万円相当の支給を
検討中だ。支援対象は約2000人を想定している。

 特別コースは企業の中核を担える人材の育成が目標で、電機・IT業界、環境関連
産業など特定分野の企業群と提携し、それらのニーズにあった専門性の高い授業を
想定。また、留学生の日本企業就職率が伸びない理由となっている、日本語の力不足
や企業風土の特徴をあまり知らないことなどを解消するため、特別コースには実用性
の高い日本語会話の授業や日本の企業文化などを教える授業のほか、インターンシップ
制度も盛り込んでもらう。両省が授業内容を審査し、奨学金制度を適用するかどうか
決める。

 両省は関連予算として07年度予算の概算要求に約60億円を盛り込む方針。この中
には、同じ目的で、既存の国費留学制度を使っている留学生らが無料参加できる就職
支援プログラムも加わる。

 経産省によると、04年度は約3万人の留学生が日本の大学・大学院を出たが、日本
国内で就職した留学生は約5700人にとどまった。留学生支援策の拡充で、アジアの
優秀な人材の定着を増やそうとしている。

朝日新聞 2006年08月20日06時24分
http://www.asahi.com/job/news/TKY200608190397.html
前スレ(立った日時:2006/08/20(日) 07:02:40)
http://news19.2ch.net/test/read.cgi/newsplus/1156074203/
48NAME IS NULL:2006/08/21(月) 12:53:36 ID:???
中韓人イラナイ
49NAME IS NULL:2006/08/21(月) 18:37:49 ID:???
質問です。MYSQL+phpMyAdminを使用しています。
サーバーを借りていて引越しのためデータを
旧サーバーからSQL文でエクスポートしたのですが
150M程あるので新サーバーでインポートしようとすると
phpMyAdminのインポートの制限?が2M程しかないので
インポートできない状況です。
なんとかDBの移転を実行するには

旧サーバにSSHでsuでrootになりMYSQLにログインして

mysqldump -u root -x --all-databases > dump.sql

で、その後ftpか何かでdump.splを捜し出して旧サーバからDL

新しいサーバで任意の場所に 例えば /home/html/
とかにdump.sqlをUPして
新サーバにてSSHでsuでrootになりMYSQLにログイン

mysql -u root -p < /home/html/dump.sql

であってますでしょうか?
50NAME IS NULL:2006/08/21(月) 20:08:59 ID:???
>>49
まずなぜDBファイル直で引っ越さないのかを教えてくれ。
51NAME IS NULL:2006/08/21(月) 22:28:52 ID:???
Answer: I didn't know such a method.
52NAME IS NULL:2006/08/21(月) 23:14:54 ID:???
mysqlのライセンスについて質問です。
(結局のところ、GPLについてなのですが…)

とある入力データをMySQLに格納&検索を行うフリーソフトをVisualC#で開発中。
利便性を考慮して開発したAPとMySQL5.0&Connector/Net1.0を併せて配布したいです。
ただし、開発したAPのソースは公開したくない。
(MySQL&Connector自体のソースは変更しない。)

この場合は以下の@〜Bのどの方法を適用すべきでしょうか。
幾つかのサイトを当たったのですが、明確な回答が得られませんでした…
ソースを改変しなければ、ソース付きバイナリの再頒布は自由と考えて大丈夫なのでしょうか。

@ 同じZIPファイルにまとめて、APのインストール時にMySQLと
  Connectorのインストーラを起動する。
A 一緒に配布するが、インストーラは各個人で起動してもらう方法。
B 配布しない。各個人でMySQLのサイトからダウンロードしろと。

http://www.gnu.org/licenses/gpl-faq.ja.html

よろしくお願いします。
53NAME IS NULL:2006/08/22(火) 00:11:41 ID:???
>>52

まず、機種依存文字で選択肢を語られても読めないよ。

そのリンクにあるGPLはちゃんと読んだのかね。

このへんも読もう。
http://www.softagency.co.jp/products/mysql/process.html

GPLというのはそういうもんだ。
いまだにわかってないのが多すぎるな。
54NAME IS NULL:2006/08/22(火) 02:45:11 ID:???
>>50
apacheもphpもmysqlも全部バージョンが違うし
そもそもどのフォルダのどこまでを移動していいのかがわかりません
55NAME IS NULL:2006/08/22(火) 11:14:46 ID:???
>>54
DBの位置もわからず良く運用できるなぁと感心。
うーんと show variables like 'datadir'; で確かめられる。
apache、php のバージョンって全く関係ない。
mysqlのバージョンの違いには多少の留意が必要だがオレの経験では3.xから4.x
程度なら大丈夫。最悪repairすれば動く筈。というかチャレンジする姿勢が大事。
56NAME IS NULL:2006/08/22(火) 21:13:05 ID:???
>>55
OSの違いは?
5755:2006/08/22(火) 21:28:22 ID:???
>>56
linux←→win で経験あるけど全く問題なし。
58NAME IS NULL:2006/08/23(水) 01:27:45 ID:???
3.23->4.0は問題ないが、4.0->4.1には大きな壁がある。
59NAME IS NULL:2006/08/23(水) 04:36:52 ID:???
リナウィンって同じ32ビットCPU同士ってだけでしょ。
64ビットは簡単には無理だよ。

再配布して、自社製品的に扱うならABからライセンス買わないと。
それがオープンソースのビジネスモデルです。ただで儲けさせてくれるほど甘くはない。
mysql開発者の生活は保証する必要が有るし、その飯の種がライセンス。

phpMyAdminを常用してる時点でスキルが足りない。
GUI付きのSQL鯖に帰ったほうがいいよ。
普段バックアップも満足にしてなかったでしょ?

eucもsjisも捨てたほうがいいよ。
utf8で統一したほうが、文字コード変換も無いからトラブル皆無。
文字コード変換が絡むと、どのレベルで文字変換して問題が発生するのか切り分けが面倒。
60NAME IS NULL:2006/08/23(水) 08:49:47 ID:???
>>45
パフォーマンス気にするなら、自分でコンパイルした方が良いよ。

glibc-2.2は古いから、FC5だと古いglibcが無い予感。
staticだから平気か?

phpのconfigureの前に、mysqlとかは動きます?
たぶんGLIBCなんたらって出るんじゃないかな。
61NAME IS NULL:2006/08/23(水) 10:46:28 ID:???
>>58
具体的に報告せよ。
62NAME IS NULL:2006/08/23(水) 10:49:30 ID:???
>>61
バーカ
63NAME IS NULL:2006/08/23(水) 11:04:00 ID:???
待望の姉歯マンションに引越し。
朝、起きたらパロマの湯沸かし器でシャワーを浴びる。
朝食には雪印の牛乳を欠かさない。
ドコモのケータイでメールをチェック。
ナショナルFF石油式暖房機で温まってから、
シンドラー社製のエレベーターで玄関へ。
三和シャッターの前を通り、三菱ふそうのバスに乗る。
乗り換えはJR西日本の207系。
空港からはJALの飛行機で出張。
東京での移動では、東急東横線の駅員に切符の買い方を尋ねる。
午後は東武の踏み切りを渡って、ふじみ野市営プールで子供を泳がせる。
夜遊びはセガのジョイポリスで。

あなたも満喫しませんか。
             エンジョイ・スリリングライフ。
64NAME IS NULL:2006/08/23(水) 11:48:21 ID:???
>>63

つ もちろん毎日のメールチェックはマイクロソフトのアウトルックで楽々。

も付け足しとけ。
65NAME IS NULL:2006/08/23(水) 13:33:35 ID:???
スレッドタイプの掲示板群を作る場合、どんなテーブルの構成が一番いいのでしょうか??
今考えているのは
 1ジャンルごとに1テーブル
 すべて1つのテーブル、bbs_seqでジャンル分け(DB掲示板ならbbs_seq = 2など)
です。
皆さんならどんな構成にしますか?
66NAME IS NULL:2006/08/23(水) 14:34:56 ID:???
>>65
俺なら2
何個も作ると管理がメンドい
67NAME IS NULL:2006/08/23(水) 15:22:55 ID:???
hoshu
68NAME IS NULL:2006/08/23(水) 16:18:27 ID:???
>>65
あんたのスレッド構成の前に投げるスレッドを良く考えてくれ。イタチ君。
6965:2006/08/23(水) 16:28:39 ID:???
ここMySQLの総合スレですよね?
じゃああってますけど何か?
70NAME IS NULL:2006/08/23(水) 16:37:55 ID:???
>>69
あってない。
MySQLの話じゃねーだろ。
7165:2006/08/23(水) 16:44:28 ID:???
mysqlの「総合スレ」ですよ
確かに最初は書いていなかったので分かりにくかったかもしれませんが
mysqlにおいて最適な構築法を聞いているのだからここでいいですよね?
それともこういうことはオラクルのスレで聞けばいいんでしょうか?
72NAME IS NULL:2006/08/23(水) 18:00:06 ID:???
DB板自治・質問・雑談スレ
http://pc8.2ch.net/test/read.cgi/db/1056957157/

こっちでいいだろ
それに使うDBを特定して話をする以前に、んな曖昧な要件で一番良いのはどれとか言われても困る
超大規模な掲示板じゃなければ、よっぽどおかしな設計しない限り適当に正規化だけしとけば何とでもなるだろ
73NAME IS NULL:2006/08/23(水) 18:38:47 ID:???
>>65俺は1にする
すべての掲示板が一緒のテーブルというのはあまりよろしくない
大変でもガンガレ
>>72過疎ってるんだから細かいこと気にするなよ!
おまえみたいに細かいやつは嫌いだ
74NAME IS NULL:2006/08/23(水) 19:15:20 ID:???
>>65>>73
スレッド型=2ch型とでも思ってるのかな…?
相変わらずMySQL関係ねーし
75NAME IS NULL:2006/08/23(水) 19:17:30 ID:???
>スレッドタイプの掲示板群
だから2ch型なんじゃね?
まあスレッド型=2chという発想はどうかと思うが
76NAME IS NULL:2006/08/23(水) 19:22:34 ID:???
>皆さんならどんな構成にしますか?
他人に丸投げしようとしてるようにしか見えん
試行錯誤してからでも遅くないだろ
77NAME IS NULL:2006/08/23(水) 19:24:42 ID:???
スレッド型といえば ASCII NET とか mmm じゃないの?
78NAME IS NULL:2006/08/23(水) 19:51:57 ID:???
>>76
ひねくれ過ぎ
過疎ってるんだからまった〜りいこうよ
79NAME IS NULL:2006/08/23(水) 20:01:07 ID:???
hogeとかageとかうぜー
荒らしたいだけじゃん
8058:2006/08/24(木) 00:30:23 ID:???
>>61
4.1からカラム,テーブル,データベース毎に文字コードを指定できるようになった。
4.0まではchar(n)はnバイト。4.1からはchar(n)は (そのcharsetの1文字の最大長バイト)*n バイト。
その影響で、4.0 euc-jp char(10) のテーブルデータを 4.1 に持っていくと勝手に char(3) に置き換えられる。
euc-jpは1文字最大3バイトなので、10バイトには3文字しか入らないので。
おかげで、そのカラムには ASCII 文字であっても 3文字までしか入らなくなる。

こんな感じでよろしいか?
81NAME IS NULL:2006/08/24(木) 06:23:28 ID:???
>>80
つまり4.1以降では、char(3)って定義すると、
それは文字コードにに関わらず3文字分ってこと?
8258:2006/08/24(木) 09:17:46 ID:???
>>81
そうです。その前提の説明が抜けてた。ごめん。
8358:2006/08/24(木) 09:21:58 ID:???
もうひとつ。
4.0まではサーバのcharsetがujisで、クライアントのcharsetがlatin1でもテキトーに
なんとかなっていたが、4.1からはサーバ側で勝手に文字コードの変換を試みるので、
今まで動いていたプログラムがとたんに文字化けするようになる。
サーバのcharsetはmy.cnfでいじれるけど、クライアントの方はプログラムを
charsetを可変にできるように作ってないとNG
84NAME IS NULL:2006/08/24(木) 10:54:35 ID:???
おまんこSQL
8561:2006/08/24(木) 11:22:34 ID:???
>>58
ありがと。参考になりますた。
86NAME IS NULL:2006/08/24(木) 12:46:38 ID:???
下記のような表を入力して表示させるには、どのような手順で行えばいいのでしょうか?
ご意見よろしくお願いします。
商品コード商品名売上コード 売上伝票
110 あ 210 え
111 い 211 お
112 う 212 か




87NAME IS NULL:2006/08/24(木) 12:47:45 ID:???
すいません、左に詰めすぎました…。
8861:2006/08/24(木) 13:03:11 ID:???
>>86
何したいの?
8965:2006/08/24(木) 16:18:19 ID:???
どなたかお願い致しますm(_ _)m
90NAME IS NULL:2006/08/24(木) 16:21:10 ID:???
>>88
入力をして、実行結果を表示させたいのです。
91NAME IS NULL:2006/08/24(木) 16:44:23 ID:???
>>86
>どのような手順で行えばいいのでしょうか?

手順1:入力する
手順2:表示させる
92NAME IS NULL:2006/08/24(木) 16:45:31 ID:???
>>89
好きにやれば?
93NAME IS NULL:2006/08/24(木) 16:56:16 ID:???
>>89
あまりに淡白な質問なのでこちらも淡白に答えてみる。
・手順1:入力する insert into hoge values(.....);
・手順2:表示させる select * from hoge;
94NAME IS NULL:2006/08/25(金) 00:48:54 ID:???
>>60
ダウンロードページに
For maximum stability and performance, we recommend that you use the binaries we provide.
とあるからバイナリにしたんですが、ソースからコンパイルした方がパフォーマンスはいいんですか?
どちらのバイナリもFC5で動作するようです。ただ"standard"の方はphpのconfigureが通りませんでした。
結局はglibcというもののバージョンの違いということでしょうか。
あとなんとなくですが、phpもmysqlもFC5のパッケージは使いませんでしたが、これらはどうなんでしょう。
95NAME IS NULL:2006/08/25(金) 02:14:40 ID:MN2RS3yj
2chをブラウザで見たときのような 前100 次100 をPHP+mysqlでやりたいのですが
どうやったらいいかわかりません。
スレッドのデータはDBに格納してあります。
くだらない質問ですみませんが、どなたかお教えいただけると感謝感激雨あられです。
96NAME IS NULL:2006/08/25(金) 03:13:09 ID:???
mysql offsetでぐぐれ
後は自力でどうぞ
97NAME IS NULL:2006/08/25(金) 03:40:07 ID:rgXmdUMm
すみません、ど素人な質問ですがよろしくお願い致します。

no uid visit_id year month day timestamp
1 35 1 2006 8 20 1156044334
2 1 31 2006 8 25 1156437877
3 1 33 2006 8 25 1156440499
4 31 1 2006 8 25 1156441495
5 31 32 2006 8 25 1156442959
6 31 1 2006 8 25 1156442961
7 35 33 2006 8 25 1156443005
8 35 1 2006 8 25 1156443007
9 35 1 2006 8 25 1156443342


上記のようなテーブル構成でデータが入っているとき、
「同じ年月日の中で、visit_idで同じ値をまとめて、
 それぞれのtimestampが最も大きいレコードのuid(またはno)」
を、抽出したいと考えています。

たとえば、visit_idが「1」のとき、「no」が「1」と「6」と「9」のレコードを得たいです。

それで
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
ORDER BY `timestamp` DESC
だと、
「no」が「9,8,6,4,1」のレコードが得られます。
ここまでは想定通りです。


ここで、「uidが重複しているレコードのうち、timestampの値が小さいほう」を除外すれば、
抽出したくないレコード(「no」が「8と4」のレコード)を含まず、
当初の目的である、「no」が「1,6,9」のレコード だけが得られるはずです(…よね?)


そこで、
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC

と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「8と4」のレコードでした。
「no」が「8と4」のレコードを得るのではなく、
逆にこれを除外して「no」が「9」と「6」と「1」のレコードを得たいと
思っていたのに、まったく正反対の結果になってしまいます。

正しい結果を得るには、どういうSQL文を発行したら良いのでしょうか?
9897:2006/08/25(金) 03:47:42 ID:rgXmdUMm
すみません、訂正です。

>と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「8と4」のレコードでした。

誤:得られる結果は「no」が「8と4」のレコード
正;得られる結果は「no」が「4と1」のレコード

の間違いでした。

最終的に「no」が「9」と「6」と「1」のレコードを得たいというのは同じです。
分かりにくい質問で恐縮ですが、どうかよろしくお願い致します。
99NAME IS NULL:2006/08/25(金) 03:57:25 ID:???
freeBSD5.4でMySQL5.0を使いはじめましたが
ディスク容量が /var 4G /home 64G の為
MySQLのdataの格納を /home にて行いたいのですが
デフォルトでは /var に格納されてしまっているようです。

/home にて運用するには /var/db より /home/db にシンボリックリンクをはる
とか MySQL自体を /home にreinstallするとかの方法があるような気がしますが

はたして出来るのか?また出来るのであればどちらがスマートな方法なのか
又、その詳細な方法を教えていただけるとありがたいです。

エロい人よろしくお願いいたします。
10099:2006/08/25(金) 04:50:31 ID:???
シンボリックリンクでいくとするなら

shell> mkdir /home/db
shell> ln -s /home/db mysqld-datadir

これでオケですか?
10199:2006/08/25(金) 05:16:17 ID:???
ん?
/etc/my.cnf に

[mysqld]
datadir=/home/db

って記入するだけでいいのか!?
102NAME IS NULL:2006/08/25(金) 09:51:28 ID:???
>>99
FreeBSDでportsで入れてるなら /etc/rc.conf か rc.conf.local に
mysql_dbdir=/home/db とか書けばいいんじゃないか。
103NAME IS NULL:2006/08/25(金) 11:58:18 ID:0tew6HGv
csvデータを取り込みたくload data 〜を使いたいのですが1カラム目は主キーにしたい為
1カラム目は飛ばして2カラム目からデータを流すようにはできませんでしょうか??
10497:2006/08/25(金) 12:52:31 ID:rgXmdUMm
SQL質問スレのほうが適切かと思って移動しました。
10565:2006/08/25(金) 13:16:06 ID:???
どなたかお願い致します m (_ _) m
106NAME IS NULL:2006/08/25(金) 13:49:38 ID:MN2RS3yj
$sql="select * from table1 limit '$l',30";

これでエラーが出てしまいます。
テーブル名には変数が使えるけど、limitには使えないのでしょうか
107NAME IS NULL:2006/08/25(金) 13:50:27 ID:0tew6HGv
>>103だけど自己解決しますた
108NAME IS NULL:2006/08/25(金) 14:10:59 ID:???
>>106
解決です。

$sql=sprintf("select * from table1 limit %d, %d", $l, 30);
109NAME IS NULL:2006/08/25(金) 15:29:07 ID:???
>>97
長いので斜め読みだが、group by で選ばれるレコードを限定することはできない。(と思う)
が、group by でチョイスされた複数レコードの中から最大カラム値の取得は可能。

SELECT no,uid,year,month,timestamp,max(timestamp) as max_timestamp
FROM テーブル
WHERE visit_id='1'
GROUP BY uid
ORDER BY max_timestamp DESC;
11097:2006/08/25(金) 19:31:57 ID:rgXmdUMm
>>109
私もそのようにMAX関数を使ってやってみたところ、
たしかにtimestampのカラムは期待通りの値が得られるのですが、
なぜか別のレコードのnoが返ってきます。

具体的には、
SELECT `no`, MAX(`timestamp`) AS `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC;
というクエリを実行すると、
no timestamp
1 1156443342
4 1156442961
という結果が返ってきます。

しかし>>97でのテーブル・データを見ていただければ分かりますように、
timestampが「1156443342」の時はnoは「9」のはずなのに、なぜか「1」になっています。
また、timestampが「1156442961」の時はnoは「6」のはずなのに、なぜか「4」となっています。

すなわち、SELECT結果のnoとtimestampは、
それぞれ別々のレコードからの値が混じってしまっているのです。

これはどうしてなのでしょうか??
111NAME IS NULL:2006/08/25(金) 19:50:16 ID:???
本編とは関係ないところへのツッコミだけど、as で指定する別名って既存の列名と被って大丈夫なん?

あと、列名を"`"で括ってるのは何?
いらなくね?
112NAME IS NULL:2006/08/25(金) 20:02:39 ID:???
>>111
カラム名をバッククォートで囲んでおかないと、
予約語などとカブったときに動作がおかしくなる。
囲んでおくと間違いなくカラム名だと認識されるから安心。

あとas指定はカブってもOK。
113109:2006/08/25(金) 20:10:06 ID:???
>>97
2度目だが、group by で選ばれるレコードを限定することはできない。(と思う)
が、group by でチョイスされた複数レコードのカラムを maxや minなどで集計することは可能
と言っただけ。
114109:2006/08/25(金) 20:37:59 ID:???
>>97
「group by は頭にあるユニークレコードを返す」という仮定のもの
以下の query書いてみた。何だか動いているよだが自信なし。

SELECT * FROM
(SELECT * from テーブル WHERE visit_id='1' ORDER BY timestamp DESC) hoge
GROUP BY hoge.uid;
11597:2006/08/25(金) 22:28:26 ID:rgXmdUMm
すいません、いろいろ試行錯誤してみたところ、以下のようなクエリで
期待通りの結果を得ることが出来ました。ありがとうございました。

SELECT MAX( `no` ) AS `no` , `year` , `month` , `day` , `uid` , MAX( `timestamp` ) AS `timestamp`
FROM テーブル
WHERE `visit_id` = '1'
GROUP BY `uid` , `year` , `month` , `day`
ORDER BY `timestamp` DESC
116NAME IS NULL:2006/08/25(金) 23:30:29 ID:???
linuxで問題なく使える漏れは勝ち組。
11799:2006/08/26(土) 05:07:51 ID:???
>>102

助かったありがとう
118NAME IS NULL:2006/08/26(土) 10:16:30 ID:qxaqygPk
全文検索のブールモードで、
検索語の中に演算子(+や-)が含まれている場合は
どうしたらいいのでしょうか?
119NAME IS NULL:2006/08/26(土) 10:31:52 ID:qxaqygPk
""で囲めばいいだけですた
120NAME IS NULL:2006/08/27(日) 00:36:10 ID:???
すみません
あるテーブルに付けられた外部キーの名前を確認したいですが、
どうすれば出来るのでしょうか?
121NAME IS NULL:2006/08/27(日) 08:07:27 ID:???
show creta table テーブル名 とか?
122NAME IS NULL:2006/08/27(日) 08:20:27 ID:UpElkVtW
MYSQLにおけるSQLの質問です。

条件にHITする1件目と最後のx件を同時に取得したい場合、
一度のSQLで取得可能でしょうか?

例えば2chのような掲示板があり、スレッド番号で検索をかけると
記事番号1から最大で1000まで抽出されるとして、結果の全てではなく1件目と
最後の50件を取得したいのです。

今の私の知識だとまず

select * from 掲示板 where スレッド番号=x and 記事番号=1

で一件目を取得し、次に

select * from 掲示板 where スレッド番号=x and 記事番号>1 order by 記事番号 desc limit 0,50

で一件目を除く最後の50件を取得し、スクリプトで一件目の結果とくっつけるという
非常にわずらわしいコードになってしまっています。しかも二度目に取得するレコードは
記事番号の逆順で、それもなんだか気持ち悪いです。

よりスマートな方法がありましたらよろしくおねがいします。
123122:2006/08/27(日) 08:21:48 ID:UpElkVtW
すいません、↑のlimit 0,50 は limit 0,49 の間違いです。
124NAME IS NULL:2006/08/27(日) 09:17:29 ID:???
>>122
俺ならスレッドテーブルとスレッド明細テーブルにするなあ。
スレッドテーブルには現在記事番号、1の内容、名無しさんのときの名前、1000超えたときの
テキストなんかを登録して。明細読むときは現在記事番号-50からとかにすれば
たぶん高速に取得できるとおも。
125NAME IS NULL:2006/08/27(日) 09:35:52 ID:???
l50が仕様なら、書く時にl50に成る様にテーブル作って格納するとかね。
l50とは限らないなら、1000全部取得して一定時間保持するアプリケーション鯖を動かす。
php/perlとかじゃ厳しいけどな。
126蛸坊主:2006/08/27(日) 11:30:44 ID:I2j21E7K
以前こちらのスレでお世話になりました
蛸坊主です。
おかげさまで、無事MySQLを使えるようになりました。
今は練習がてらperlと連携したスレッド型BBSを製作しています。

perlのみの時は<>で区切ったテキストで管理していましたが
MYSQLを組み合わせることによって
抽出やソートのコード書く手間は省けるわ、処理時間は早いわ
猛烈に感動しております。すげぇよすげぇよぉおおおおおおおおおおおおおおおおおおおおくぁw背drftgyぜにがたlp;@:

またわからないことがあったら質問しにくることがあるかもしれませんが
そのときはよろすくです。
127NAME IS NULL:2006/08/27(日) 15:24:54 ID:9FxI9XgK BE:5529942-2BP(17)
/home/*において、ユーザー*のquota制限をかけているんですが、
そこにMySQLの*ユーザーの所有するDBも/home/*の容量と合算して
quota管理する方法がどうしても見つかりませんでした。

どなたかわかる人いないでしょうか?
128NAME IS NULL:2006/08/27(日) 17:05:58 ID:CovlgFQJ
2chのdatログをデータベースに流し込みたいのですが、$datetimeだけ流し込めません。

$data=array();
$data=explode( "<>", mb_convert_encoding($line,"EUC-JP",mb_detect_encoding($line)));
$datetime='.$data[2];

$sql="INSERT INTO `thredate` (thread,res_num,name,mail,datetime,res)
VALUES(".intval($thread).",".intval($res_num).",'".addslashes($name)."','".addslashes($mail)."','".$datetime."','".addslashes($res)."')";

$datetime以外のデータはちゃんと入ってます。
$datetimeを何かエンコードしなけりゃいけないんでしょうか?
どうかお教えください。
129NAME IS NULL:2006/08/27(日) 19:15:49 ID:???
>$datetime='.$data[2];

まず「='.」ってのがありえないし。

それと、なぜ「addslashes」なんて使ってるんだ?
どうせなら「mysql_escape_string」を使えよ。
130NAME IS NULL:2006/08/27(日) 19:40:06 ID:CovlgFQJ
>>128
あああ、削るとこ間違えてました。三行目は

echo '<hr>$datetime='.$data[2];

です。

echo 〜では表示されるのに、どうしてなんだか・・・
mysql_escape_stringも調べてみます。ありがとう
131NAME IS NULL:2006/08/27(日) 20:34:32 ID:???
>>130
三行目がそれなら、その前に$datetimeに値を代入するための行が足りないじゃんか。
132NAME IS NULL:2006/08/27(日) 20:36:43 ID:???
2つのキーをあわせて一つの主キーとして扱うことは出来ないのでしょうか?
133NAME IS NULL:2006/08/27(日) 20:46:28 ID:CovlgFQJ
>>131
はしょりすぎましたかね。
とりあえず$datatimeに値はわたっています。
はしょらずにどれを載せればいいのかわからないのですけど、どうしたらいいでしょうか。
134NAME IS NULL:2006/08/27(日) 21:44:25 ID:???
代入するところやテーブル定義書けば?
怪しいところばかりピンポイントで端折ってるから何もわからん

>>132
"mysql 複合キー"でググれ
135NAME IS NULL:2006/08/27(日) 22:10:47 ID:???
>>133
この手の不具合ってのは、たいてい開発者のしょうもない勘違いやミスが原因。
だから、勝手な判断でソースを端折ったりしないで、関係する部分を全部出すべき。

ま、一番怪しいのはテーブルのdatetimeカラムの名前や項目型だけどな。
136NAME IS NULL:2006/08/27(日) 22:13:28 ID:CovlgFQJ
>>134
何度もすみません。
うpしてみました。

http://days1280.hp.infoseek.co.jp/cgi-bin/UPUP/src/up0012.txt

ほかに必要な情報があったらすぐに書き込みさせていただきます。
どうかよろしくお願いします。
137NAME IS NULL:2006/08/27(日) 22:16:37 ID:CovlgFQJ
ムムム。varchar(100)ではだめなんだろうか。

あと流し込むログも必要な気がしたので書いておきますね。

名無しさんの野望<>sage<>日付ID<> レス内容
138NAME IS NULL:2006/08/27(日) 22:48:35 ID:???
>>136
だからさ、$datetimeに値が代入されていないって言ってんだろうが。
っていうか他にも$mailとかいくつかの変数に値が代入されてない。
なぜお前は>>131の指摘を無視するんだ?

>とりあえず$datatimeに値はわたっています。
・・・って、バカかお前は。
echo '<br>$datetime='.$data[2];
で表示されてるのは$data[2]の値であって、$datetimeの値ではないぞ。
人様の指摘を無視して自分の間違った思い込みを優先するんなら、質問なんかする資格ないよボケ。
139NAME IS NULL:2006/08/27(日) 23:06:43 ID:???
うわぁ、ほんとにすみません。ご迷惑をおかけしまして誠に申し訳ございません。
皆様の貴重な時間を割いて頂いて、これは吊ってくるしかないです。
ほんとうにすみませんでした。
140NAME IS NULL:2006/08/27(日) 23:08:26 ID:???
うほっ
代入してないじゃん
これじゃDBに入るわけなす

echoで$datetimeそのものを表示しなきゃデバッグにゃならんよ

あと日付入れるのにvarchar(100)なんて要らんよ
書式決まってるデータなんだしdatetime型使えばよし
141NAME IS NULL:2006/08/27(日) 23:09:05 ID:???
おと、レスが一足遅れた
142NAME IS NULL:2006/08/28(月) 00:38:22 ID:???
>>134
ありがとう!
143NAME IS NULL:2006/08/28(月) 01:06:18 ID:???
mysqldがユーザ権限で動かないと、ユーザに設定したquotaは意味がない。
ユーザに設定したquotaがmysqlユーザで起動したコマンドに効くと思うのか?
幸いmysqldのソースは公開されてるから、quotaの値を見る様に改造したら?
GPLだから弄ったソースはどこかにうpするように。
144NAME IS NULL:2006/08/28(月) 01:31:21 ID:???
>>143
そんなことより涼宮ハルヒの憂鬱のDVDを買ったほうがいいんじゃないか?
145NAME IS NULL:2006/08/28(月) 02:39:27 ID:???
>>143
>GPLだから弄ったソースはどこかにうpするように。

バカかお前は。
146NAME IS NULL:2006/08/28(月) 06:48:30 ID:???
試してないが、
データベースのオーナーをユーザにして
グループをmysqlにして
グループに書き込み権を与える
ってのはどうかな。
147NAME IS NULL:2006/08/28(月) 12:52:51 ID:???
700万行ぐらいのテーブルに対して

SELECT * FORM 700万行ぐらいのテーブル;

と、やってしまいました。
本当はWHEREなんとかと付け加えたかったのですがボケてました。
一時間ぐらいまっても止まる気配がありません。
どうすればいいでしょうか・・・orz
148NAME IS NULL:2006/08/28(月) 12:54:45 ID:???
サーバの管理権限持ってればプロセスを殺せばよし
レン鯖だったら会社に連絡して止めてもらえ
149NAME IS NULL:2006/08/28(月) 13:22:35 ID:???
既にある行にNOT NULLを指定することは出来ないのでしょうか?
150NAME IS NULL:2006/08/28(月) 13:30:41 ID:???
>>149
"mysql alter table"でググれ
151NAME IS NULL:2006/08/28(月) 13:44:50 ID:???
>>150
ありがとう!できたよ!
152NAME IS NULL:2006/08/28(月) 19:30:44 ID:???
ここはアニメヲタの巣窟ですね。
153NAME IS NULL:2006/08/28(月) 21:57:57 ID:???
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
データベースを選択した際にこれがでるようになりました。
一体これはどのような意味なのですしょうか?
>テーブルとカラム名のテーブル情報テーブルを読んでいます
>この機能を無効にするにはクイッカースタートアップ(?)で-Aをつけてください
下手なりに訳すとこのような意味なのでしょうか?
一体、何をしているのですか?
154NAME IS NULL:2006/08/28(月) 22:12:35 ID:???
分かる単語だけを繋げればそういう訳になるのかも知れんが。。。
155NAME IS NULL:2006/08/28(月) 22:29:33 ID:???
意味はわからんが、それっていつでも出るんじゃないの?
156NAME IS NULL:2006/08/29(火) 07:28:26 ID:???
readlineの補完情報の先読みだとおもう
157NAME IS NULL:2006/08/29(火) 07:39:27 ID:???
ふーん、後付け理由ってのは面白いもんスネ....

今年初のハリケーンに発達した「アーネスト」は熱帯性低気圧に勢力を弱めたほか、
進路も石油精製施設が集中するメキシコ湾岸からそれるとの気象予報が伝わった。
これを手掛かりに原油先物相場が1バレル70ドル台に下落した。
158NAME IS NULL:2006/08/29(火) 10:41:39 ID:???
>>157
でもここでイラク進攻になったりすると100ドルの大台突破の可能性もあるらしいですよ
159NAME IS NULL:2006/08/29(火) 16:13:54 ID:???
あるテーブルの1つのカラムにインデックスを付けました。
後にデータを追加した場合、追加した分にもインデックスを付けるためにはどうすればよいのでしょうか?
いままでoptimize tableがやっているのだとばかり思っていたのですが、そうではないようで!?
それとも何もしないで追加分もインデックス化されるのでしょうか?
160NAME IS NULL:2006/08/29(火) 16:30:43 ID:???
>>159
そりゃもちろん更新・追加が入るたびにインデックスも更新されるので心配後無用。
161NAME IS NULL:2006/08/29(火) 17:17:05 ID:cG9zGaSa
select * from member_table WHERE mail like …@….com and pw like ・・・・
で検索した場合エラーがでます。
AND せずにメールだけPWだけで検索した場合は上手くいきます。
構文おかしいですか?
162NAME IS NULL:2006/08/29(火) 17:35:36 ID:???
なぜエラーメッセージを書かないのか。
163NAME IS NULL:2006/08/29(火) 19:33:13 ID:???
なぜベストを尽くさないのか。
164159:2006/08/29(火) 22:40:07 ID:???
>>160
ありがとうございます。
心配しないことにしました。
165NAME IS NULL:2006/08/30(水) 00:23:27 ID:???
>>147
mysqladmin kill
さすがにもう止まってると思うけど
166NAME IS NULL:2006/08/30(水) 03:04:24 ID:???
たまに、SQLの実行時間が長い事を自慢する奴がいるから、まだ動いてるかもよ
167NAME IS NULL:2006/08/30(水) 07:56:16 ID:???
原油需要減退スカ....

午前中に調査会社コンファレンス・ボードが発表した8月の米消費者信頼感指数が
市場予想を大幅に下回ったことで、米景気減速に伴う原油需要減退の思惑も強まった
という。10月物は節目の70ドル下回ると損失覚悟の売りなども巻き込み、一時は
69.30ドルと期近物では6月21日以来の安値水準を付けた。
168NAME IS NULL:2006/08/30(水) 13:35:23 ID:???
クックック
石油の先物やって値段吊り上げてぼろ儲けしてる奴らは地獄に堕ちればいいのさ

んでMySQLとの関係は。
169NAME IS NULL:2006/08/31(木) 05:04:32 ID:jVfZIVCs
UNIXタイムスタンプを格納するカラムのデータ型は何が適切でしょうか?

今まではchar(10)などとしてきたのですが、
もしかしてintなどのほうがいいのでしょうか?
170NAME IS NULL:2006/08/31(木) 06:09:50 ID:???
>>169
そりゃintあたりの整数型でしょ
171NAME IS NULL:2006/08/31(木) 06:52:04 ID:???
time_tが32bitだったり64bitだったりするから、変換がからむがDateTimeで持つのも悪くはないと思う。
172NAME IS NULL:2006/08/31(木) 11:19:45 ID:???
>>169
保守重視なら DateTime。
DBパフォマンス重視なら int だろうな。
173NAME IS NULL:2006/08/31(木) 14:35:24 ID:???
>>172
datetime型で格納される値(書式)は、
「UNIXタイムスタンプ」(10桁の数字)ではないよね?
174NAME IS NULL:2006/08/31(木) 16:04:00 ID:???
>>173
都度SQL時に関数使って相互変換するんでしょ。 普通の日付としても使えるしと。
175NAME IS NULL:2006/08/31(木) 17:59:21 ID:4xLotoKF
ホームページ制作王は、世界の権威として名高いCOMDEXが
21世紀のワールドスタンダードに認定したWebパブリッシングアプリケーションである。

ホームページ制作王に不可能はない。
不可能があるとすれば、そこが人類の英知の限界点である。

21世紀、世界のWebはホームページ制作王を中心に回っていくのである。
にもかかわらず、ここ日本では、心ない風評のため、まだまだ普及に
遅れがみられる。

ホームページ制作王を普及させないかぎり、我が国のWebは、
世界の趨勢の後塵を拝するばかりである。

世界が認めた高性能!ホームページ制作王
http://pc8.2ch.net/test/read.cgi/hp/1106508682/
176NAME IS NULL:2006/08/31(木) 23:47:40 ID:???
>>169
timestamp型は使わないの?
177NAME IS NULL:2006/09/01(金) 03:24:27 ID:???
>>176
MySQLの「timestamp」って、UNIXタイムスタンプとは別物なんだよねぇ。。。
178NAME IS NULL:2006/09/01(金) 21:34:04 ID:4Md9Htbi
質問です。
既にデータが格納されているテーブルのprimaryなkeyに対して

alter table テーブル名 modify 列名 int(6) auto_increment

↑こんなSQLを発行してauto_incrementを新規に設定しようとしたのですが、
「Duplicate entry '1' for key 1」というエラーが出ます。

感覚的には設定しようとしているkeyの現在の最大値+1をauto_incrementの開始値に
設定しないとマズいのかな、という気がしていますが、その方法がわかりません。

よろしくです。
179178:2006/09/01(金) 23:02:17 ID:4Md9Htbi
自己レスです。

alter table テーブル名 auto_increment = 値

で開始値の変更が出来るようなんですが、レコード数が多い(試したのは10万件程度)と
なぜか上手くいかないようです。少ないと出来ました。

お手上げです。
180178:2006/09/01(金) 23:18:56 ID:???
さらに自己レスです。

上記はINNOBASEで行っていたのですが、一旦MyISAMに変換してから
同様の作業を行い、INNOBASEに再変換することで解決できました。
181NAME IS NULL:2006/09/02(土) 15:35:35 ID:???
そういやさ、みんなNaviCatってもってるの?
あれってOfficeとかについてくるMicrosoftQueryとかに比べて何かいいことあるの?
182NAME IS NULL:2006/09/02(土) 16:22:13 ID:???
NaviCat持ってるよ。
MicrosoftQueryより良いところはMysqlが使える所だよ。
183NAME IS NULL:2006/09/02(土) 16:25:00 ID:???
ODBC経由で使うのに比べて、何か良いことあるんですか?
184NAME IS NULL:2006/09/02(土) 23:32:31 ID:???
>>183 比べる意味がわからない・・・。
185NAME IS NULL:2006/09/02(土) 23:46:45 ID:???
同じDB内でMyISAMとInnoDBを混在させようと思うんですけど、
InnoDBのBEGIN・ROLLBACKの途中でMyISAMの更新が絡んでたら、
InnoDBのテーブルだけロールバックして、
MyISAMのテーブルは更新適用ってことで合ってますか?
186NAME IS NULL:2006/09/03(日) 04:06:19 ID:3DNv6zPE
掲示板やブログなどのWebアプリを作る際、
MyISAMとInnoDBってどちらが適切でしょうか?

今までは「InnoDBはお金や商品を扱うようなクリティカルな場合だけ」とか
思ってたので、全てMyISAMでやってきたんですが、
それだと何か問題とかありますでしょうか。

何かの記事で、「mixiは全てInnoDBを使ってる」ということを知り、
ちょっと不安になったので質問させていただきました。
187NAME IS NULL:2006/09/03(日) 05:32:31 ID:???
日本人はカテゴライズが好きだねえ
188NAME IS NULL:2006/09/03(日) 08:55:48 ID:???
>>186
初心者のオリは
UPDATEが発生するTABLEはInnoDB
INSERTだけのTABLEはMyISAM
って使い分け。
189NAME IS NULL:2006/09/03(日) 09:05:49 ID:???
2つに分ける正当な理由があるならいいが、
俺なら、よほどのことがない限りIsamかInnoどちらかに一方に統一するな。
190NAME IS NULL:2006/09/03(日) 09:31:23 ID:???
>>188
使い分けの根拠というか、具体的な理由は?
ちなみにMyISAMだって自動でロックされるから、通常は不整合は起きないよ。

>>189
統一の基準や理由キボンヌ
191NAME IS NULL:2006/09/03(日) 09:58:17 ID:???
>>190
ファイル構成自体違うし。それだけでも統一した方がメンテナンス
やりやすい。また、分けるなら明確なドキュメント書いてないと、
他人がメンテナンスもしくは引き継ぎとかの時にいらない問題が
発生する場合もあるでしょ。
192NAME IS NULL:2006/09/03(日) 10:38:28 ID:???
http://hori-uchi.com/archives/000441.html
http://d.hatena.ne.jp/naoya/20060729/1154139996

要するにMyISAMで統一しとけば無問題、でFA?
193NAME IS NULL:2006/09/03(日) 11:02:40 ID:???
PHPとMySQLで掲示板を作っているのですが、

テーブルの定義で、
id int unsigned auto_increment;
ってした場合、intの上限を超えたらどうなるんでしょうか?
初めからbigint unsignedですべきですかね?
こういう場合は満タンになる前にテーブルをもう一つ作るとかの対処法でいいのでしょうか?
194NAME IS NULL:2006/09/03(日) 11:27:26 ID:???
>>193
データが生まれて死ぬまでをきちんとする。これ基本。
普通はintの上限とか考えないで、2chみたいに1000超えたら
アーカイブにするとかしっかりシステムとして作る。
アクセスがあまりないなら、ある件数超えたら古いものから順に削除するのもいいかも。
195NAME IS NULL:2006/09/03(日) 11:43:21 ID:???
>>194
レスありがとうございます。
まだ学生で運用経験がないので参考になります。
196NAME IS NULL:2006/09/03(日) 16:04:29 ID:???
>>194
単純にアーカイブ化や削除が出来ないものも多いけどね。
たとえば会員IDとか。
もしサービスの人気が出て爆発的に増え続けたら・・・
197NAME IS NULL:2006/09/03(日) 16:10:14 ID:???
>>196
そしたらそうなった時に考えればよろしい。
そういうところはYAGNIとして割り切らないといつまでたっても形にならないよ
198NAME IS NULL:2006/09/03(日) 17:59:17 ID:???
>>197
>>193はそうなった時にどうしたらいいかを質問してたわけで。
199NAME IS NULL:2006/09/03(日) 18:32:39 ID:???
>>198
そうは読めないけど
200NAME IS NULL:2006/09/03(日) 20:02:25 ID:???
MySQL4.1でクライアントもサーバもSJISの場合は全く問題ないのでしょうか?
201NAME IS NULL:2006/09/03(日) 20:18:13 ID:???
クライアント・サーバ友にSJISでPHPのmysql関数使うと
不可避的にSQLインジェクションが発生する。
202NAME IS NULL:2006/09/03(日) 21:22:36 ID:???
>>199
小学校(しょうがっこう)へ、再入学(さいにゅうがく)しましょう。
203NAME IS NULL:2006/09/03(日) 21:57:26 ID:hFtgK4NZ
現在、MySQL4.1で内部コードEUC-JPで作られているのですが、
UTF-8に変更する必要があり、MySQL5.0にして内部コードUTF-8にしたいと思っています。
データが500万件ほどありまして、これをどう移行しようか悩んでます。
一番、簡単に移行できる方法ってどうするば宜しいでしょうか?

phpで、mb_convert_encodingを使ってPGで全変換させることを考えてはいるのですが、
一個一個のテーブル用に変換用PGを作るのが大変なもので。。。

宜しくお願いします。
204NAME IS NULL:2006/09/03(日) 22:44:06 ID:???
>>201
回答ありがとうございました。
と言うことは、PHP以外では問題ないということですか。
SJISを止めさせたかった件があるのですが、
PHP以外だとOKなら、Perl使いには止めさせる事は出来なさそうで残念です。
205NAME IS NULL:2006/09/03(日) 23:10:20 ID:VpnWy2PC
Perl/Mysqlでmixi風BBSを作ってみました。

・スレッドタイプ
・画像アップロード機能(スレ作成者のみ)
・スレッド終了機能
・書き込み削除(スレッドは不可)
・age/sageあり
・ID表示あり

通常のBBS機能に加え個別アカウント作成機能
・自己紹介表示(アイコン画像アップロード、コメント)
・書き込みランキング
・コミュニティ内メール機能

テストしてやろうジャマイカという方おられましたら
お願いします。

http://rbbs.sytes.net/
206NAME IS NULL:2006/09/03(日) 23:14:48 ID:i7dU/SiB
世界最大のアイドル写真、CG、アニメ投稿サイト?!出現(?o??)
http://uppics.googlepages.com/
207NAME IS NULL:2006/09/03(日) 23:17:16 ID:i7dU/SiB
世界最大のアイドル写真、CG、アニメ投稿サイト?!出現(?o??)
http://uppics.googlepages.com/
このサイトの文字コードおかしいな
おそらくmysqlの文字コード混乱している。
208NAME IS NULL:2006/09/04(月) 00:20:38 ID:???
>>203
4.1 euc-jp で mysqldump したものを utf-8 に変換後、5.0 の mysql に食わせるとか。
209NAME IS NULL:2006/09/04(月) 00:37:03 ID:???
>>201
詳しく
210NAME IS NULL:2006/09/04(月) 01:38:04 ID:kXemt8IJ
>>208
レスありがとうございます。
mysqldump使ったことなかったのですが、今やってみたら、
実体はテキストファイルなんですね。バイナリデータかと思っていました。
これで、何とか簡単にできそうです。助かりました。ありがとうございました。
211NAME IS NULL:2006/09/04(月) 03:23:06 ID:???
>>205
それ「mixi風」じゃなくて、モロ「mixi」のデザインぱくってんじゃん。
HTMLだけならまだしも、テーブル(TD)の背景画像をパクってるのはヤバイ。
212205:2006/09/04(月) 17:36:38 ID:???
>>211
訪問ありがと。
パーツは似せて作ったんだけどまずいかな
ぱくりっちゃぱくりだけど。
213NAME IS NULL:2006/09/04(月) 18:19:25 ID:???
>>212
気にするな。超人気サイトにならない限り大丈夫。
@211じゃないけど。
214NAME IS NULL:2006/09/04(月) 18:30:15 ID:???
>>212
tablebg.gifは、一応自作なのか??
でも限りなくmixiと似てるなw

せめて全体的な色の組み合わせだけでも変えればパクリ感が減るのに。
215211:2006/09/04(月) 19:06:07 ID:3P7F9hei
photshopで元画像を横に置いて真似て作ったんだけど
良く考えたら色成分も同じだし結局コピーと同じだなorz
配色は一考しまつ。

意味のないカキコでもいいんでカキコが欲しいところ。
[email protected]でもいいので登録テストもしていただけると嬉しいです。
って、、あんまりしつこくこのスレに書いてるとまずいかな。
何かあればあっちに書いていただけると助かりまつ。

昨晩から500アクセスいただきましてありがとうですた!>ここ見て訪問された方々
ではこれにて。
216NAME IS NULL:2006/09/04(月) 19:07:13 ID:3P7F9hei
212ですた。失礼orz

何に於いても
こういう凡ミス多いのよね・・・はぁ
217とっとこ:2006/09/04(月) 19:41:00 ID:v7JqUa19
質問宜しいでしょうか?
mySQLのインストールで困ってます。サービスが上手く起動してくれません。
管理→サービスから起動もエラー1067と出てしまいます。
またmy.iniを削除後、winmysqladmin.exe起動しても現象が改善しません。
(この場合は、エラーログなしで、winmysqladmin画面が一瞬展開後、閉じてしまいます。)

ただ、mySQLをアンインストール&my.iniを削除してから再インストールを行うと、
mysqlサービスは起動しますが、サービスを再起動を行うと上記現象にもどってしまいます。

ご助力お願い致します。
OS:Win2kServer
Mysql:4.0.26
218NAME IS NULL:2006/09/04(月) 20:17:20 ID:???
219とっとこ:2006/09/04(月) 20:41:33 ID:v7JqUa19
レスありがとうございます。
googleと相談はしたのですが、解決にいたらないんです。
220NAME IS NULL:2006/09/04(月) 23:56:07 ID:???
>>215
500アクセスとはすごいな。
このスレにそんなに人がいるとは思えないけどww
221NAME IS NULL:2006/09/05(火) 00:18:58 ID:891iHyK7
>>220
リロードも含まれてるんですけどねw
二重投稿の検証でリロードしまくったのかな。
ユニーク数はもっと少ないです。
しかしあれっすね。
せっかく作っても公開する場所がないんで
自己満足に終わってしまいそうです。
何か使い道はないもんでしょうかね。
222NAME IS NULL:2006/09/05(火) 00:51:24 ID:???
SELECT * FROM table WHERE `primary_key` = 'hoge';
SELECT * FROM table WHERE `primary_key` = 'hoge' LIMIT 1;

primary_key がプライマリキー、あるいはユニークキーだった場合
上と下のクエリでパフォーマンスに差はあるのでしょうか。

検索キーがユニークであれば、"LIMIT 1" を指定せずともヒットした
時点で検索を終了するのかなと気になりました。

20万件程度でのパフォーマンスに差はありませんでしたが、どなたか
上手に説明してくれる方が居ましたらご教授お願い致します。
223NAME IS NULL:2006/09/05(火) 07:05:48 ID:???
泣けるぜ
224NAME IS NULL:2006/09/05(火) 07:32:36 ID:???
>>222
ユニークキーを使った時点でLIMITを無視するように最適化されると思う
EXPLAINの情報を参照してみたら?
225NAME IS NULL:2006/09/05(火) 08:37:14 ID:L7A0cOr7
show tables
226NAME IS NULL:2006/09/05(火) 11:13:10 ID:qJu+mkGP

Table:a
id,name

1,名前A
2,名前B
3,名前C


Table:b
date,id,check

'2006-09-04',1,1
'2006-09-04',3,1
'2006-09-05',1,1
'2006-09-05',2,1


出力:特定日の出席者チェック
ex)2006-09-04
name,check

名前A,1
名前B,null
名前C,1

ex)2006-09-05
name,check

名前A,1
名前B,1
名前C,null


当初、
select * from a left join b on a.id = b.id where date='特定日';
としてましたが、未出席の人も排除されてしまいますので、
select * from a left join b on a.id = b.id where date='特定日' or (isnull(date) = 1);
としたのですが、
いかがなものでしょうか?
もっと、よさげなクエリがありそうですが・・・。
227NAME IS NULL:2006/09/05(火) 11:57:19 ID:PfZbXATk
LOAD DATA INFILE について教えてください.
今、SJISのcsvのファイルを持っています.
テーブル側はUTF8なのですが、SJIS->UTF8変換しながらインポートって出来るんでしょうか.
先にUTF8に変換しておく必要があるのでしょうか.

どなたか教えて...
228NAME IS NULL:2006/09/05(火) 12:21:59 ID:???
head -1 csv したファイルでためすといいよ
229227:2006/09/05(火) 12:47:15 ID:???
試してみたら駄目だったんですが、
オプションの類を設定すればうまくいくのかな、と思ったり.
230NAME IS NULL:2006/09/05(火) 15:45:05 ID:???
トピックごとにレスが出来るフォーラム型の掲示板作ろうとおもうんだが、
トピックごとにレスのテーブル作るようなやり方ってアリ?
トピックが1000あればテーブルが1000個になるけど…

それともレスを全部ひっくるめたテーブルを作って、トピック別のIDをキーにSELECTで抽出するのも考えたんだけど、
毎度毎度検索させてたら負荷が大きそうで…
231NAME IS NULL:2006/09/05(火) 15:50:43 ID:???
>>227
郵便番号データとかのときにやったけど、エディタにごっそり読み込んで変換。
その後LOAD DATA...した気がする。そういうオプションはたぶん無いんじゃないかな。
>>230
泣ける掲示板だな
232NAME IS NULL:2006/09/05(火) 17:09:40 ID:???
>>227
nkf使え。
>>230
オレなら全部ひっくるめたテーブルにする。つうか釣られたけどスレ違い。
233NAME IS NULL:2006/09/05(火) 17:16:52 ID:???
>スレ違い。
すいませんでした。
234212:2006/09/05(火) 18:05:46 ID:891iHyK7

一生懸命書き込みしてるんだけど返信がない・・・
自分がレスするとスレが止まってしまう・・・
冗談書いたのにマジレスで叩かれる・・・

そんなあなたは
チラ裏-communityへ。
http://tiraura.sytes.net/


まじめなサイトじゃつまらないのでこれでオープンしますた。
TD画像やめて、配色変えると、こんなんになりますた。

みなさんの協力でここまでできました。ありがとうございましたあああああああ

235NAME IS NULL:2006/09/05(火) 22:11:16 ID:???
>>234
チラ裏に書いてみたけど反映されない...
「 」じゃなくて「 」にしてくり
236235:2006/09/05(火) 22:12:03 ID:???
>>235
うぇ...
「&nbsp」じゃなくて「&nbsp;」にしてくり
でした。
237212:2006/09/05(火) 22:15:42 ID:891iHyK7
ありゃ。ちょっと見てみますね。
238212:2006/09/05(火) 22:30:19 ID:891iHyK7

ログインしてないと書き込み反映不可になってました。
すみませぬ。修正しました。
239NAME IS NULL:2006/09/05(火) 22:58:49 ID:7EGTNQV2
UPDATE member_table SET update='テスト' WHERE id=1
の構文でエラーが出て気が狂いそうです。助けてください。
updateのデータ型はvarchar(20)です。
ちなみにデータ型intの場合で数値なら同じ構文でUPDATEできます。
240NAME IS NULL:2006/09/05(火) 23:01:42 ID:???
エラーメッセージ書け
241NAME IS NULL:2006/09/05(火) 23:09:02 ID:7EGTNQV2
PHPでクエリーしてるから普通にfalseが返ってくるだけ
242NAME IS NULL:2006/09/05(火) 23:09:19 ID:???
\x5c問題じゃねーの?
243NAME IS NULL:2006/09/05(火) 23:10:34 ID:???
というか、false返って来たらどうすればいいんだ? 調べて出直して来い
244NAME IS NULL:2006/09/05(火) 23:12:20 ID:???
>>239
なんでそんな予約語と同じカラム名つけてるの?
UPDATE member_table SET member_table.update='テスト' WHERE id=1
とかじゃどう?
ていうかテーブルのカラム名別なものにした方が良いと思うけど
245NAME IS NULL:2006/09/05(火) 23:40:14 ID:???
>>239
マルチ
246239:2006/09/05(火) 23:51:30 ID:7EGTNQV2
皆様ありがとうございました。
>>244さまのご回答と同じで解決いたしました。
ご協力ありがとうございました。
247NAME IS NULL:2006/09/06(水) 00:21:56 ID:???
なんか「協力」って言葉に違和感を感じた今日このごろ。
248NAME IS NULL:2006/09/06(水) 04:24:19 ID:???
内部文字コードはUTF8になっているのですが
PHPにてとりだすとコードが「ASCII」になってしまいます。
mb_convert_encodingでコード指定しても改善しません。

これはどんな解決策があるでしょうか?
ご教示お願いいたします。

環境
サーバー XREA
Mysql 5.1.11
phpMyAdmin 2.8.2
249NAME IS NULL:2006/09/06(水) 06:58:59 ID:???
phpのver
250227:2006/09/06(水) 09:14:43 ID:???
>>231-232
thanx.
nkf -wx してから叩き込みました.

時代はskfかと思ったんだけど、
Cent用のrpmが無かったのであきらめた漏れはヘタレだ.
251NAME IS NULL:2006/09/06(水) 23:53:56 ID:???
utf8で保存したcsvを食わせてみたら文字化けしてやがる。
mysqlの文字コードがutf8だったからそのままインポートしていけると
思ったんだが。。。
文字コードでハマる度に日本語なくなれって思う。。。
252NAME IS NULL:2006/09/07(木) 00:20:57 ID:???
primary key(A,B) で定義したテーブルにあらかじめ
いくつかデータを入れた状態で。

例えば
A | B
~~|~~
5 | 1
5 | 2

というデータが入っていたとして
update mail_knr set B = B + 1 where A = 5;
というSQLを流すと Duplicate entry '5-2' for key 1
というエラーが発生します。値が重複するエラーのようですが、
上記のSQLのような全ての値を加算したりすることはできないのでしょうか?

とりあえず分からないのでダミーの数字を加算して、その後(ダミー)-1を減算
してごまかしていますが。
253NAME IS NULL:2006/09/07(木) 11:06:29 ID:???
>>252
primary key が一瞬たりとも重複しないようにチェックしてるんだ。
RDBってえらいなぁ。
なので、order by を使って矛盾が出ないようごまかせ。

update mail_knr set B = B + 1 where A = 5 order by B desc;
254NAME IS NULL:2006/09/07(木) 16:47:34 ID:???
個々の緯度経度を記録した
+------+-----+-----+
| code | lat | lon |
+------+-----+-----+
というテーブルが有り、数千件のデータが有ります。

ここで、特定地点から近隣のデータを取得しようとしています。
※計算式はややこしいので、とりあえず、緯度(lat)に絞って、距離も角度で話します。

SELECT `code` FROM `table`
WHERE `lat` > 'SouthEND'
AND `lat` < 'NorthEND'

とすることで、南北一定間に存在するcodeを取得できるのですが、
場合によって結果が数百件になる場合が有ります。

で、LIMITをかけたいのですが、この時、
「距離の近い順に10件」とするにはどうしたらよいのでしょうか?
ORDER BY と HAVING 辺りではないかという気はしているんですけど…

お知恵をお貸しくださいませ。
255NAME IS NULL:2006/09/07(木) 16:58:39 ID:???
>>254
ORDER BY は式が書けるので、距離の計算式を書けば原理的にはOKなはずだ。

緯度だけでいいなら ORDER BY ABS(lat - CENTER) みたいな。

実際には緯度と経度と三角関数が乱れ飛んだような式になりそうだが。

256NAME IS NULL:2006/09/07(木) 17:03:34 ID:???
>>254
... ORDER BY '距離' limit 10
なんだが、距離ってどう出すんだ?
257254:2006/09/07(木) 17:38:56 ID:???
>>255
ありがとうございました。
ORDER自体に式がかけるとは…勉強になりました。
仰るとおり、実際には、緯度経度合わせ三角関数ガリゴリですが
おかげさまで目的が達せられました。

>>256
元になる特定地点の緯度(経度)が基準で、
実際には「距離」は三角関数で求めます。
258NAME IS NULL:2006/09/07(木) 20:44:20 ID:???
>>251
>文字コードでハマる度に日本語なくなれって思う。。。

「日本語なくなれ」じゃなくて、
「文字コード統一しろ」だろ。
259NAME IS NULL:2006/09/07(木) 21:00:26 ID:???
>>251
show variables like 'character%';
で出てくる全てを理解できていれば迷うことはない。
260NAME IS NULL:2006/09/07(木) 22:06:17 ID:???
>>259
それって何??

ウチの環境で実行してみたら、
character_set latin1
character_sets latin1 big5 cp1251 cp1257 croat czech danish dec8 ...
って結果が返ってきた。

全部EUC-JPで保存しているのに、なぜlatin1・・・??
261NAME IS NULL:2006/09/07(木) 22:35:01 ID:???
>>257
本題とは関係ないけど、日本国内なら、
三角関数無しでもそこそこの精度な気がする。
甘い?
262235:2006/09/08(金) 00:24:17 ID:???
>>260
もしかして 4.0 とか 3.23 使ってる?
263260:2006/09/08(金) 03:42:09 ID:???
>>262
うん、3.23だよ。
どうして分かったん!?
264262:2006/09/08(金) 08:15:01 ID:???
>>263
それは秘密です。
なお、3.23 は UTF8 をサポートしてない。
265254:2006/09/08(金) 08:52:07 ID:???
>>261
球体を考慮しない誤差は許容範囲なのですが、
「半径○キロの同心円内」の為三角関数使ってます。
スレ違い失礼しました。
266NAME IS NULL:2006/09/08(金) 09:10:36 ID:???
>>264
>それは秘密です

↑バカだねコイツwww
つまんない知識をもったいぶる&知ったかぶって悦に入る典型的なアホタイプだなw

>>263
MySQLのリファレンス・マニュアル見てみれ。
http://dev.mysql.com/doc/refman/4.1/ja/show-variables.html
267NAME IS NULL:2006/09/09(土) 13:48:45 ID:???
設定を失敗して元の状態に初期化したいのですが
アンインスコしてもデータが残っていて一番最初の状態になりませんでした。
本当に初心者です。分かる方いませんか?
268NAME IS NULL:2006/09/09(土) 14:26:44 ID:???
案印すとしてもMysql入れたディレクトリが残ってるだろうからそれを消して
再印すとすればOKだと思う。もれも本当に初心者なんでワカランけど・・・
269NAME IS NULL:2006/09/09(土) 15:26:46 ID:???
>>267
本当の初心者だって、自分のOSと入れたMySQL
パッケージの種類(出所)ぐらい示せるだろ。
偽者の初心者か?
270NAME IS NULL:2006/09/09(土) 18:01:18 ID:???
>>267
本当の初心者だったら、マシンもOSさら初期化してしまうのが王道。
271NAME IS NULL:2006/09/09(土) 18:19:21 ID:???
>>270
そうだとするとうちの会社のサポート部隊は全員本当の初心者だ(プゲラ

いや全くその通りなんだよなw
272NAME IS NULL:2006/09/09(土) 18:20:40 ID:???
レプリケーションをやろうとしているんですが、うまくいかず…
スレーブ側で show slave status \G すると

Slave_IO_State: Connecting to master
Master_Host: masterhost.com
Master_User: repl
Master_Port: 3306
:
Slave_IO_Running: No
Slave_SQL_Running: Yes

で、マスターに接続中のままとなってしまう。
はて?と思って、スレーブ側から mysql -h masterhost.com -u repl -pPassword とすると、

ERROR 1045 (28000): Access denied for user 'repl'@'slavehost.com' (using password: YES)

となる。ところが、別のホストから mysql -h masterhost.com -u repl -pPassword を実行すると
ちゃんとマスターサーバに接続できてしまう…
マスター側は特にホストごとのアクセス制限をかけていないのになぜ??????

アドバイスおながいします。
273NAME IS NULL:2006/09/09(土) 18:34:40 ID:???
>>271
だってサポートって、あんまりコンピュータに詳しくない奴がやる仕事なわけでww

俺もいろんな会社のサポートに電話かけるとイライラするよ。
「ではまず、●●を●●してください…」
ってマニュアル通りの決まりきったことをやらせようとする。

もうそんなもんやったの! そんである程度原因切り分けしてから電話してんの!
それなのにこちらの話を無視し、ひたすらマニュアル通りに1からやらせようとする糞サポート。
話してると分かるが、まったく知識が無いヤツがほとんど。
274NAME IS NULL:2006/09/09(土) 19:49:44 ID:???
自力で解決できなくてサポートに電話してるせに半端にしったかぶるやつが一番手に負えないわけだがw
275NAME IS NULL:2006/09/09(土) 23:59:48 ID:???
mysqladmin pingが通らないのですが、、

ちなみにこんなエラーが出ます
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mysqldのインストールまで終わっていて、net start mysqlはできています。
276NAME IS NULL:2006/09/10(日) 00:02:47 ID:qp3J0LKF
ageます
277NAME IS NULL:2006/09/10(日) 00:41:03 ID:???
>>272
http://dev.mysql.com/doc/refman/4.1/ja/replication-howto.html

マスター側でGRANT REPLICATION SLAVE ...でどう?
278NAME IS NULL:2006/09/10(日) 00:49:54 ID:???
>>275
my.cnf、my.iniでmysqladminのデフォルトユーザ、パスワードに
管理権限のあるMySQLユーザを設定するか
mysqladminに-u、-pで管理権限のあるMySQLユーザを指定する。
279NAME IS NULL:2006/09/10(日) 02:17:16 ID:???
>>277
GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'Password';
をマスターで実行してみましたがダメでした。
mysqld を再起動してもダメです…
280NAME IS NULL:2006/09/10(日) 07:48:07 ID:???
>>274
お前が一番バカ。

ソースが公開されてないソフトについては、
症状の再現性確認と原因の切り分けまでがユーザーの出来る限界。
281NAME IS NULL:2006/09/10(日) 15:50:39 ID:???
>279
それだと「repl」というユーザーに権限が設定されるだけだと思うけど??

WinxpでMysql5.0.20を入れてmysqladmin pingするとこんな感じだった.
インストール時にrootのパスワード設定墨.
>C:\MySQL Server 5.0\bin>mysqladmin ping -u root -p
>Enter password: ********
>mysqld is alive

環境晒せっていわれるだろうからOSとmysqlのバージョンは書いたほうがいいと思うyo.
282NAME IS NULL:2006/09/11(月) 11:01:37 ID:???
>>279
レプリケーション実行の前に、スレーブのコンソールから
mysql -hマスタのIP -uユーザID -pパスワード
でマスタに接続できるか確かめれば。
283NAME IS NULL:2006/09/11(月) 19:29:54 ID:???
ホスト側のユーザにホスト定義されていない予感
284NAME IS NULL:2006/09/12(火) 00:21:46 ID:???
mysqlクライアントにて、
100万件のデータをインデックスなしで登録した後、
100万件目のデータをwhere句で指定し、selectしたところ約20秒かかりました。
もう1回同じ条件でselectしたら、0.5秒でした。

2回目のselectで大幅に検索結果が早くなったのは、何故なのでしょうか?
個人的な推測ですが、FreeBSDが読み込んだデータをメモリ上で保持していて、
それをmysqlが読み込んだから早くなったのかなぁと思うのですが。。
初歩的な質問で申し訳ありませんが、答えに結び付くようなキーワードだけでも
教えていただけるとありがたいのですが。。
285NAME IS NULL:2006/09/12(火) 01:25:59 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
286NAME IS NULL:2006/09/12(火) 02:55:30 ID:0MAA6Lji
>100万件目のデータをwhere句で指定し

RDBが解って無いw
287NAME IS NULL:2006/09/12(火) 07:18:57 ID:???
>>284
ヒント : クエリキャッシュ
288NAME IS NULL:2006/09/12(火) 07:43:38 ID:???
>>284
ご想像の通り
289NAME IS NULL:2006/09/12(火) 11:31:19 ID:Kd3shGSc
timestamp型のカラムにインデックスを使いたいのですが、出来ないで居ます。
alter table tblname add index colname(colname);
でインデックスを作成しました。
explain select colname from tblname where colname<now();
だと使われるのに、
explain select * from tblname where colname<now();
だと使われません。
use keyを使っても同じ結果です。

どうやればいいのでしょう?教えてください。
290NAME IS NULL:2006/09/12(火) 19:30:27 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
291279:2006/09/12(火) 22:00:17 ID:???
レス遅れてすんません。

>>281
環境はマスター、スレーブとも FreeBSD 6.1R+mysql-5.0.22 でつ。

>>282
>>272に書いたとおりでつ。
なぜか他の user ID だとマスターに接続できるのが不思議…

>>283
GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'Password';
をマスター側でやってます。特にホスト単位で接続制限は設けてないです。

my.cnf もほとんど公式ドキュメント通り、server-id もバッティングしてないし…
あああ…
292NAME IS NULL:2006/09/12(火) 23:02:00 ID:???
>>284
2回目を実行する前に
syncコマンドを実行すれば、
メモリの内容がdiskに書き込まれるので、検索秒数は1回目と同じになると思います。
293NAME IS NULL:2006/09/13(水) 00:12:38 ID:???
>>292
!!!
294NAME IS NULL:2006/09/13(水) 03:10:18 ID:K8x5ish6
ここでいいか分かりませんが質問お願いします。
Linux上のMySQLで、誤ってrootパスワードを削除してしまいました。
その場合はどのようにすればよろしいでしょうか?
295NAME IS NULL:2006/09/13(水) 03:17:46 ID:???
もう一回設定すりゃ良いじゃない
296NAME IS NULL:2006/09/13(水) 03:45:12 ID:K8x5ish6
再インストールということでしょうか?
297NAME IS NULL:2006/09/13(水) 03:46:46 ID:K8x5ish6
設定を初期化するコマンドがあるのでしょうか?
298NAME IS NULL:2006/09/13(水) 03:53:32 ID:K8x5ish6
3.23だと、vmysqlsetupというコマンドで再設定ができるのでしょうか?
当方の環境は4.1になりますが、4.1だとどのようなコマンドを使えばいいのでしょうか?
299NAME IS NULL:2006/09/13(水) 04:04:56 ID:???
そういう致命的なミスをやらかすようなら、またミスするだろうな。
もっと慎重に行動する癖つけた方がいいよ。
弄る前にバックアップぐらい取っとく癖つけたら?

データベースなんてディスク上のデータをごりごり読んでたら遅いからメモリ上にデータ置いといて、いかに高速に検索できるようにするかがチューニングの肝。
100万件のデータがメモリ上に展開できるだけのメモリを積んどくべきだよ。

自力で解決できるスキルも無いくせに、サポートに頼ってる時点でだめだよな。
ソースが公開されてないソフトだろうが、変わらんよ。十分に危機管理できてない証。
サポートに訊いてる時点で負け。
ユーザでもサポートでもソースが見れる訳じゃないし。サポートにできるのはマヌアル対応か、開発部隊にエスカレーションぐらいしかできないし。

EUCなんて使ってたら苦労するだろうなあ。UTFに統一すれば楽なのに。
300NAME IS NULL:2006/09/13(水) 04:14:22 ID:K8x5ish6
>>299
返す言葉もありません。

こちらのページに、rootを忘れてしまった場合の解決方法がありました。
http://smdn.invisiblefulmoon.net/index.php?cmd=read&page=Linux%2FFedora%20Core%2FMySQL

上を参考に考えているのですが、updateのところをどう変更すればよいでしょうか?

# mysqldを停止する
/sbin/service mysqld stop

# --skip-grant-tablesを付与してmysqldを起動する
/usr/libexec/mysqld --user=root --skip-grant-tables &

# mysqlを起動
mysql mysql

# mysql.userテーブルを編集してパスワードを削除する  ←ここが分かりません
select user,host,password from mysql.user;
update user set Password=null where Host='localhost' and User='root';
exit

# mysqldを停止する
killall mysqld
301NAME IS NULL:2006/09/13(水) 04:54:26 ID:???
>>299
UTF8って3バイトになるんじゃなかったか?

レコード長伸びる→mysqlclusterのレコード長制限にひっかかる
レコード長伸びる→ディスク入出力の量が増える
レコード長伸びる→保存に必要なディスク容量が増える


漏れもUTFに夢を見ていた頃があったけどな。
302NAME IS NULL:2006/09/13(水) 04:54:59 ID:l55FDLm5
こんな時間に起きてる方が居らっしゃれば良いのですが、質問させて頂きます。

A 2006-01-01
A 2006-02-02

な重複を削除して

A 2006-02-02

にしたいのですが、どうやってSQLを書けば良いのでしょうか?
何卒お力をお貸し下さい。お願い致します。
303NAME IS NULL:2006/09/13(水) 10:10:18 ID:???
>>302
その情報だけで何をどうやって回答しろというのだ。
304NAME IS NULL:2006/09/13(水) 15:05:05 ID:???
>>302
>どうやってSQLを書けば良いのでしょうか?

キーボードで
305NAME IS NULL:2006/09/13(水) 15:15:08 ID:K8x5ish6
MySQL4.1のmy.cnfのデフォルト値(インストール直後の状態)を知りたいのですが、
誰かコピペしてくれませんか?
306NAME IS NULL:2006/09/13(水) 15:19:59 ID:???
親切な俺が>>302を勝手に翻訳してやった

テーブル名はt1

c1 c2
--- -------------------
A 2006-01-01
A 2006-02-02
B 2006-03-01
B 2006-03-01
C 2006-02-02
C 2006-04-01
C 2006-05-02

を、最新の日付のみ残してあとは削除

c1 c2
--- -------------------
A 2006-02-02
B 2006-03-01
C 2006-05-02

SQL一発でたのむぞい(サブクエリは可)
307NAME IS NULL:2006/09/13(水) 15:41:52 ID:+dm6ZN3q
>>302 こいう質問のしかたする奴ってマジむかつくなw
308NAME IS NULL:2006/09/13(水) 16:19:17 ID:???
ついでに答えてやろうかと思ったけど検証環境がないのでやめたw
309NAME IS NULL:2006/09/13(水) 17:11:40 ID:???
>>305
自分でインストールすればわかるだろ
310NAME IS NULL:2006/09/13(水) 17:26:40 ID:???
>>294ですが、、/var/lib/mysqlを削除して、mysqlを再起動するだけでした。

>>299

プ こんな簡単な回答もできないのに、偉そうに知ったかぶりして・・・恥ずかしい奴(ゲラ
311NAME IS NULL:2006/09/13(水) 18:23:21 ID:???
>>310
>こんな簡単な回答もできないのに
299ではないが・・・むかついた。質問してきたお前が言うな。
312NAME IS NULL:2006/09/13(水) 18:51:42 ID:???
いや、でも、回答を出せないのにいきがってる>>299も問題だ。
俺は純粋に>>310をなるほど〜と関心した。
313NAME IS NULL:2006/09/13(水) 18:58:51 ID:???
>>300の反応から310へ豹変っぷりワロス
314NAME IS NULL:2006/09/13(水) 19:05:11 ID:???
update でwhere以下の条件に合致せず、updateできなかった場合
insertにしたいのだが、どのように判定すればいいんでしょう。


$result = mysql_query("update table1 set col1 = '1' where key1 = 'ABC'");

if ($result == false)
{
$result2 = mysql_query("insert into table1 (col1) values ('ABC');
}

これできる?
315NAME IS NULL:2006/09/13(水) 19:13:05 ID:???
先にselect count(*)使ってupdateとinsert振り分ければ?
316NAME IS NULL:2006/09/13(水) 19:15:23 ID:???
>>314
PHP?
mysql_affected_rowsがゼロを返したらinsert、でどうですか?
317NAME IS NULL:2006/09/13(水) 19:20:45 ID:???
>>314
どうしてもクリティカルで重複ヤバいって状況で
なおかつトランザクションも使えない状況なら
key1をuniqueにしてある前提で以下の方法が使える

最初にinsert
うまくいけばそれで終わり
既にキーがあればここでdup keyエラーになるのでupdate処理
318NAME IS NULL:2006/09/13(水) 19:34:13 ID:???
>自力で解決できるスキルも無いくせに、サポートに頼ってる時点でだめだよな。

自力で解決できるスキルも無いからサポートに頼るのではないか?
と、思ったのは俺だけではないと確信。
319NAME IS NULL:2006/09/13(水) 19:46:34 ID:???
迷えるスキルなしは、この偉人に頼れ。

      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」

  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )

最近、このスレでの出番が減って、寂しがっているぞ。
320314:2006/09/13(水) 19:55:16 ID:???
レスありがと。

mysql_affected_rowsでいけそう。

参考になりますた。
321NAME IS NULL:2006/09/13(水) 20:26:07 ID:???
>>320
使いどころが難しいけどREPLACE 使えば?
322NAME IS NULL:2006/09/13(水) 23:13:25 ID:???
>>301
んじゃUCS2を使えば?
323NAME IS NULL:2006/09/13(水) 23:57:48 ID:???
マニュアル読めよ・・・・・・
insert 〜 on duplicate key update でググレ

使い方によっては複数行updateもできるスグレモノ
頭悪いとわけわからんクエリ走らせてバックアップから巻き戻す事になりそうだけどな。


replaceはdelete権限必要なのと、省略したカラムは「カラムのデフォルト値」になってしまう点に注意
324NAME IS NULL:2006/09/14(木) 00:11:57 ID:???
>>323
おーすごく役に立った
thanks
325NAME IS NULL:2006/09/14(木) 01:33:38 ID:???
>>314
まずwhere key1 = 'ABC'に該当するレコードをSELECTしてみて、
その結果セットがTRUEならUPDATEクエリ、FALSEならINSERTクエリにすればよい。
326NAME IS NULL:2006/09/14(木) 05:32:53 ID:???
>>325
マルチユーザ環境だと、SELECTした後、INSERT/UPDATEするまでの間に
他のユーザがテーブルを書き換えることがあるから、>>323>>317がよいね。
327NAME IS NULL:2006/09/14(木) 07:09:57 ID:???
無料ソフトだけあってDQNが多いスレですね。
328314:2006/09/14(木) 10:12:14 ID:???
またまたレスありがと。

insert ... on duplicate key update...

はMySQLのバージョンの問題で使用できず。

勉強になります
329NAME IS NULL:2006/09/14(木) 17:21:14 ID:FqIzS8bo
textカラムに収納された文章の先頭部分を、
LEFT関数を使って取り出しています。

でも、textカラムに半角と全角の文字が混じっていると、
場合によってはLEFT関数で取り出した結果の最後の一文字が化けてしまいます。

これを解決するにはどうしたら良いでしょうか?
(PHPで言うところのマルチバイト関数があれば便利なのですが・・・)
330NAME IS NULL:2006/09/14(木) 18:36:36 ID:???
>>329
mysqlに設定している文字コードと入れてる文字コード合ってないんじゃない?

show variables like 'character%'; で確認してみ。
331NAME IS NULL:2006/09/14(木) 18:45:45 ID:FqIzS8bo
>>330
今までMySQLとPHPの間での入出力で文字化けしたことは一度も無いので、
文字コードは問題ないと思います。

LEFT関数の引数は、おそらく、「文字数」じゃなくて「バイト数」として指定してるんでしょうから、
当然>>329で書いたような現象が起こるであろうことは想像通りなのですが、
その対処方法が分からなくて質問させていただきました・・・
332NAME IS NULL:2006/09/14(木) 19:04:35 ID:???
>>331
をぃをぃ文字数だよ。混在しててもちゃんと出るよ。
333330:2006/09/14(木) 20:00:34 ID:???
>>331
「文字化けしたことは一度も無い」などの安っぽい固定概念に惑わされるな。
現にトラブってる訳なんだから。
文字コードの設定が正しければ文字操作で漢字の泣き別れは起こらない。

見てみろって。
334NAME IS NULL:2006/09/14(木) 20:33:10 ID:???
つーかそれ以前にバージョンぐらい書けよな
335NAME IS NULL:2006/09/14(木) 20:51:22 ID:FqIzS8bo
>>332 あれっ、文字数なんですか!?

>>333
すみませんでした。show variables like 'character%'; の結果は、
character_setがlatin1で、character_setsにはたくさん書いてあります。

で、PHPスクリプトのほうは全部EUC-JPで統一しておりまして、
今まで文字化けが無かったのでMySQLのほうもEUC-JP…だと思っていたのですが、
なぜcharacter_setがlatin1と表示されたのか分かりません。。。

>>334 忘れておりました。バージョンは3.23.58です。
336NAME IS NULL:2006/09/14(木) 21:29:23 ID:???
多めに切り出してあとはPHP側で加工すればいいんじゃないの?
337NAME IS NULL:2006/09/14(木) 21:32:54 ID:FqIzS8bo
Pleskを使用しているので、「もしや」と思い、いろいろ検索したところ
以下のページが見つかりました。
ttp://www.biz.documents.generationact.com/faq/?id=6180

ここを参考にmy.cnfを覗いたところ、予想通り「default-character-set=ujis」が
ありませんでした。それを追加してみたところ、LEFT関数も正しく動作するようになりました。

おかげさまで助かりました。みなさんありがとうございます。
ところで、なぜ今までdefault-character-setを設定していなかったにも関わらず
日本語が全く文字化けしていなかったのかが不思議です・・・。

>>336
最終手段としてはそれも考えておりました。でも解決してよかったです。
338330:2006/09/14(木) 22:21:05 ID:???
>>337
mysqlは設定と合っていなくてもある程度頑張ってくれる。
が、運が良かっただけ。カラムの文字数が設定文字数と合わなくなるし、
今回の left,substringなどの挙動がおかしくなる。
like 検索すると漢字の泣き別れでヒットしてしまうことがあるし、漢字2バイト
目の 5C 問題が勃発することもある。
339NAME IS NULL:2006/09/14(木) 23:29:43 ID:???
EUCのコードの中に5Cを含む文字は無い
340NAME IS NULL:2006/09/14(木) 23:42:09 ID:FqIzS8bo
>>338
そうなんですか! ありがとうございます。勉強になります。

「カラムの文字数が設定文字数と合わなくなる」というのは、
たとえばchar(10)と設定したカラムに、10文字「以外」の文字数が入り得る
可能性がある・・・という意味なのでしょうか??
341NAME IS NULL:2006/09/15(金) 10:10:58 ID:???
なんか泣けてきた
342NAME IS NULL:2006/09/15(金) 11:32:23 ID:???
>>341
泣かずに教えてやれ。
誰もが最初は初心者だったはずだ。
343NAME IS NULL:2006/09/15(金) 11:45:34 ID:???
思い込みが強い香具師の巣窟ですね。
被害妄想も強いのだろうな。典型的なDQN。
344NAME IS NULL:2006/09/15(金) 11:58:21 ID:???
>>343
そうそう、お前みたいなDQNが多いんだよ。
345NAME IS NULL:2006/09/15(金) 11:59:02 ID:???
つくづく最近は文字コードなど気にしない人多いんだなぁと感じるよ
UTF-8で固めるのが主流になってきたからこれからますます誰も気にしなくなりそう
346NAME IS NULL:2006/09/15(金) 12:00:30 ID:???
この前から"DQN"を連発している香具師は2ちゃん初心者ですかw
347NAME IS NULL:2006/09/15(金) 12:07:33 ID:???
>>345
そもそも文字コードを気にしなきゃならない世界がおかしいのだ。
348NAME IS NULL:2006/09/15(金) 12:42:16 ID:dfQ+XThS
もうUTF-8で何も気にせずしやわせになればいいじゃん
349NAME IS NULL:2006/09/15(金) 14:28:12 ID:BVmffk+p
C++からMySQLを使っているのですが、どうも文字コードが合っていないようで、
日本語の値をinsertすると
Data too long for column 'xxx' at row 1
このようなエラーメッセージが返ってきます。
フィールド名には日本語を使えるのですが、値に日本語が入っているとinsertできません。
MySQLのコマンドラインでstatusを実行すると4つ表示されるcharsetはすべてsjisになっています。
C++のコードのコンパイル時の文字セットはマルチバイトセットですが、これが問題なのでしょうか。
350NAME IS NULL:2006/09/15(金) 15:53:25 ID:???
>>345
>>337みたいなパターンの場合、それまで文字コードの問題が発生しなかったんだから
気にしなくて当然だろう。

>>348
俺はEUC-JPで統一して超幸せにやってるぜ。
351NAME IS NULL:2006/09/15(金) 16:11:58 ID:???
mysqlがutfで格納してるのにeucjで幸せになれる訳無いじゃん。
今やウィンドウズもsjisじゃなくてutf標準だよ。
352NAME IS NULL:2006/09/15(金) 16:15:09 ID:???
>>349
続くな。文字コードが合ってないと思う。SJISで入れてみ。
353NAME IS NULL:2006/09/15(金) 17:06:15 ID:???
>>352
すみません、「SJISで入れる」とはどのようなことでしょう。
コードでは
mysql_query(pSQL,"insert ....");
このようにやっています。この場合どういう文字コードのテキストがサーバに送られるのでしょう。

下はstatusの結果の一部です
Using delimiter: ;
Server version: 5.0.24a-community-nt
Protocol version: 10
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis

上の方で出ていたshow variables like 'character%';をやるとこんな風になりました

| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
354NAME IS NULL:2006/09/15(金) 17:16:06 ID:???
他のDBMSではchar(10)は10バイトnchar(10)は10文字という実装が多いのだが、
4.xくらいまでのmySQLは違ってたような気がするが最近はどうなのだろう。
355NAME IS NULL:2006/09/15(金) 17:26:21 ID:???
>>351
>mysqlがutfで格納してるのに

何言ってんの??
356NAME IS NULL:2006/09/15(金) 17:57:25 ID:???
>>353
C++でmysqlしたこと無いけど、mysql_real_connect() で SJISを指定するとか・かな。
自身なし。
357NAME IS NULL:2006/09/15(金) 20:00:00 ID:???
>>351は池沼
358NAME IS NULL:2006/09/15(金) 22:37:24 ID:???
普通は、自分がどういう文字コード体系使っているか知っている筈 と思うのは既に年寄りなんかね

トラブル起こしておいて、無知故に解決できない というなら、無知自体が罪の気がするんだが。
359sage:2006/09/16(土) 01:14:09 ID:WUqZozMa
>>358
技術で金もらっている以上、テリトリエリアでの無知は罪だ。
360NAME IS NULL:2006/09/16(土) 04:11:43 ID:???
>>351 こいつヤバイなw
361NAME IS NULL:2006/09/16(土) 05:26:56 ID:0TB/wo/2
countを使うと極端に遅くなるクエリがあるのですが、
正確な件数カウントいらないので、だいたいの件数を見積もってくれる機能って
ないでしょうか?
標準のSQLではなくてもかまいません。
362NAME IS NULL:2006/09/16(土) 06:10:25 ID:???
>>361
だいたいの方が難しいと思うw
363NAME IS NULL:2006/09/16(土) 07:39:26 ID:???
>>361
> countを使うと極端に遅くなるクエリ

ってどんなやつ?
もしかしてcount使わなくても遅いんじゃないの?
たとえば以下の二つでどれほど速度差が出るのかな
select count(c1) from t1 where ....
select c1 from t1 where ....
あまり差がないとすれば見直すべきはwhereで指定した条件だろうね
EXPLAINで分析して必要なインデクスをつけたり
条件文そのもののチューニングをしてみたりした方が良くない?
364NAME IS NULL:2006/09/16(土) 11:50:29 ID:???
具体的なクエリ曝さないと何とも。
単にテーブル設計が悪かったり、正規化できてないだけかもしれなくてmysqlとはもはや何の関係も無い罠。
モラクルRAC使っても遅いんじゃね?

おまいらデータベースファイルを直接開いたりして、どういう風に格納されてるか具来検証せずに使ってるの?
365NAME IS NULL:2006/09/16(土) 14:31:11 ID:???
>>302
ユニークキーがないとなかなか難しいな
SQL2発でこんなの考えてみた

create table t1_tmp (select distinct * from t1, (select c1, max(c2) as dt from t1 group by c1) t where t1.c1 = t.c1 and t1.c2 = t.dt);
rename table t1 to ti_backup, t1_tmp to t1;
366NAME IS NULL:2006/09/16(土) 21:01:44 ID:???
A|B|C の3つのTEXTフィールドがあります。

全てのレコードで、
AとBの内容を一つの空行で連結してCに代入したいのですが、
SQLだけで可能でしょうか?

PHPなどで全てをループしながら実行する方がいいのでしょうか?
367366:2006/09/16(土) 21:10:23 ID:???
>>
368366:2006/09/16(土) 21:12:32 ID:???
ちなみに、
UPDATE `table` SET `C` = CONCAT(`A`,`B`)
で単純な結合と代入は出来ました。
「一つの空行をはさむ」事が判りません。
369NAME IS NULL:2006/09/16(土) 21:15:51 ID:???
concat(a,"\n\n",b)
370366:2006/09/16(土) 22:05:56 ID:???
>>369
ありがとうございました。
371NAME IS NULL:2006/09/16(土) 22:43:01 ID:???
インストールの問題は、この板で良かったでしょうか?

MySQL4.1.20 をインストールしたところ
次のエラーが発生してしまいました。

同じ現象が出て、解決された方、いてはりますか?

MySQL5.0は問題なく使えてました。
一度、削除して、MySQL4を入れようとしてます。

環境は、WinXP上のVirtualPCで、FedoraCore5をセットアップして使ってます。
[root@localhost rpm]# uname -a
Linux localhost.localdomain 2.6.15-1.2054_FC5 #1 Tue Mar 14 15:48:33 EST 2006 i686 i686 i386 GNU/Linux

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

[root@localhost rpm]# rpm -ivh MySQL-server-4.1.21-0.i386.rpm
準備中... ########################################### [100%]
1:MySQL-server ########################################### [100%]
060913 10:24:13 [Warning] Asked for 196608 thread stack, but got 126976
060913 10:24:13 [Warning] Asked for 196608 thread stack, but got 126976

... 中略 ...

Starting MySQL...................................[FAILED]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

372NAME IS NULL:2006/09/17(日) 00:37:45 ID:???
>>371
glibcかな
static-linkのをダウンロードしてくりゃいいんじゃね?
373NAME IS NULL:2006/09/17(日) 16:35:17 ID:???
どこから拾ってきたMySQL-server-4.1.21-0.i386.rpmで、FC5に対応しているrpmなの?
非対応しか無いなら、ソースからコンパイルするなり、srpmから作らないとだめでは?
mysql4を使う理由って何?
mysql5でも問題無いかもよと言うか、他のfc5ユーザはmysql5使ってるのではないかと。


ちなみにSQLスレあるよ。
【帰ってきた】SQL質疑応答スレ 2問目
http://pc8.2ch.net/test/read.cgi/db/1141622643/l50
374NAME IS NULL:2006/09/17(日) 20:43:09 ID:UoL46FQP
ユーザーからアップロードされた画像について、それを閲覧できる人を個別に制限したいと思っています。
(たとえば、ユーザーAがアップした画像はユーザーDとユーザーMだけが見れる…とか。
 なおかつ、その公開範囲については、画像をアップしたユーザが自由に変更できる)

そのためには普通にファイルシステムに画像を置いちゃったら誰でも閲覧できてしまうので、
MySQLに入れて管理しようと思っています。
ですが、画像ファイルって巨大なバイナリですから、DBなんかに入れちゃったら
ものすごく動作が重くなりそうな気がするんですが、こういう使い方をしても良いものなのでしょうか…?
375NAME IS NULL:2006/09/17(日) 21:01:02 ID:???
>>374
画像をDocumentRootの外に置けば?
376NAME IS NULL:2006/09/17(日) 21:41:39 ID:???
>>375
たしかにそれなら「誰でも閲覧可能」な状態は防げますが、
その場合、逆に「特定の誰かにだけ閲覧させる」にはどうしたら良いでしょうか?

私が考えつくのは、ユーザー毎にディレクトリを分けるとか??
でもそれだと、ユーザー数が数万とか数十万とかになった場合、
膨大な数のディレクトリが出来て大変なことになりそうな気が。。。
377NAME IS NULL:2006/09/17(日) 21:49:03 ID:???
>>376
apacheのdeny/allowを動的に変化させることでやってる>俺
378NAME IS NULL:2006/09/17(日) 21:49:50 ID:???
>>376
BASIC認証でまずユーザ認証をさせて
認証をパスしたユーザだけが画像を閲覧できるようにするとかは?
これならたいした実装もいらないしさ
379NAME IS NULL:2006/09/17(日) 23:20:12 ID:???
ttp://gendai.net/
Warning: mysql_connect(): Host 'gendai.net' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' in /home/httpd/html/include/mysql.inc on line 37

これはどういう意味ですか?
380NAME IS NULL:2006/09/17(日) 23:26:25 ID:???
>>379
MySQLの最大接続数を超えてるんだな
mysql_close()が適切に処理されていないんだと思う
最大接続数のデフォルト値は確か100のはずだ
381NAME IS NULL:2006/09/17(日) 23:48:08 ID:???
教えて頂きたいのですが、
環境:Windows XP + MySQL 5.0.24

foobar.bat ファイルの中で、
mysql ・・・ < .\batch.sql
と記載して、MySQLのバッチファイルを呼び出し、

batch.sqlでは、
load data infile "hogehoge.txt" into table hoge.fuge LINES TERMINATED BY '\r\n';
として、hogehoge.txtをテーブルへインポートします。
foobar.batに戻ったら、hogehoeg.txtをdelで消去したいのです。

この際、
load data infileを実行処理中に、foobar.batに戻ってしまいファイルをdelする処理に入ることはあるのでしょうか?
それとも、load data infile の処理が終わってからのみ、foobar.bat に戻るのでしょうか?

http://mysql.speedbone.de/doc/refman/4.1/ja/batch-mode.html
は読みましたが、書かれていませんでした。
382NAME IS NULL:2006/09/18(月) 00:01:37 ID:???
>それとも、load data infile の処理が終わってからのみ、foobar.bat に戻るのでしょうか?

その通り。

なぜドイツのミラーサイトを見ているのかわからんが、
Windowsのバッチファイルについてもうちょっと勉強しよう。



383NAME IS NULL:2006/09/18(月) 00:26:26 ID:???
>>376
あくまでも方法例の一つとして。
ファイル名はデータベース化してユーザーのアカウントと紐付けて管理する。
認証でユーザーのアカウント(閲覧権限・閲覧可能画像)は取れるわけだから、
あとは、簡易的なGateWayCGI(単なるStream)などで、目的画像を出力すれば良い。
384379:2006/09/18(月) 01:38:03 ID:???
>>380
ありがとうございました。
ニュースのサイトで100って少ないように思いましたが、そんなものなんですね。
385NAME IS NULL:2006/09/18(月) 03:42:59 ID:???
同時接続数問題=接続数が一定を超えると他のホストからの接続もできなくなる
接続エラー数問題=特定ホストからの接続エラーが一定数になるとそのホストからだけ接続できなくなる

症状としては別
386NAME IS NULL:2006/09/18(月) 06:39:45 ID:VKtBGZ9P
>>377 ユーザ数が数万以上の場合に動的にすると、すごく動作が重くなりそうですが、大丈夫ですか??

>>378 ユーザ認証は自前で既に実装しておりまして、それと関連付けたいと思っています。

>>383 最初の2行につきましては既にそうしている(ただし現在のディレクトリはDocumentRoot内)のですが、
   GateWayCGI(単なるStream)とはどういうものなのでしょうか?? なんとなく意味は分かりますが、実装方法が思いつきません。
   ちなみに言語はPHPで組んでいます。
387381:2006/09/18(月) 08:05:11 ID:???
>>382
助かりました。ありがとうございました。
388NAME IS NULL:2006/09/18(月) 11:52:17 ID:???
>>386
要はHTMLには例えばこういうURLで埋めておき
http://xxx.jp/cgi-bin/getimage.cgi?image_id=hoge
この要求が来たらCGIがdocroot以外の場所からファイルを読んで
コンテンツタイプやサイズを適切に設定して流すだけ
PHPでどうやるかは知らんけど
389NAME IS NULL:2006/09/18(月) 12:12:04 ID:???
>>386
スクリプトを解して画像データを出してやるのも、
httpdにまかせるのも、数万のオーダだと100そこらまでの
やり方とは考え方も、構成も別の考えをしないと駄目だよ。

deny/allowリストに、普段から数万のユーザを列挙する訳ではなくて
一度アクセス認証をさせて(自分の場合はDB使ってる)、
その端末(IPアドレス)に対してdeny/allowを行う。
別ユーザで同一IPアドレスについては、自分のところの要件として
そこまでは不要なため判断していない。
390NAME IS NULL:2006/09/18(月) 12:18:13 ID:???
スクリプトを介して動的に(?)画像データを取り出すのと、
Apacheにまかせて静的な画像データを送り出すだけと、
負荷や速度としてはどれくらい違うんだろうね?

もちろんスクリプトの起動分のオーバーヘッドがかかるのは当然として、
実際にスクリプトの中で画像を取り出す部分(PHPならfile_get_contentsとか?)の
実行負荷がどの程度なのかを知りたいな。
391NAME IS NULL:2006/09/18(月) 12:53:36 ID:???
暇だったので比較
PemM1.7G Mem512M WinXPSP2 Apache2.0.55 php5.1.1(アップしてない・・・)

C:\Program Files\Apache Group\Apache2\bin>ab -n 2000 -k http://localhost/file.php
Document Path: /file.php
Document Length: 51368 bytes
Requests per second: 310.11 [#/sec] (mean)
Time per request: 3.225 [ms] (mean)
Time per request: 3.225 [ms] (mean, across all concurrent requests)
Transfer rate: 15647.50 [Kbytes/sec] received
CPU負荷は60〜70%ぐらい

C:\Program Files\Apache Group\Apache2\bin>ab -n 2000 -k http://localhost/img.jpg
Document Path: /img.jpg
Document Length: 51367 bytes

Requests per second: 983.81 [#/sec] (mean)
Time per request: 1.016 [ms] (mean)
Time per request: 1.016 [ms] (mean, across all concurrent requests)
Transfer rate: 49657.56 [Kbytes/sec] received
CPU負荷100%

PHPソース
<?php
define (BASE,"./");
$s_filename = "img.jpg";
$s_content_length = filesize(BASE.$s_filename);
Header("Content-disposition: attachment; filename= $s_filename");
header("Content-Length: ".$s_content_length);
header("Content-Type: "."image/jpeg");
readfile(BASE.$s_filename);
?>

3倍ほどの差ですか.もれはuser数が少ないのでphp介して認証チェック→ファイル出力している.
なんか板違い名気がしてきたが・・・
392NAME IS NULL:2006/09/18(月) 13:00:01 ID:???
↑CPU負荷が逆でした.
393NAME IS NULL:2006/09/18(月) 13:24:15 ID:???
>>391
参考になったよ
394NAME IS NULL:2006/09/18(月) 13:41:32 ID:???
>>391
あんたスゴイよ。
すごく参考になった。ありがとう。

ところでContent-Lengthの算出とか、ヘッダー送信とかいろいろめんどくさいんだね。
これを簡略化するライブラリとか無いのかな?
395NAME IS NULL:2006/09/18(月) 14:42:13 ID:???
>>386
>GateWayCGI(単なるStream)とはどういうものなのでしょうか?? なんとなく意味は分かりますが、実装方法が思いつきません。

Ajaxにして、バックグラウンドで要求された分だけをストリーム。描画はJavaScriptで。(←難易度高し)
単にPHPで送り出すだけだと、接続時間の関係ですぐ切れちゃうんじゃないの?
396NAME IS NULL:2006/09/18(月) 15:12:44 ID:???
....何がすぐ切れちゃうんだろう??........肛門かな???
397NAME IS NULL:2006/09/18(月) 18:54:50 ID:???
大きいパケットの出し入れは十分慣らさないと裂けるよ。

そもそもHTTPはコネクションレスだから、SOAPとかのウェブサービス使わないと無理でしょ。

phpのライブラリ側を弄ってCで書き直すと実行速度が上がる悪寒。
php側では
<?php
send_file("img.jpg");
?>
だけとか。

DBの規模によるなあ。大規模DB鯖用意できるならDBに画像ファイル突っ込むというのもあり。
どうせファイルシステムに置いてアクセスするのもディスク読み出しで負荷かかるだろうし。
DBでやるなら画像用のDBは鯖分けたほうが、他のDBとの負荷の影響は小さくできてよい。
398NAME IS NULL:2006/09/18(月) 20:17:28 ID:???
せっかく(?)なのでファイルサイズを変えて再トライ.

FlieSize Apache Apache+PHP 倍率
51368 983.81 310.11 3.1
357498 211.17 64.3 3.2
604878 135.21 24.2 5.5
(byte) (req/sec)

ファイルサイズが大きくなるにつれて差が開いてくるな・・・
399NAME IS NULL:2006/09/19(火) 04:56:04 ID:???
参った。
Apache/2.2.2 (Fedora)
PHP Version 5.1.4
MySsql 5.0.22
という環境なんだけど、timestampが2006-09-19 03:42:42みたいなフォーマットで帰って来るのをmysql4.0Xのときと同じように14桁の数字にする方法はないでしょうか?
400NAME IS NULL:2006/09/19(火) 07:55:31 ID:???
>>399
select timestamp+0;
401NAME IS NULL:2006/09/19(火) 20:16:58 ID:???
>>400
サンクス。これでなんとかなりそうだ
402NAME IS NULL:2006/09/19(火) 20:41:22 ID:???
マニュアルを読むことはとことん拒否ですか、そうですか。
403NAME IS NULL:2006/09/20(水) 00:08:59 ID:???
アクセスならマニュアル無しでも使えるからな。
404NAME IS NULL:2006/09/20(水) 01:39:03 ID:???
合計20のレコードがあるとします。
そこから10レコードの合計を求めて表示させたいのですが、詰まっています。

$sql = "select sum(cnt) as cnt from count where cnt limit 10 ";

としたら全レコードを計算した合計値が表示されます。
どうやって特定の件数のみを計算し、表示するのでしょうか?
405NAME IS NULL:2006/09/20(水) 03:13:19 ID:???
>>404
「特定の件数」を特定する条件は何?
なんでもいいから無条件に10件ってこと?
406NAME IS NULL:2006/09/20(水) 08:09:30 ID:???
サブクエリーで先に10件に絞ってから計算したら?
407404:2006/09/20(水) 09:00:31 ID:???
>>405
最新レコード10件の件数です。20レコードあったら、11〜20です。
>>406
それは$sqlに行く前の処理のことでしょうか?
408NAME IS NULL:2006/09/20(水) 09:15:44 ID:???
>>407
「最新」を判断するための更新時間などのデータは持っているのかい?
409NAME IS NULL:2006/09/20(水) 09:19:30 ID:???
sql一発は無理じゃないかと。
ミドルウェア内で計算したら?

【帰ってきた】SQL質疑応答スレ 2問目
http://pc8.2ch.net/test/read.cgi/db/1141622643/l50
410404:2006/09/20(水) 09:20:19 ID:???
>>408
日付も登録しているのですが、自分ではややこしくなるので考えていません。
単純に後から登録されているデータの最新10件で良いのです。

406さんのいうサブクエリーを調べましたが、
select * from count where cnt = (select sum(cnt) from count)

という書き方かと思うのですが、mysql_fetch_arrayのエラーが出たりして
構文が違うようです。。(MySQLは5系を使用しています。)
411NAME IS NULL:2006/09/20(水) 09:37:10 ID:???
>>410
データベースの中身に順番なんてないってことを理解してください。
412NAME IS NULL:2006/09/20(水) 09:47:50 ID:???
idを1からふっている場合でも関係ないんですか?

とりあえずもう諦めます。スレ汚しすみませんでした。
413NAME IS NULL:2006/09/20(水) 11:08:25 ID:???
それはたんなる識別子であって「順番」という概念ではないです。
序列がない、という意味。
414NAME IS NULL:2006/09/20(水) 11:12:22 ID:???
>>404
っていうかそのSQL自体が間違ってるわけだが。
where cnt limit 10 ってありえん。
415NAME IS NULL:2006/09/20(水) 14:20:09 ID:???
典型的な厨房レスだったな…
416NAME IS NULL:2006/09/20(水) 17:31:17 ID:???
LIKE検索をする時に、各filedに照合するのではなく、特定のfiledを繋げてから、繋がったfiledにLIKE検索することってできますか?(ややこしい日本語ですが・・・)
417NAME IS NULL:2006/09/20(水) 17:39:11 ID:???
あ、用語的にはフィールドじゃなく、カラムになるのかな?間違ってたらすみません。
同一レコード内のカラムを連結したいのですが、無理なんですか?
418NAME IS NULL:2006/09/20(水) 18:01:26 ID:???
>>416
ヒント:concat, ws_concat
419NAME IS NULL:2006/09/20(水) 18:15:31 ID:???
>>416
... where concat(column1,column2) like '%hoge%' ...
微妙に意味合いが違うけど、
... where match(column1,column2) against('hoge') ...
という手もあるな。
420NAME IS NULL:2006/09/20(水) 18:18:34 ID:???
>>416-417
とりあえずさ、下の各種関数を上から下まで一通り読んでみ。途中でやめない事。
ttp://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#Control_flow_functions

読み終えた時、MySQLに対する相当な知識の広がりを実感することになるだろう。
421NAME IS NULL:2006/09/20(水) 18:29:32 ID:???
初心者質問ですいません。
MySQLでcheck(column1 >= 10)
のようにしてカラムに入る値を制限する方法ありますか?
checkでやってみたところ構文は使えるのですが、
実際に値が制限されませんでした。
422NAME IS NULL:2006/09/20(水) 18:56:11 ID:???
>>421
check制約ってSQL構文的にはエラーにはならないが
実際には実装されていないんじゃなかったかな?

当方MySQL5.0.15、Win32で以前確かめたときは
できなかった希ガス

最新のバージョンについては知らない
是非とも実装して欲しい機能なんだがねぇ

もし情報が古かったら誰かさん補足よろしくです

423NAME IS NULL:2006/09/20(水) 20:39:46 ID:???
>>422
なるほど、そういうワケだったのですか、ありがとうございます。
他の構文で似たような事できたらと思ったのですが、ENUMは文字列型だし
やっぱり駄目なんですかね。
424NAME IS NULL:2006/09/20(水) 22:54:21 ID:???
>>403
だったら本屋に、あれほどマニュアル本は売ってない。
もっともマニュアル本が沢山あるのは悪い事ではないけど。
425NAME IS NULL:2006/09/21(木) 00:11:17 ID:???
mysqlのテーブルって、データベース名のフォルダと中身の.frm、.MYD、.MYIだけコピーしたらそのまま認識してくれるの?
それともそんな甘い話はない?
426NAME IS NULL:2006/09/21(木) 01:27:01 ID:???
試してレポぐらいしたら?
427NAME IS NULL:2006/09/21(木) 01:30:25 ID:???
>>425
大丈夫らしいが、俺はやったことがない。
あと、動いてるのをそれで移したらどうなるかはしらん。
428NAME IS NULL:2006/09/21(木) 08:22:28 ID:???
日本語格納するのにutf8とかじゃなくbinにしちゃったんだけど
なんか問題って起こるかな?
格納する側(php)で文字コードは統一するようにしてるけど。
429NAME IS NULL:2006/09/21(木) 08:59:41 ID:???
初心者質問で申し訳ないのですが、ホスティングで、PHPで画像投稿、共有サイトを作ろうとした場合、
アップされた画像は、mysql内に保存するのがいいでしょうか?(そもそも画像データを保存できるの?)
それとも、アップされた画像を識別するキーをmysql内に保存し、画像自体はフォルダに
保存されるようにしたほうがいいのでしょか?
430NAME IS NULL:2006/09/21(木) 10:42:26 ID:???
phpMyAdminからデータベースの削除とユーザーの削除ができないのですが、
この場合予想される原因って何ですかね??

すべての権限は備わってるし、
ローカルマシンからコマンドラインで同様の操作はできるんです、、。
431NAME IS NULL:2006/09/21(木) 11:01:55 ID:???
>>429
会員数・データ数・想定されるアクセス数などのファクタがあり杉で何とも言えん。
たまに出す部類のデータだったり、結構アクセスがあるけど前にキャッシュサーバがある・・
とかさぁ。ある訳ジャン。
mysqlに何でもぶち込んでストレージ的に使う というのはそれなりに事例があり
おかしい話ではない。
バイナリや、BASE64やHEXTEXTで入れるのもよし。
オレなら画像のアクセス前に事前処理が必要ならプログラムを介すとしても最終的
には、フォワードとかして apacheに任せるけどね。
432NAME IS NULL:2006/09/21(木) 11:03:48 ID:???
>>430
phpMyAdmin へアクセスしているアカウントの権限に1票。
433NAME IS NULL:2006/09/21(木) 11:05:12 ID:???
>>425
過去ログにオレと親切な人が発言しているので参考にしる。
434NAME IS NULL:2006/09/21(木) 11:11:51 ID:???
>>428
>「utf8とかじゃなくbinにしちゃったんだけど」
色々解ってないようだが、"mysql カラム型" でググって一読することを勧めする。
435NAME IS NULL:2006/09/21(木) 11:31:22 ID:???
>>431 さん
ありがとうございます。色んなファクタがあって、やはりそれを考慮すべきなんですね。
何も考えずにとりあえず、作ってみようと思ってました。
度々、初心者質問で申し訳ないのですが、BASE64でエンコードするってのは、
例えば、aaa.jpgがアップされて、このaaa.jpgをBASE64でエンコードして、MySQLにinsertすると、
ファイルごと保存できるってことなんですか?

436NAME IS NULL:2006/09/21(木) 11:36:22 ID:???
>>431
たとえば会員数1万人、100KBのJPGが3万枚・・・だとしたら??

あと、
>最終的には、フォワードとかして apacheに任せるけどね
↑これ意味がよく分からないので詳しく教えてもらってもいい??
437NAME IS NULL:2006/09/21(木) 11:51:51 ID:???
>>431
どういったときに、画像をDBに保存して、どういったときに、フォルダに
保存するのがいいのですか??
多くの写真投稿サイトやmixiとは、そこらへんどうやって管理してるのか
解れば、教えてください。
438NAME IS NULL:2006/09/21(木) 12:54:56 ID:???
>>437
mixiは画像をDBに入れてないよね。
だって直接URL叩いて見れるもん。
しかもログインしてなくても。
439NAME IS NULL:2006/09/21(木) 13:04:37 ID:???
>>435,436,437
かなり板違いになってきたが・・・
BASE64でエンコードして、DBに保存しておけば、BASE64をデコードした
バイナリに正しいcontent-typeをつけてHTTPのリクエストに答えれば
OKだけれど、相当初心者っぽいのでその方法は勧めない。
普通にフォルダに入れて管理すればどうだい。
>>↑これ意味がよく分からないので・・・
フォワード リダイレクト でググレ
>>多くの写真投稿サイトやmixiとは
通常、素のstaticコンテンツでapache任せ。
必要に応じ、アクセス制限かけたり URLを隠す。

完全に板違いなので、この辺で。
440NAME IS NULL:2006/09/21(木) 13:12:55 ID:???
>>438
URL叩いて画像が見れる≠DBに格納していない
441NAME IS NULL:2006/09/21(木) 13:37:27 ID:???
>>439
板違いになってすいません。
ちょっと勉強不足で、デコードしたバイナリまではわかるけど、
>>content-typeをつけてHTTPのリクエストに答えれば
がちょっと、解りません。もっと勉強してきます。
アドバイスありがとございました!
フォルダに入れて管理ってのは、アップロードされた画像を、
指定されたフォルダに移動させて、ファイル名などをDBに入れて
管理するのかな、と思ってました。
442NAME IS NULL:2006/09/21(木) 13:58:20 ID:???
テーブルに画像データなんてよっぽどのことがない限り入れる必要もないけどなぁ。
しかもテーブル壊れたら全部死亡だろ?
443NAME IS NULL:2006/09/21(木) 14:07:22 ID:???
完璧板違いでで悪いけど、flickrとかフォト蔵ってどうやって画像管理してるの?
444NAME IS NULL:2006/09/21(木) 17:06:13 ID:???
>>443
単純に画像のディレクトリやファイルにIDを振ってスタティック化しておき、
DBで管理してるんだろうさ。
445NAME IS NULL:2006/09/21(木) 19:38:34 ID:???
オラクルをNAS代わりにする製品があったはず。
細かくアクセス制御できるのがファイルシステム上にファイル置くのとの違い。

強力なDB鯖が用意できないとか速度重視ならファイルシステムに置いてアパチ任せ。その代わりurlランダム生成で全ファイル取られるの覚悟。
446NAME IS NULL:2006/09/21(木) 20:34:58 ID:???
>完璧板違いでで悪いけど、


判ってんなら、他でやれよ
447NAME IS NULL:2006/09/22(金) 08:08:41 ID:???
>434
要するに中身なんて気にするなよ。チェリーボーイ
ってことですね。
448NAME IS NULL:2006/09/22(金) 10:16:29 ID:???
でも童貞の頃って、結構気になるだろ。
なんせまんまん見るのすら始めてでどうしていいかわからないだろうし。
449NAME IS NULL:2006/09/22(金) 11:03:50 ID:???
>>448
今のご時世、童貞喪失時点でマンマン初見って奴の方が少ないだろうな
450NAME IS NULL:2006/09/22(金) 14:23:39 ID:???
autoincrementで、1、2ってidつけてその値を削除したら、どうなるの?
1を削除したら、自動的に2は1になっちゃうの?
451NAME IS NULL:2006/09/22(金) 15:21:05 ID:???
>>450
そうなったらオレがこれまで設計した全DBのリレーションに矛盾が生じ
お客から電話の嵐、不眠不休で1ヶ月間対応に追われ挙句の果てに過労死
でご臨終。家族は路頭に迷い・・・・
452NAME IS NULL:2006/09/22(金) 15:56:27 ID:5yTZl1Sc
簡単にお金稼ぎ!!!

以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円〜3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。

@ http://www.gendama.jp/invitation.php?frid=470908
    ↑このアドレスからサイトに行く。
Aそこのサイトで無料会員登録(応募)します。
 (その時点で 500 ポイントが貰えます。)
 ※事前に新規でヤフーなどのフリーメールアドレス
 を取っておくといいですね。
Bポイントを稼ぎます。
 懸賞の応募や無料会員登録などをする事によって
 1日目で約 20000 ポイントは GET できます。
C 3000 ポイントから、現金や WEB マネーに交換できます。
Dトップの右上に「交換」という所がありますので、
 そこから交換をしましょう。
 その月に初めてポイントバンクにポイントを移行した時、
 さらに別途として 1000 ポイント貰えます。

これで現金や WEB マネーを稼ぐといいですよ!!!
453NAME IS NULL:2006/09/22(金) 16:13:33 ID:???
>>451
やっぱならないっすよね!よかったぁ。
面白いレスあざーっす!
454NAME IS NULL:2006/09/22(金) 19:28:46 ID:???
phpMyAdminが壊れました。
DBのドロップダウンに出てきません。
しかし、DB自体はちゃんと動いています・・・

http://vista.undo.jp/img/vi5892078102.jpg

何でしょうか?これ・・・
新しいバージョンのpjpMyAdminを入れても同じ様になります。
無論、url,user,passwordの設定は行っています。

同じような状況になった方は居られませんか?
455NAME IS NULL:2006/09/22(金) 21:49:35 ID:???
>>454
使用しているのがTurbolinuxだとしたら仕様だと思われます。
456NAME IS NULL:2006/09/22(金) 22:41:49 ID:???
>>440
>URL叩いて画像が見れる≠DBに格納していない

バカかお前は。
>>438をもう一度よく読め。
ログインしてなくてもURL直で見れるんだぞ。
すなわち画像をDBに入れず、普通にファイルシステムに置いてるってことだ。
457NAME IS NULL:2006/09/22(金) 22:50:26 ID:???
>>456
URL直で見れる≠DBに格納していない

拡張子が.jpgとかだから、スクリプトではないと思い込んでいるのかな?

ま、あくまでも可能性の問題であって、現実的かどうかは関係ないが、
いい加減に気づけよ、知恵無しw
458NAME IS NULL:2006/09/23(土) 00:22:52 ID:???
>>456
無知・馬鹿・しったか。哀れだな。w
459NAME IS NULL:2006/09/23(土) 00:25:08 ID:???
>>456
.html .jpg .pdf すべてスタティックなんですか。そうですか・・・アホ
460NAME IS NULL:2006/09/23(土) 05:33:22 ID:???
まあまあスレ違いだし
461NAME IS NULL:2006/09/23(土) 06:29:36 ID:???
>>457-459
とことんアホだなお前らwww

スタティックかどうか、スクリプトか否かの問題じゃねぇっつーの。
ログインしてない状態でURL直で見れるってことは、
ID等によるアクセス制限がかかってない=DBのデータの影響を受けてない=DBに保存してない、ってことだ。

自分で確認してから言ってみろチンカス。
462NAME IS NULL:2006/09/23(土) 07:14:25 ID:???
>>461
ID等によるアクセス制限がかかってない≠DBのデータの影響を受けてない=DBに保存してない
463NAME IS NULL:2006/09/23(土) 07:21:28 ID:???
>>461はサイトへアクセスするIDとパスワードを
サーバ内でDBにアクセスする際のDBへのログインにも使ってるとか考えてる悪寒。

試しに>>461に質問。
「直URLでのリクエストが来たらDBから対応するデータを引き、バイナリデータを返す」
というサーバサイドのプログラムがあったとして、
貴方が言う「ログインしてない状態」の場合には貴方の考えではこれは「動かない」わけだよね。
どこのところが動かないと考えてるの?
464NAME IS NULL:2006/09/23(土) 08:44:34 ID:???
↓ここで>>461が釣り宣言w
465sage:2006/09/23(土) 09:14:49 ID:whYsfoAp
>>461
アクセス制限じゃなくてDBをストレージ的に使うってよくある話なんだが
馬鹿にこれ以上説明しても無駄だな
466NAME IS NULL:2006/09/23(土) 09:20:47 ID:???
apacheにどういうパッチが当たっているかもわからないのに、
apacheの動作結果見ただけで内部動作がわかるってか?

おめでてーな
467454:2006/09/23(土) 09:47:40 ID:???
自己解決しました。
php.iniに、何故かoptimizerが呼ばれていました・・・
アップデートの際に紛れ込んできた模様です。
コメントアウトするとあっさり治りました。
MySQLの問題ではありませんでした。

m(_ _)m
468NAME IS NULL:2006/09/23(土) 11:12:11 ID:???
データベースを利用する(組込みとかライブラリではなく)だけのアプリケーションで、ソース公開の義務があんのか?
469NAME IS NULL:2006/09/23(土) 12:20:23 ID:???
tagつけるdbってどうなってんの?
tag用のテーブル作ってんの?
youtubeの様な共有サイトなら、動画情報を扱うテーブルと、タグづけ
されるテーブルでわけてるの?
分けてるときって、tag1、tag2みたいな感じでフィールド作ってんの?

470NAME IS NULL:2006/09/23(土) 12:33:34 ID:???
>>469
実装方法はいろいろあるよ。
タグの名前を保管するテーブルと
画像情報idとタグidをひもづけするテーブルを作ってもイイし。

全文検索を使うっていう方法もある。
471NAME IS NULL:2006/09/23(土) 12:45:30 ID:???
>>470
tagを5つまでしかつけられないとした場合、tag1、tag2、、って感じのフィールドと
画像情報idフィールドでひもづけされたテーブルって変ですかね?
んで、そのtagに対してand検索やor検索も行うってのは。

>>全文検索を使うっていう方法もある
どんな方法ですか?
472NAME IS NULL:2006/09/23(土) 13:51:55 ID:???
そういえばmixiのCTO・ケスマさん曰く、
 「画像はよく呼ばれるものをキャッシュしてるくらいで、
  あとは特別なことはせず普通にファイルで管理してるだけ」
だそうだ。
473NAME IS NULL:2006/09/23(土) 14:48:56 ID:???
mixiよりもlivedoorを参考にした方がいい
平均スループットで2倍くらい差があるんじゃないかな・・・・・
474NAME IS NULL:2006/09/23(土) 17:11:31 ID:???
どんなふうにして、livedoorは早くしてんの?
てか、画像を早く表示させる方法を教えてくれ。
475NAME IS NULL:2006/09/23(土) 18:15:18 ID:???
各社のノウハウです。
476NAME IS NULL:2006/09/23(土) 19:13:55 ID:???
企業秘密です。
477NAME IS NULL:2006/09/23(土) 20:18:27 ID:???
知りたい。
誰か教えてくれ。
478NAME IS NULL:2006/09/23(土) 21:11:06 ID:???
mixi株買えば?
479NAME IS NULL:2006/09/23(土) 21:14:18 ID:???
まあノウハウと言っても、実際は大したことないんだけどね。
誰でもちょっと頭使って工夫すれば、普通のLAMPで実現できる。
480NAME IS NULL:2006/09/23(土) 21:46:49 ID:???
>>471
その場合は複数のタグでフィルタリングすると面倒だと思うけど、問題なし?

全文検索を使うときはタグ用のカラムを作ってスペース区切りでタグを登録して
マッチするようにすればいいんじゃね?
(スペース区切りで入れるんで、たぶん日本語でも大丈夫)
MySQLの全文検索についてはドキュメント読んでちょ。

もちろん全文検索にMySQLそのものを使わなくてもいい。
Sennaを追加してもいいかもしれないけど。
481NAME IS NULL:2006/09/23(土) 21:47:35 ID:???
>>479
まあねえ。
ボトルネックはシステムごとに違うだろうし。

482NAME IS NULL:2006/09/23(土) 23:10:44 ID:???
基本は apacheのチューニング。
483NAME IS NULL:2006/09/24(日) 00:46:08 ID:???
LAMPだとスケールしない。
ジーオンデュアルぐらいで事実上頭打ち。
F5とかの負荷分散の箱とか使うとコストが恐ろしく跳ね上がるよ。

アパチって複雑怪奇だからチューニングするよりシンプルなhttpdで置き換えた方がパフォーマンス出る。
484NAME IS NULL:2006/09/24(日) 01:07:04 ID:???
ボトルネックは、MとPだろうな。
485NAME IS NULL:2006/09/24(日) 08:50:09 ID:???
>>483
そういう発想の時点で既にmixi型

なにも、メーカーサポート品だけで構築する必要もない
必要なのは発想の転換と技術力
486NAME IS NULL:2006/09/24(日) 10:14:19 ID:???
>>480
あざっす!スペース区切りがダメかと思ってました。
タグ用のフィールド一つ作ってやってみます!
487NAME IS NULL:2006/09/24(日) 11:07:23 ID:???
>483
つ LVS
488NAME IS NULL:2006/09/24(日) 11:14:48 ID:???
>>468
# MySQL ABがMySQLのC-S間の通信プロトコルもGPLだと
# 言い張ってる件は置いておいてw

「データベースを利用するだけのアプリケーション」でも
何らかの形でMySQL AB製の接続ライブラリの利用を前提とした構成になっている
場合が殆ど(そのアプリを書いたプログラム言語自身が利用してる)だと思うけど、
その場合GPLの伝播が、そのアプリケーションにも影響しGPLの範囲で
ソース公開の義務が発生する。

但しアプリケーションを書くプログラム言語がPHPだとかPerlとかの場合、
例外規定によりGPLの伝播がアプリに影響せず、PHPであればPHPライセンスの
記述通り、アプリケーションには好きなライセンスを設定できる。
つまりソース公開の義務の有無は自分の設定したライセンスによる。
したくなければ義務のないライセンスを選ぶか、作って適用する。
489NAME IS NULL:2006/09/24(日) 12:05:58 ID:???
>>488
斬新な解釈だな。
490NAME IS NULL:2006/09/24(日) 12:06:38 ID:???
各社ウハウハです。
491NAME IS NULL:2006/09/24(日) 12:41:09 ID:???
一般的な解釈だ。しかし法的な根拠があるわけではない。
492NAME IS NULL:2006/09/24(日) 12:46:58 ID:???
MySQLはころころライセンス条項変わりすぎだよ
493NAME IS NULL:2006/09/24(日) 14:45:09 ID:???
>>488

GPLにまつわる10個の誤解
http://opentechpress.jp/opensource/article.pl?sid=06/08/31/0233200

GNU General Public License(GPL)は最も広範囲に用いられている
ソフトウェアライセンスの1つだが、同時に最も誤解されている規約で
あることも間違いがないだろう。こうした誤解の中には、反対派による
プロパガンダ活動に起因している部分もある
494NAME IS NULL:2006/09/24(日) 14:51:49 ID:HMcEbaG9
SQLの質問なんですが、

カタカナAB

とカラムに入っていて、これらを全て

カタカナAB

とupdateで全角に変えることは出来ますでしょうか?
英数字は半角のままで、カタカナだけ半角から全角変換したいんです。
カタカナは手で入れる(全行同じ文字)のは問題ないんですが、後ろの
ABがCCだったり、PXだったり、全行違います。
なので、

update table set name='カタカナAB' where name='カタカナAB';

と全行分、手で入れるのがめんどくさくて。100行もあるし。

update カタカナ??

みたい感じで。一発で出来ないでしょうか?
後ろの英数字はそのままで。
495NAME IS NULL:2006/09/24(日) 15:34:11 ID:???
100行ぽっちならエディタのマクロでSQL作成すりゃすぐだろ
496488:2006/09/24(日) 15:37:25 ID:???
うーん、なら俺の解釈が今まで間違ったつうことだな。

>>493
ウイルス性の部分だけど
「それら自身別の独立した著作物であると合理的に考えられる」
これはGPLのライブラリの使用を前提としたラッパーでも
全部オリジナルで著作物としては独自のものであれば
GPLは適用されないってことだよね。
(MySQLの例外規定なんてそもそも必要なかったてことか)
497488:2006/09/24(日) 16:05:51 ID:???
何度もすまんね。

自分の拠り所にしてたのは
http://www.gnu.org/licenses/gpl-faq.ja.html#TOCIfLibraryIsGPL
|Q.ライブラリが(LGPLではなく)GPLの下で公開されている場合、そのライブラリを
|利用するプログラムにはGPLが適用されていなければならないのでしょうか?
|A. はい。なぜなら、実際に実行されるプログラムはライブラリを含んでいるからです。
http://www.gnu.org/licenses/gpl-faq.ja.html#TOCIfInterpreterIsGPL
|A.しかし、インタープリタが他の機能(多くの場合ライブラリですが、
|ライブラリである必要はありません)への「バインディング」を提供するように
|拡張されている場合、解釈されるプログラムはバインディングを使うことによって
|事実上それらの機能とリンクされることになります。

後者は、どう読んでも著作物としての独立性とは関係なしに
機能(関数なり命令)を利用=リンクで。リンクした場合は静的/動的関係なく
GPLね(どこかで書いてあるのを読んだ記憶があるのだが)だと思っていたのだが。
どの辺で自分の解釈に誤りが起こってるのか、今後間違えを垂れ流さないために教えて欲しい。
498NAME IS NULL:2006/09/24(日) 17:02:10 ID:???
ちょっと通りますよ

MySQL使う売りもんのPGで
DB環境のセットアップが自分とこならライセンス買う。
PHPでもPCアプリでも。

としております。おれの場合。
499NAME IS NULL:2006/09/24(日) 18:24:39 ID:???
Embedded MySQLは一般的なDBMSの機能の他に
上手にノードへデータを分散させる
分散させたデータを1つのデータベースにみせる
幾つかのノードが消滅してもシステム全体に影響を与えないみたいな機能を
持ち合わせているって聞いたんですが本当なんでしょうか?
申し訳有りませんがこの答えが記されているのがFAQかマニュアルかも分かりませんし
入り組んでいてマニュアルの場所すら分からず、FAQかマニュアルの何処の部分に記されているのかと
マニュアルのURLを教えて頂きたいです
宜しくお願いします
500NAME IS NULL:2006/09/24(日) 20:44:45 ID:???
>>498
>DB環境のセットアップが自分とこなら

文章が稚拙過ぎて、イマイチ意味が分からない。
主語や述語、目的語をハッキリさせてくれ。
501NAME IS NULL:2006/09/24(日) 21:05:12 ID:???
GPLの物が組み込まれる場合はGPLになる。

販売物にGPLの物が含まれず、実行時に動的にGPLの物と組み合わさる場合は、
GPL汚染から免れる事ができる。

502NAME IS NULL:2006/09/24(日) 22:22:54 ID:???
MySQLとSQLServerって何が違うんですか?
503NAME IS NULL:2006/09/24(日) 22:33:27 ID:???
綴り
504NAME IS NULL:2006/09/24(日) 22:41:50 ID:???
教えてください。データ追加エラーになります。
サーバとかパスワードはあってるはずです。
$imgfile = $_POST["imgfile"];
$category = $_POST["category"];
$comment = $_POST["comment"];
$comment = str_replace("<br />", "", $comment);
$tag = $_POST["tag1"]." ". $_POST["tag2"]." ". $_POST["tag3"];

$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
mysql_query("set names ujis");
$selectdb = mysql_select_db($DBNAME, $con);

$sql = "INSERT INTO photo
(userid, photoname, category, comment, tag, date)
VALUES
(0, \"$imgfile\", \"$category\", \"$comment\", \"$tag\", NOW())";

$rst = mysql_query($sql, $con) or die ("データ追加エラー");
if($rst){
$register = "登録完了しました!";
rename("$PHOTOTMP$imgfile", "$PHOTODIR$imgfile");
}else{
$register = "登録に失敗しました";
unlink("$PHOTOTMP$imgfile");
}
$con = mysql_close($con);
505NAME IS NULL:2006/09/24(日) 22:53:44 ID:???
>>504

>サーバとかパスワードはあってるはずです。
そう主張する根拠を提示してよ

あとさ、提示された情報だけでこっちは何を答えればいいんだよ?

テーブル定義も分からない、君が言う「データ追加エラー」の根拠となる
エラーメッセージも分からない、それで普通質問に答えられると思いますか?
506NAME IS NULL:2006/09/25(月) 00:10:53 ID:???
すいません。考えたら、そうですよね。この情報で解るわけないですよね。

if($con){print "true1";}
if($selectdb){print "true2";}
↑を実行したら、それぞれ、trueが返されたのでパスなどは合ってると思います。
テーブルは↓で作成しました。

create table photo(
photoid int primary key not null auto_increment,
userid int,
photoname char(20),
category varchar(15),
comment varchar(200),
tag varchar(100),
date date,

index keyuserid(userid),
index keyphotoname(photoname),
index keytag(tag)
) engine=MyISAM;
507NAME IS NULL:2006/09/25(月) 00:12:36 ID:???
あと、また書き忘れましたが、それぞれの文字量もチェック済みです。
508NAME IS NULL:2006/09/25(月) 00:51:07 ID:???
文字化けで苦しんでます><
phpからmysqlに登録すると、文字化けがぁ。。
設定は全部EUC−JP、mysqlのmy.iniはujisに設定しているのですが。
どなたかおしえてくれませんか><
509NAME IS NULL:2006/09/25(月) 01:01:03 ID:???
mysqlはutfだってば。
全部utfで作り直して、どうやってutfだと確認してるかスクリーンショットでもコマンド出力でも晒してみれ。

RHELインスコして納品してる場合には、ABに別途ライセンス料払うべきなの?
普通にヲレパッチ当てたsrpmで再インスコすれば、glibc(GPL)とリンクされてるよね。
510NAME IS NULL:2006/09/25(月) 01:02:29 ID:???
>>501
GPLでは動的リンクも静的リンクも区別が無い。
LGPLの文面や、R・ストールマンの言動をみても
動的リンクしても派生物と考えてる。
もっとも契約なので文面が全てで、ストールマンの
言動は法的な根拠にはならんが。

伝染性については後から擁護派が
躍起になって火消ししてるとしか思えん。
胸張って「伝染るんです」って言えばいいのに。
511NAME IS NULL:2006/09/25(月) 01:18:38 ID:???
> mysqlはutfだってば。
どゆこと?
512NAME IS NULL:2006/09/25(月) 01:29:02 ID:???
>> 509
utfにしなきゃいけないんすか??
513NAME IS NULL:2006/09/25(月) 01:42:59 ID:???
>>512
んなことない。
俺は全部EUCでうまく行ってる。

ただし4.1系は日本語に問題あるみたいね。
対処法もあるらしいけど。詳しくはググれ。
514NAME IS NULL:2006/09/25(月) 03:42:37 ID:???
要はシステム内でコードを統一した方が良いって話だ
国際化を意識するならUTF-8が良い選択
日本語しか使わないならEUCも悪くない(コード判定楽だし)
515NAME IS NULL:2006/09/25(月) 07:03:35 ID:???
国際化、国際化、って言っても、
まあせいぜい英語を使う可能性があるくらいで、
それ以外の言語はほぼ無いと考えてもいい。

実際にはUTF-8じゃないと困るような場面はほとんどありえない。
日本人が日本人相手にシステム組むなら、EUCで十分。
っていうか、総合的に考えてEUCのほうが問題が起きにくいので、むしろ推奨。
>>514も書いてるように、日本語のことだけ考えるならUTFよりEUCのほうが良い。
516NAME IS NULL:2006/09/25(月) 07:25:07 ID:???
>>515
>>514は「UTFよりEUCのほうが良い」とは言ってないぜ
たとえばJavaの場合EUCでは文字化けが起きる可能性がある
その場合UTF-8がベストな選択だ
517NAME IS NULL:2006/09/25(月) 07:31:39 ID:???
EUC厨やSJIS厨がそこに居るだけで有害
518NAME IS NULL:2006/09/25(月) 08:39:23 ID:???
>>517
文字コード厨が一番迷惑
519NAME IS NULL:2006/09/25(月) 09:15:13 ID:???
508の者ですが、まだ文字化けで悩んでます。。
phpは設定(バージョンは5,1,6)
mbstring.http_input auto auto
mbstring.http_output EUC-JP EUC-JP
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.language Japanese Japanese

mysql(ヴァージョンは5,0,24)
statusを実行で見ると、ujisに設定してあります。

ファイルも全て、EUCで保存されています。
教えてください><
520NAME IS NULL:2006/09/25(月) 09:20:38 ID:01P5T5Ej
rootユーザで、リモートホストのmysqlサーバにアクセスするには
どうしたら良いのでしょ?

アホな質問でスマソ。
521NAME IS NULL:2006/09/25(月) 09:56:45 ID:???
アクセスでも使っとけ。
一生、アクセスできないだろうし。
522NAME IS NULL:2006/09/25(月) 10:20:06 ID:???
>>521
つまらん、頭悪いんでない?
523NAME IS NULL:2006/09/25(月) 10:24:25 ID:???
英語だと、DBに登録できて、日本語だとできない。
skip-character-set-client-handshakeを指定する前だと、
日本語も英語も登録できた。ただ、日本語が文字化けした。
どこに問題があると考えられますか?
524NAME IS NULL:2006/09/25(月) 10:29:33 ID:???
skip-character-set-client-handshakeに問題があるんだろ
525NAME IS NULL:2006/09/25(月) 10:35:47 ID:???
↑まったく面白くない、お前、IQいくつよ?
526NAME IS NULL:2006/09/25(月) 10:39:50 ID:???
>>524
skip-character-set-client-handshakeを設定しないほうは良いってことですか?
↑の設定を外して、SHOW VARIABLES LIKE '%collation%';を見ると、
collation_database | latin1_swedish_ci
となってます。
これを変えれば、文字化けも解消されるでしょうか?
あと、よろしければ変更方法も教えていただきたいです。
my.iniに記述すればいいのでしょうか?
mysql(ヴァージョンは5,0,24)です
527NAME IS NULL:2006/09/25(月) 10:45:01 ID:???
>>519
mysqlのコンソールから
show variables like 'character%';
の結果を晒してみ。
528NAME IS NULL:2006/09/25(月) 10:45:36 ID:???
526です。
skip-character-set-client-handshakeの記述をといて、リスタートさせてみると、
SHOW VARIABLES LIKE '%collation%';を見ると、 collation_database | latin1_swedish_ci
さらに、もう一度リスタートさせると、latin1_swedish_ci の部分が、
ujis_japanese_ciに。。
んで、インサートしてみると、まだ文字化け。。
529NAME IS NULL:2006/09/25(月) 10:50:51 ID:???
526です。
度々、すいません。
今度はリスタートもなにもせず、SHOW VARIABLES LIKE '%collation%';を
実行したら、character_set_database | latin1に!!
なんで!?実行毎に変化するんですけど。
このlatin1はどうやって、直せるでしょうか??
my.iniに記述するのでしょうか?
530NAME IS NULL:2006/09/25(月) 10:56:54 ID:???
526です。
ほんと度々、すいません。
データを登録する前は、ujisなのが、登録した後に、
SHOW VARIABLES LIKE '%character\_set%';を実行すると、
character_set_database | latin1となってしまいます。
これはどうすれば直るのでしょうか??
531NAME IS NULL:2006/09/25(月) 11:05:22 ID:???
526です。
ほんと度々、すいません。
mysqlcommand line clientで一番初めに、SHOW VARIABLES LIKE '%character\_set%を
実行すると、character_set_database |ujisなのですが、
use ○○db;を実行後に、SHOW VARIABLES LIKE...を実行すると
ujisがlatin1になってしまいます。
532NAME IS NULL:2006/09/25(月) 11:13:39 ID:???
DB新しく作り直せ
533NAME IS NULL:2006/09/25(月) 11:29:08 ID:???
DB作り直したら、ujisになりました。
ありがとうございます。
でも、以前と文字化けが。
MySQL(5.0.24)
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8

php(5.1.6)
default_charset = EUC-JP
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.substitute_character = none

ファイルはEUC-JPで保存しています。
どうかアドバイスお願いします。
534NAME IS NULL:2006/09/25(月) 14:18:29 ID:???
>rootユーザで、リモートホストのmysqlサーバにアクセスするには
>どうしたら良いのでしょ?

お前、なんか勘違いしてるだけだと思うぞ。
rootでも一般ユーザと同じ設定するだけで、リモートサーバに接続できる。
userテーブルのhostとパスワードをちゃんと確認しろ。
535NAME IS NULL:2006/09/25(月) 15:07:56 ID:???
>>533
コンソールから select で見てみた?やっぱ文字化けしてる?
コンソールから insert into とかでも文字化けする?
536NAME IS NULL:2006/09/25(月) 15:41:33 ID:XqNBFFFZ
オートインクリメントを設定した「no」というカラムに、
レコードを10件INSERTしたとします。

このとき「no」が「1〜10」までのレコードが存在するわけですが、
たとえば7と8のレコードだけ削除して、その後phpMyAdminなどを使って
auto_incrementの値を「7」に戻し、レコードを3件追加するとします。

このとき、追加される3件のレコードの「no」は自動的に「7、8、11」となるのでしょうか。
それとも「7、8、9」となり、もともと存在している「9」とバッティングし、エラーになるのでしょうか。
537NAME IS NULL:2006/09/25(月) 15:45:23 ID:???
>>536
長々と質問する前にやってみたら?
538536:2006/09/25(月) 15:51:33 ID:XqNBFFFZ
自己レスですが、そもそも
>auto_incrementの値を「7」に戻し
という操作自体が不可能みたいですね・・・。
noカラムの最大値より低い値には設定できないみたいです。

ということは、オートインクリを保ちつつ、
欠番(今回の場合は7と8)も埋めて利用するには、
いちいち自力で欠番を見つけ出して、矛盾や重複の無いように気をつけながら
INSERT時の値として指定しなければならないんですね。。。 困ったなぁ。
539NAME IS NULL:2006/09/25(月) 15:51:40 ID:???
泣ける人と粘着厨だけなのかよ。。。。
540NAME IS NULL:2006/09/25(月) 15:57:13 ID:???
>>538
一意性の面で、欠番は埋めない方がよい。
541NAME IS NULL:2006/09/25(月) 15:57:41 ID:???
>>538
なんかさ、auto_incrementを伝票番号とかに使おうとかしてね?
542NAME IS NULL:2006/09/25(月) 16:02:05 ID:???
>>535
はい、毎回、コンソールからselectで見ると文字化けしています。。
コンソールからinsert intoを行ったら、Data too long〜となっていました。
でも、varchar(200)のフィールドに、aaaaaを入れると平気で、
「あ」一文字をinsertすると、Data too long〜になってしまいます。
どうしてでしょう?
543NAME IS NULL:2006/09/25(月) 16:08:05 ID:???
>>542
mysql ERROR 1406 でググレ
5444:2006/09/25(月) 16:28:13 ID:0sTeTjdS
地上30メートルから飛び降りて無傷!
神の着地術!!(゚ロ゚;)
http://gotodmc.ath.cx/uploader/src/fdds.wmv
545NAME IS NULL:2006/09/25(月) 16:31:52 ID:???
すいません。ググッたけど、わからないです。
コンフィグ設定もやり直してみましたが、変わりませんでした。。。
546536:2006/09/25(月) 16:39:44 ID:XqNBFFFZ
>>540
そうですね。
ある特定の番号を空けておいて、後で必要な時に随時使いたかったんですが・・・

>>541
いえ、会員番号です。
伝票番号として使ったら何かマズい点でもあるのでしょうか?
547NAME IS NULL:2006/09/25(月) 17:59:51 ID:???
DBから取得した日本語が文字化けしてしまいます。
UTF-8が良いと聞いたので、それで書いています。

実行してみると、日本語が???に文字化けしてしまいます。
どのように対処すれば良いのでしょうか?

文の最初にmb_internal_encoding("UTF-8");としても文字化けしたままです。
また、headerやmetaで指定しても同じです。
出力時にmb_convert_encoding($str,"UTF-8");とするとうまく表示されるのですが、
出力するたびに変換していたら文が長くなってしまうので、最初に指定しておきたいです。

おそらく、DBから受け取った文字コードがUTF-8ではないと思うのですが、
良かったらDBで文字コードを設定する方法を教えていただけると嬉しいです。

ブラウザではUTF-8では文字化けした状態で表示
EUC、SJIS、JISでは何も表示されません。

PHPスレで質問していた内容がDBだったのでこちらで聞いてみることにしました。
548NAME IS NULL:2006/09/25(月) 20:31:08 ID:???
>>547
ほら、ベストアンサーがあるぞ。
http://pc8.2ch.net/test/read.cgi/php/1158434799/526
549NAME IS NULL:2006/09/25(月) 20:48:06 ID:???
オレ@ LAMJ 派なんだけど DBの文字化けで悩んだことってあまり無いんだが、
LAMPってそんなに文字化け対策が大変なの?それとも一部のXXだけ?
または、全般的にLAMP派ってレベル低いの?
(イヤ一般論でつ。高いヤツはゴメン)
550NAME IS NULL:2006/09/25(月) 20:53:11 ID:???
個人で使ってる入門者が多いんだと思う
まぁ単刀直入にレベル低いといってもいいが
551NAME IS NULL:2006/09/25(月) 20:56:41 ID:???
×レベルが低い
○知能が低い
552NAME IS NULL:2006/09/25(月) 21:37:51 ID:???
JavaでMySQL楽々設定1・2・3

1./etc/my.cnfの編集

 [mysqld]
 default-character-set=utf8
 [mysql.server]
 default-character-set=utf8
 [mysqldump]
 default-character-set=utf8
 [mysql]
 default-character-set=utf8

2.DBをUTF-8で作成

 create database mydb default character set utf8;

3.JDBC URIを適切に設定

 jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8
553NAME IS NULL:2006/09/25(月) 21:39:50 ID:???
最後の行訂正

jdbc:mysql://localhost/mydb?useUnicode=true&amp;characterEncoding=utf8
554NAME IS NULL:2006/09/25(月) 22:51:30 ID:???
便乗していいですか?
DBから取得した日本語がPHPで表示すると文字化けっていうものなんですが
訳あってPHPのソースに手を入れることが許されてないんです
(php.iniはOK)
php.iniとmysqlの設定、元データのバックアップだけで
なんとか解決出来ないものでしょうか
555NAME IS NULL:2006/09/25(月) 22:55:57 ID:???
>>554
1. DBのデフォルト文字コードは何?
2. PHPソースの文字コードだけを変更することは可能?
3. HTML、metaタグのcharsetは出力するようなプログラム?
そうならばcharsetは何?
556NAME IS NULL:2006/09/25(月) 23:42:32 ID:???
>>555

1. latin1です。今日、SJISにしたりUJISにしたり色々変えてみたんですがどれも駄目でした。
  というか文字関連の設定項目が多くて、どれをどうしたらどうなるのか正直よく理解しきれていません。

2. 現在は全てEUCで記述されています。ソースを書き換える程ではないけど、いい顔はされなそうです…。

3. PHPのソース内で、直にSQL文、もしくは変数に入れる形で持ってきています。
  charsetはちょっとわかりません。すみません。
557NAME IS NULL:2006/09/26(火) 01:33:29 ID:???
文字コードの勉強した方が良いよ。
基本的に文字コード変換したら、情報が失われてしまうから、文字コード変換しなくて済む設計をするのが鉄則。
dbがutfで格納するなら、utfで統一。phpからjavaに変更しても安心。
メールが絡むなら、jis(iso-2022-jp)で統一。mysqlだと標準では対応してないけどな。

別途オートインクリメントのテーブル持ってそっちで伝票番号管理するのが運用上、柔軟に対応できると思う。
この辺の業務実態がコンサルできてないと、納期後にトラブル出まくって手でSQL叩いて修正なんてアフォな対応させられるよ。
今からでも遅くないから、現場と再度打ち合わせして仕様を徹底的に見直した方が良いよ。
558NAME IS NULL:2006/09/26(火) 01:35:13 ID:???
>訳あってPHPのソースに手を入れることが許されてない
>ソースを書き換える程ではないけど、いい顔はされなそう

どんな事情だ?
そんなクソな仕事してる時点でお前もクソ。
559NAME IS NULL:2006/09/26(火) 02:00:16 ID:???
>>557
そういうあんたもよくわかってないんじゃ。
> dbがutfで格納するなら、utfで統一。phpからjavaに変更しても安心。
javaに限らんが、基本的に DBが何の文字コードだって扱える。
> メールが絡むなら、jis(iso-2022-jp)で統一
何いってるんだかw。文字コードの勉強した方が良いよ。
DB内のデータを正しく変換して出し入れできるかが肝心。
560NAME IS NULL:2006/09/26(火) 02:54:10 ID:???
以前からutf, utfと念仏唱えている奴だろ。

> 基本的に文字コード変換したら、情報が失われてしまうから、
「基本的に」などと言ってる時点で、もうね、アボガド、バナナk(ry
そりゃ、euc-jp→latin1とか、初期のMySQL4.1のようにShift_JISと
cp932を取り違えているとかすりゃ情報は欠損するがな。
561ちょっと通りますよ:2006/09/26(火) 05:00:08 ID:???
文字コードももちろん、設置や運用を
いっぺん基礎からきっちり勉強し直したいんだけど、
大阪でどっかオススメのとこってありますか?
最近本とか読むのが辛くて…。
東京行くしかないかなぁ。
562NAME IS NULL:2006/09/26(火) 06:53:38 ID:???
>>561
ん教科書も読めなくて勉強できるとおもってんのか。泣けるやつだな。
563NAME IS NULL:2006/09/26(火) 07:26:06 ID:???
>>561
たしか堂島に よい子のパソコン教室があったよ
564NAME IS NULL:2006/09/26(火) 12:59:32 ID:???
eucとsjisとutfで相互に変換して文字化けしないことは保証されてたっけ?
正しく変換できることが前提なら文字コードは何でも良いけど、実際はできないから将来的な用途も考慮して変換しないように設計するのが肝心だよ。
565NAME IS NULL:2006/09/26(火) 17:38:52 ID:???
プログラミング言語に合うような選択をするのが楽だと思うんだが。
Java/C#/Perl(use utf8)ならUTF-8、C/Perl/PHPならそのソースのエンコードにあわせている。

まあ動いてしまえば何でもいいんで(もちろん負荷を極力下げる時はコードの変換は減らすけど)、
UTF-8に統一しろとか、eucJP-msに統一しろとか言わないで、色々試して内部の動作をしっかり把握した方が後々のためだと思う。
文字コードに辟易するなら4.0にしておけ。
566NAME IS NULL:2006/09/26(火) 17:40:52 ID:???
>>565
御意。かなり同じ意見。
567NAME IS NULL:2006/09/26(火) 18:50:45 ID:???
動いた後で変更することも想定すべき。
携帯系のサービス始めたい(sjis)、j2eeに移行(utf)、メール配信(jis)
客の要求はプログラム言語の都合なんて考慮してくれないよ。
568NAME IS NULL:2006/09/26(火) 20:09:33 ID:???
そんな場合はJavaが最適だな
そもそもJavaの内部コードはutf8じゃないし
569NAME IS NULL:2006/09/26(火) 20:20:41 ID:???
>>557
>別途オートインクリメントのテーブル持ってそっちで伝票番号管理するのが運用上、柔軟に対応できる

なんだ? この唐突な発言は? 何に対してのレスなのか、何を根拠にした発言なのか謎だなww

>>567
SJISしか使えない携帯はもはや過去の遺物なわけで、
最近の携帯はパソコンとほぼ同じ文字コードを備えてるわけだが。
570NAME IS NULL:2006/09/26(火) 22:32:34 ID:???
Berkeley DBが、MySQLで選択可能なストレージ・エンジンから除外される
http://opentechpress.jp/enterprise/article.pl?sid=06/09/26/1032258
571NAME IS NULL:2006/09/26(火) 22:34:12 ID:???
>>569
最新の携帯にしか対応しないなんて選択はあり得ないわけで……。
572NAME IS NULL:2006/09/26(火) 22:40:13 ID:???
正直、DBをUTF-8に出来るチャンス(?)があるなら
UTF-8にしといた方が楽だと思うよ。
573NAME IS NULL:2006/09/26(火) 23:09:26 ID:???
>>571
「最近」とは書いたが、「最新」とは書いてない。
実際、2年半近く前に発売されたVodafone機でさえも、
PCと同じ文字コードが使える。

つーか、俺はむしろSJISしか使えないような携帯(3〜4年以上前)にはあえて対応しないポリシー。
どうせそんな古い携帯じゃ画面も狭いし速度も遅いしパケットも金かかるし、
結局気持ちよく使ってもらえない。だからそもそも対応する必要もない。
574NAME IS NULL:2006/09/26(火) 23:57:49 ID:???
>>573
君のポリシーは知ったこっちゃないんだけど。
575NAME IS NULL:2006/09/27(水) 00:02:01 ID:???
VodaはDoCoMoやauと違って絵文字でややこしいことになって、結局Binaryで誤魔化したような記憶が。
576NAME IS NULL:2006/09/27(水) 00:16:57 ID:???
sjisに対応しませんで済むクライアントなんて存在しない。
携帯サイトってのはすべての携帯からアクセスできることが要求される。

utfでサイト作ってはしご高を入力させて、メール(jis)で使えないってのはよくあるパターン。
577NAME IS NULL:2006/09/27(水) 00:56:34 ID:???
>>574
お前のポリシーも知ったこっちゃないけどなww

>>576
>sjisに対応しませんで済むクライアントなんて存在しない。

ああ、なんて可哀相な下請け屋さんの歯車A、>>576氏。
578NAME IS NULL:2006/09/27(水) 01:18:26 ID:???
   / : 》:、∩
  (===○=)/  この中に一人テンパッてる人がいまーす
__ /  ⇔ /
\⊂ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||
579NAME IS NULL:2006/09/27(水) 01:34:15 ID:???
数年後には、みんなunicodeつかってるだろうな
そんときも、強気でいられるかねえ
態度豹変して、sjisくそとかいってたりして
580NAME IS NULL:2006/09/27(水) 08:46:15 ID:???
不確実な未来を気にして現実が見えていない
そんな人がどこかに居ました。
581NAME IS NULL:2006/09/27(水) 11:45:23 ID:???
おもくそスレ違いなんだが、
正直、今時は提案次第なんジャマイカ?

うちは代理店切ってから、
ナンセンスな「あーしろ」「こーしろ」ってことが無くなって快適。
582NAME IS NULL:2006/09/27(水) 12:36:18 ID:???
>>579
は? 誰に対して言ってんだ? 「sjisくそ」は誰にとっても常識だろう。

>>581
要は下請けで末端労働者をやるか、元請けで自分の責任で創造するか、その違いだな。
583NAME IS NULL:2006/09/27(水) 12:37:30 ID:???
sjisの携帯持ってる香具師を相手にしなくて良いなんて良い身分だな。
どんな携帯サイト?
584NAME IS NULL:2006/09/27(水) 13:07:56 ID:???
いいねシロートプログラマは。
サイトはページビューが命。ページビューのためならSJISだろうがUTF8だろうが
なるべく多くのキャリヤ・機種をサポートすることを目指すべき。
自分の文字コードのポリシーなんぞ糞食らえ。
文字コードオタ。ビジネスセンス磨け。
585NAME IS NULL:2006/09/27(水) 13:16:59 ID:???
>>582
一回でも、携帯キャリアと直接仕事してみろって。
キャリアに向かって、
「SJIS糞だからSJISしか表示できない機種はサポートしません」
と言ってみろってw
言っておくが、脳内での数年先の事じゃないよ。
リアルな今、現在の話だからね。

586NAME IS NULL:2006/09/27(水) 14:19:31 ID:???
sjisは糞だから、MySQLでは使いません、で何の問題があるのだろうか…

sjisが必要なら、View part で変換してやれば良いだけだろ。
587NAME IS NULL:2006/09/27(水) 15:16:00 ID:???
>>586
その提案は全く問題なし。
携帯サイトの話し。
588NAME IS NULL:2006/09/27(水) 15:20:36 ID:???
はいはい、皆さんこっちでやろうね。


【モバイル】携帯電話向け開発について語るスレ
http://pc8.2ch.net/test/read.cgi/php/1144504375/l50

携帯端末用のWeb制作10
http://pc8.2ch.net/test/read.cgi/hp/1150381091/l50
589NAME IS NULL:2006/09/27(水) 17:44:10 ID:???
結局mysqlでサイト構築するならどの文字コード使うよ?
590NAME IS NULL:2006/09/27(水) 17:48:51 ID:???
GB2312
591NAME IS NULL:2006/09/27(水) 18:19:11 ID:???
ASCII
592NAME IS NULL:2006/09/27(水) 18:26:45 ID:???
要するに携帯ビジネスに係わると心まで腐りきるって事だな
593NAME IS NULL:2006/09/27(水) 19:16:00 ID:???
文字コードは何を使おうがかまわんが、まともなエンジニアを使う必要がある。
594NAME IS NULL:2006/09/27(水) 20:03:22 ID:???
しかしまともだったエンジニアも携帯に染まって邪悪になる
595NAME IS NULL:2006/09/27(水) 22:02:41 ID:???
まずは「まともなエンジニア」を定義しなきゃな
「まともなエンジニア」なら「文字コードは何を使おうがかまわん」とはいわないと思うがな
596NAME IS NULL:2006/09/27(水) 22:21:41 ID:???
sjis 糞
EUC UTF8 sjisの一部の文字が変換できなくて文句が出る

というわけで、binaryにして好みの変換処理させるってことで終了
597NAME IS NULL:2006/09/27(水) 22:31:33 ID:???
「まともなエンジニア」とは
携帯ビジネスに手を染めた事がなく、コード系にSJISは使わないエンジニアの事
598NAME IS NULL:2006/09/27(水) 23:15:14 ID:???
つまり誰もが言いたいのは、
「俺が一番まともなエンジニア」
ってことで糸冬了
599NAME IS NULL:2006/09/27(水) 23:42:28 ID:???
まじめな話、MySQLのcharsetはasciiにしておいて、UTF-8の文字列を突っ込むのが一番良いと思う。
600NAME IS NULL:2006/09/27(水) 23:45:48 ID:???
>>599
ばーか
601NAME IS NULL:2006/09/28(木) 01:24:14 ID:???
基本的にスクリプトもDBも全部EUCで統一。
あとは携帯向けに入出力する時だけ、
入力直後・出力直前に文字コード変換かませばOK。

携帯のために内部エンコーディングまでSJISにするバカがいるのだろうか?
602NAME IS NULL:2006/09/28(木) 01:38:47 ID:???
>>601
携帯屋と話すると、DBをSJISにしろSJISにしろと煩いよほんと
apacheなんか、sjisしか受け付けないように設定されていて、
euc/utfのhtml入れると確実に化ける

携帯屋のレンタルサーバ最悪
603NAME IS NULL:2006/09/28(木) 01:49:58 ID:???
>>596
> EUC UTF8 sjisの一部の文字が変換できなくて
これ何て字?
604携帯屋2号店:2006/09/28(木) 09:41:12 ID:???
>>602
SJISにしろ
605NAME IS NULL:2006/09/28(木) 09:43:14 ID:???
携帯用途でeuc/utfを使おうとするのが間違い。
逆にeuc/utfがまともに表示できたら携帯で見れなくなってクレーム出るよ。

SJIS入力からEUC記録と、EUC記録からSJIS出力でたくさんの情報が失われる訳だが。
SJISで入出力する可能性があれば、SJISで記録しとくのが鉄則。
606NAME IS NULL:2006/09/28(木) 10:27:59 ID:???
まあ、そうだな。
でもJava(JDBC)とかでは強制的にUnicode変換が行われるわけだが。
607NAME IS NULL:2006/09/28(木) 10:54:58 ID:???
絵文字、マル数字 (出るかテスト@AB)色々ある罠。
608NAME IS NULL:2006/09/28(木) 11:49:21 ID:???
Javaでもバイナリで扱えばいいよ。
もちろん独自拡張しないと使えないが。
つーか日本語自体stringとして扱えないし。
609NAME IS NULL:2006/09/28(木) 13:02:04 ID:???
うちは全部NECJISで統一。
610NAME IS NULL:2006/09/28(木) 13:14:41 ID:???
ホント携帯のSJISは公害だな。
腐れSJISに対応させるためのコストは全て携帯電話会社が負担すべきだ。
俺なら開発当時に決定を下した技術者は全員縛り首にする。
611NAME IS NULL:2006/09/28(木) 13:21:25 ID:???
>607
絵文字はともかくマル数字くらいUTF8にもあるだろ。
それは変換元文字コードの指定が変なんじゃね?
SJISっぽいのと言ってもCP932とか色々ごちゃごちゃしてるし。
612NAME IS NULL:2006/09/28(木) 13:30:39 ID:???
前から疑問だったのは○ゼロが無いこと
613NAME IS NULL:2006/09/28(木) 16:46:35 ID:???
じゃ、この話、MSが諸悪の根源で OK?
614NAME IS NULL:2006/09/28(木) 17:16:29 ID:???
OK。
有名なところでは、WAVE DASH→FULL WIDTH TILDEとかな。
615NAME IS NULL:2006/09/28(木) 17:45:20 ID:???
MSはなにかにつけ諸悪の根源
616NAME IS NULL:2006/09/28(木) 19:54:27 ID:???
>>613
ぐぐったところアスキーの山下良蔵という男が犯人らしい。
いままで西和彦か古川享が犯人だと思ってたよ。
617NAME IS NULL:2006/09/28(木) 21:09:21 ID:???
文字コードの話はどっか他所でやってくれ
618NAME IS NULL:2006/09/28(木) 21:39:40 ID:???
誰も話に出してないが携帯屋が文字コードを変えないのにこだわるのは
携帯独自文字のせいジャマイカ
619NAME IS NULL:2006/09/28(木) 21:47:23 ID:???
MSは諸悪の根源。
windowsも、それを使う馬鹿も諸悪の根源
620NAME IS NULL:2006/09/28(木) 21:49:56 ID:???
どこの店でもそうだ、windows関連商品周辺はドブ臭い。
621NAME IS NULL:2006/09/28(木) 21:53:11 ID:???
でもウィンドウズが無かったら日本のインターネットはこんなに発展しなかったけどな。
ユニックスユーザだけじゃUUCPばっかりで全然だめだったし。

SJIS対応携帯が出た頃には、まだ静的HTMLが主流だったからな。
裏にDBがあるような動的生成のページなんて考慮しなくてよかった。

今はutfでいいけど、10年後のウェブを予想して製品作るのはムリポ。
622NAME IS NULL:2006/09/28(木) 22:43:32 ID:???
法律で更新に制限がある機器に、発展中の規格・仕様を盛り込んで発売しているのがそもそもの原因じゃね?
SJISしか使えないブラウザをファームで組み込んだメーカーが一番馬鹿だと思うが。
623NAME IS NULL:2006/09/28(木) 23:10:17 ID:???
うちに注文なさい。
文字コードなど面倒なことは全てうちで吸収し納品しますよ。
お客さんはコンテンツ作成に集中してください。
ええ、それが仕事ですから。
624NAME IS NULL:2006/09/28(木) 23:19:24 ID:???
SJISからUTF-8に変換して困るのって、メジャーどころではどんな文字があるの?
625NAME IS NULL:2006/09/28(木) 23:38:18 ID:???
>>624
別に無いよ。
cp932をsjisだと勘違いして、utf-8に変換しようとすると、できない文字があるだけ。
626NAME IS NULL:2006/09/29(金) 01:03:09 ID:???


627NAME IS NULL:2006/09/29(金) 01:17:16 ID:???
628NAME IS NULL:2006/09/29(金) 08:31:43 ID:???
>>625
そんなのあるん?
629NAME IS NULL:2006/09/29(金) 11:27:35 ID:???
MSのOS上で、sjis、sjisと呼ばれているものは、実際にはsjisでは無く、cp932と言う文字コード。
大概のweb言語(そういう言語カテゴリーがあるかどうかは置いとく)で、文字コード変換の際に、sjisとcp932は別物として扱える。

そこら辺をごっちゃにして、cp932をsjisであると指定して、utf-8に変換すると、怪しい事が起こる。そんだけ。
630NAME IS NULL:2006/09/29(金) 13:19:13 ID:r+KcQpd7
>>629 これ重要!! 来週テストに出るよ!
631NAME IS NULL:2006/09/29(金) 16:22:09 ID:???
マジかよ
632NAME IS NULL:2006/09/29(金) 21:39:59 ID:???
>>627 の内容見てからモノ言えよ

ちなみに、sjisとcp932を別の物として扱うのはiconv使っている物やDBが殆どで、
apacheなんかはsjis/euc/utf8の区別しか存在しない。(文字コード変換しないからいいじゃねーかと言われればそうなんだが)

nkfにもcp932なんて分類は無いな
633NAME IS NULL:2006/09/29(金) 21:48:31 ID:???
まぁ、普通はcp932の別名の、sjis-winとかだろうからなぁ…
634NAME IS NULL:2006/09/29(金) 21:53:41 ID:???
>>632
>>627の内容こそが、cp932の説明じゃないの?

原因
Code Page 932 テーブルは相互変換できない (一方向への変換は行えるが逆方向への変換が行えない) 重複コードを含みます。これらの重複コードは、NEC エンコードのために必要です。

Code Page 932 ってcp932の事でしょ。
635NAME IS NULL:2006/09/29(金) 21:57:50 ID:???
まるでGPLv3のようだ
636NAME IS NULL:2006/09/29(金) 22:24:47 ID:???
旧shift-jis = JIS1,2水準
cp932 = JIS1,2水準+IBM拡張漢字+NEC拡張漢字
sjis = JIS1,2水準+JIS3,4水準

JIS3,4水準が制定されたとき、IBM拡張漢字+NEC拡張漢字が使ってた領域と重なる形で
JIS3,4水準漢字を割り振ってしまったので互換がなくなった。
(重ならない形での拡張は漢字2バイト固定を守ると不可能だった。)
NECとIBMが「新旧コードが入り混じって混乱するだけ」と反対したが押し切られた。
結果その通りになった。

shift-jisはJIS1,2水準のまま留めて、unicode系やiso-2022系の体系へ
移行するべきだったのだろうね。とくに携帯。
637NAME IS NULL:2006/09/29(金) 22:34:04 ID:???
>>636
それもあるけど、それだけじゃない。
cp932とShiftJISはユニコードに変換する時の変換テーブルが違う。
(これについてはeucjp-msとeuc-jpについても同様)

なので、JIS第1、2水準の文字だけを使っていても、
ユニコード系の文字列(utf-8とかucs2とか)から
レガシーエンコディングにするとひどい目にあったりするのですよ。
638NAME IS NULL:2006/09/29(金) 23:17:40 ID:???
charset=cp932なんてページは無いしRFCにも無いよ。
ウェブの世界ではcharset=SJISしか指定できない。
どう扱うかはブラウザ依存。
IEなんてutfで送ってくる場合も有るし。
639NAME IS NULL:2006/09/29(金) 23:33:17 ID:???
640NAME IS NULL:2006/09/29(金) 23:51:12 ID:???
>>638
わからんかな?
charset=SJISで指定してやると、winからの入力は、shift-jis コードでは無く、cp932コードで返してくる。
だから、そのcp932コードを、shift-jis コードだと思って、utf-8に変換何かをするとえらい目に会う。そう言う話。

でだ、例えばPHPなんかでは、
$str = mb_convert_encoding($str, "UTF-8", "SJIS-WIN");
てな感じでutf-8に変換してやると良い感じだよ、と言う話をしている。

sjis-winってのは、cp932の別名だ。
641NAME IS NULL:2006/09/29(金) 23:57:17 ID:???
なんていうか、文字コードの話って結構かみ合わないよね
642sage:2006/09/30(土) 00:07:03 ID:cXhqQ9DZ
>>641
コードが合っていないんだからな
643NAME IS NULL:2006/09/30(土) 00:07:06 ID:???
JIS規格決めた馬鹿役人どもは親類縁者に至るまで全員死刑にするべきだな
644NAME IS NULL:2006/09/30(土) 01:15:59 ID:???
VistaではちゃんとUnicodeにしてくれるの?
645NAME IS NULL:2006/09/30(土) 01:34:37 ID:???
w2kからすでにユニコード。
問題なのは携帯も含めた家電って10年ぐらいは平気で使われるってこと。
インターネットの進化のスピードには馴染まない。

STBとかインターネット家電なんかでも同じ問題を抱えている。

そもそも日本人の居ないところで国際規格が決まってるから不整合は多い。
マイナー言語の宿命。
英語圏はlatin1もiso8599もユニコードも全く問題無いし。
646NAME IS NULL:2006/09/30(土) 01:46:14 ID:???
5.0 と 5.1 と 5.2 の位置付けがよくわかりません。

5.0→安定板?
5.1→???
5.2→開発版?
647NAME IS NULL:2006/09/30(土) 02:13:46 ID:fG+IXpWd
アンケート中です。
飛んできた板名をメール欄に入れてから書き込みしてください。

【栄枯】バブル期に流行ったホテルを語る【盛衰】
http://travel2.2ch.net/test/read.cgi/hotel/1158055575/
648NAME IS NULL:2006/09/30(土) 03:23:18 ID:???
ホントに文字コード乱立は頭に来るね。
しかも日本語コードに外人が関わると余計に無茶苦茶になる。

こうなったら
「日本人の、日本人による、日本人のための統一日本語コード」
を制定すべきだな。今すぐ。
649NAME IS NULL:2006/09/30(土) 05:25:20 ID:???
つTRONコード
650NAME IS NULL:2006/09/30(土) 07:45:51 ID:???
>>648
今更増やさん方がEと思うがね。
651NAME IS NULL:2006/09/30(土) 08:39:16 ID:???
>>648みたなのはヒッキー日本人が考えそうなことだw



ほとんどのソフト開発は外人がやってるんだから、あたりまえじゃねえかw
UTF-8対応してるだけでも、ありがたいと思えw
652NAME IS NULL:2006/09/30(土) 11:56:51 ID:???
日本語でうだうだやってる時点で規格作りには参加できないのが日本人。
反日のチャンコロにむちゃくちゃな提案されてしまって規格化されてしまうのがヲチ。
653NAME IS NULL:2006/09/30(土) 12:10:04 ID:???
声が大きい奴ってのはたいていキチガイだからな
654NAME IS NULL:2006/09/30(土) 12:17:39 ID:???
歴史的には、EUCの方がSJISより後に出てきたんだけどな。
655NAME IS NULL:2006/09/30(土) 12:23:28 ID:???
MySQLは、日本人のため「だけ」にあるソフトじゃねえんだよw
勘違いすんな、くそジャップ

どうぞどうぞ、携帯はsjisでやってください
日本の携帯なんて外人は使いませんから
656NAME IS NULL:2006/09/30(土) 12:26:54 ID:???
アパルトヘイトキタ━━━━━━(゚∀゚)━━━━━━ !!
657NAME IS NULL:2006/09/30(土) 13:52:00 ID:???
>>651
>ほとんどのソフト開発は外人がやってるんだから

だからこそ、「日本人による、日本人のための」って言ってんだろうがクズ野郎。
技術者にはテメーみたいな日本語もロクに理解できないバカが多いから、
この文字コードの異常性を誰も指摘できず、外人の押し付けを甘んじて受けてるんだろ。
このチンカスどもめ。
658NAME IS NULL:2006/09/30(土) 14:01:47 ID:???
>>656
きみ声大きいお
659NAME IS NULL:2006/09/30(土) 14:04:20 ID:???
>>657
出た、月9ドラマなみの綺麗事だけ理想論者。実現できもしないのにw
660NAME IS NULL:2006/09/30(土) 14:06:51 ID:???
まぁそろそろスレ違いごっこも飽きてきた感じで。
661NAME IS NULL:2006/09/30(土) 14:07:18 ID:???
流れを切ってすみません、MySQLで質問です。
なぜ>>657はこんなに取り乱してるのですか?
662NAME IS NULL:2006/09/30(土) 17:36:49 ID:???
>>657
だったらHiRDBでも使えよ。
あれ日本人が作ったんだろ。
663NAME IS NULL:2006/09/30(土) 18:32:48 ID:???
MySQL+PHPでApache2よりSSL通信で接続する際にエラーメールが届くようになりました・・・・・。

Starting MySQL................................... ERROR!
(13)Permission denied: make_sock: could not bind to address [::]:443
no listening sockets available, shutting down
Unable to open logs

これってどうやって直るんでしょうか?回答お願いします。
664NAME IS NULL:2006/09/30(土) 18:59:10 ID:???
>>663 他に理由あるかもしらんが、
httpd を root からでなく起動してると
そうなる。
665NAME IS NULL:2006/09/30(土) 19:05:50 ID:???
権限がなくて443ポートが作れないんだろ
ポート0-1023まではたしかroot権限が必要なはず
666NAME IS NULL:2006/09/30(土) 21:15:46 ID:???
文字コードでこんだけもめるのは、
6割がほとんど文字コードのことを理解していない、
4割が分かったつもりで分かってない、
で、だいたい理解しているってレベルですら、ほんの一握りしかいない、
ってのが原因と思われ。

>>657
当然ながら、今までの策定経緯を知った上でほざいてんだよな?
667NAME IS NULL:2006/10/01(日) 01:17:59 ID:???
知ってる。
馬鹿とキチガイとヤクザと腐れ官僚が集まって糞尿を掻き混ぜていた。
668NAME IS NULL:2006/10/01(日) 02:21:29 ID:???
>>667
おまえキチガイだろw
669NAME IS NULL:2006/10/01(日) 05:05:41 ID:???
>>666みたいな知ったかが一番困る。
能書きだけ垂れて、結局現状を何も変えることが出来ない。

>>666は、小泉改革を批判してたバカ抵抗勢力などと全く同じ類のキチガイ。
670NAME IS NULL:2006/10/01(日) 05:20:36 ID:???
sjis厨は日本人による日本人のためだけのDBでもつくってなさいよ
期待してるぞ(大爆笑
671NAME IS NULL:2006/10/01(日) 08:42:14 ID:???
ここはDB板なわけだが
これはもうだめかもわからんね
672NAME IS NULL:2006/10/01(日) 09:21:45 ID:???
utf使えば良いじゃん。おまいらアフォ。

歴史的にはjis(iso-2022-jp)が最初。昔は7ビットしか通らなかったし。
673NAME IS NULL:2006/10/01(日) 09:36:50 ID:???
だからさぁ、文字コードの問題は、専門のスレでも立ててそこでやれよ。
674NAME IS NULL:2006/10/01(日) 15:58:31 ID:???
あーあ
なんでMySQLに文字コード機能なんてついちゃったんだろ
675NAME IS NULL:2006/10/01(日) 18:26:24 ID:???
>>670
なんでそうなるんだよバカが。
まず最初にsjisこそ無くすべきなのに。
676NAME IS NULL:2006/10/01(日) 18:32:38 ID:???
文字コードネタはMySQLに限らないネタなんだから、
別スレでもたてて他でやってくれないか?
677NAME IS NULL:2006/10/01(日) 18:49:56 ID:???
まあ4.1で味噌を付けたからな。
あれでMySQLの日本語処理はダメダメみたいな感じになったし。
678NAME IS NULL:2006/10/01(日) 19:14:19 ID:???
>>675
sjis無くなったら困るんじゃー
679NAME IS NULL:2006/10/01(日) 23:09:30 ID:???
携帯のバックエンドでmysql使うならsjisは必須。
オラクルがsjis対応してるから、携帯の案件ではmysql使わなければ良い話だったりするが。
680NAME IS NULL:2006/10/01(日) 23:12:18 ID:???
4.0以前のように、文字コード依存せずに単に入れて出すだけにするのがシンプルでわかりやすくて問題も起きないだろ。

文字コード変換したい奴は自分でやれよ

50音順とかの特殊ソートしたい奴も自分でやれ

これで万事解決
681NAME IS NULL:2006/10/02(月) 00:39:28 ID:???
mysqlのbulk insertっていう機能について質問です。

この機能は、複数のデータを一回でinsertしてくれるらしいのですけど、
既に登録済みとかで、insertに失敗した場合、失敗した分のデータを取得することは
できますか?
682NAME IS NULL:2006/10/02(月) 00:50:20 ID:???
>>680
多分遊びで使ってるんだろうからそれでいいって言ってんだろうが、
そんなこっちゃエンタープライズに適わんだろ。
683NAME IS NULL:2006/10/02(月) 01:06:22 ID:???
実際は「文字コード変換は自前で」って方が解りやすくあるとは思う。
バイナリで保管汁!ってのもアリはアリだろう。
684NAME IS NULL:2006/10/02(月) 01:20:38 ID:???
685NAME IS NULL:2006/10/02(月) 02:06:46 ID:???
SQLインジェクションが無くならないわけだ。
686NAME IS NULL:2006/10/02(月) 08:35:26 ID:???
プリペアドステートメント使ってればSQLインジェクションと無縁?
687NAME IS NULL:2006/10/02(月) 10:07:51 ID:???
>>682
出来合いの機能を使うだけがエンタープライズじゃない

出来合いの機能しか使えないなら大規模設計・構築なんか辞めておけ
688NAME IS NULL:2006/10/02(月) 14:04:23 ID:???
>>687
出来合いの機能?
多用途にリソースと接続できることのメリットを言ったんだが?
だから単機能的に遊びで使ってんだろう?と。
689NAME IS NULL:2006/10/02(月) 15:52:28 ID:???
>>686
プリペアドステートメントの実装がエミュレーションだと駄目だよ。
中でsprintf()してるだけだったり。PHPのdbxはそう。
sqliteの何かの言語のライブラリもそういう実装になっててボカーンとした記憶がある。
無自覚にSJIS使ってるような連中がプリペアドステートメント使うとは思えんけど。
690NAME IS NULL:2006/10/02(月) 21:01:52 ID:???
全文検索をしようとMySQLにSennaを組み合わせようと思っています。
Sennaの制限から、テーブルはMyISAMになります。
そうなると行レベルロックができなくなってしまいます。

データの更新がそれなりにあると予想されるので
なるべくロックの粒度を小さくならないかと思い、
MySQLのパーティショニングというのを見つけたのですが、
これを使えば、一つのパーティションだけロックをかけたり出来ないでしょうか?
一応探したのですがはっきりとした情報が見つかりませんでした。

MySQLのバージョンはなるべく新しいのが良いですが、
今のところ特にこだわってはいません。
宜しくお願いします。
691NAME IS NULL:2006/10/02(月) 21:24:16 ID:???
>>690
もしかして、Sennaで行レベルロックをしたいという話?
もう一回、Sennaのマニュアルをよく読んでみれば?
692NAME IS NULL:2006/10/02(月) 22:00:24 ID:???
更新を少なくすることを考えた方がいいんじゃないの?
693NAME IS NULL:2006/10/02(月) 22:41:05 ID:???
>>690
Sennaがもたらすメリットの方が多分上回るかと。速いよ。
694NAME IS NULL:2006/10/02(月) 22:44:11 ID:???
そもそも、そのレベルでSennaを組み合わせたMySQLをビルド出来るのかと、、、
695NAME IS NULL:2006/10/03(火) 09:34:14 ID:???
>>691
Sennaがトランザクションの実装が出来ていないためInnoDBが使えない。
ということみたいなので、Sennaと行レベルロックは直接関係ないようです。
なので、MyISAMでパーティションレベルでのロックはどうなっているかという話なんですが。

>>692
多数のユーザーが頻繁に書き込むシステムなので不可能です。

>>693
問題なのは検索の速さではなく、同時更新時のパフォーマンスです。

>>694
696NAME IS NULL:2006/10/03(火) 11:44:21 ID:???
多数のユーザが書き込むデータベースと全文検索のデータベースを分けることは考えないの?
697NAME IS NULL:2006/10/03(火) 17:42:13 ID:???
mysqlでエンタープライズって無謀です。オラクル買え。

なんとなく全文検索ってそういう用途は向いてないと思う。単純に言うと設計が悪い。
常にリアルタイムで全文検索できないと逝け無いの?
普通は索引鯖を別において、そっちで定期的(一時間毎とか)に索引生成だよ。
具体的な用途が気になるなあ。
698NAME IS NULL:2006/10/03(火) 21:17:53 ID:???
レプリケーションすれば?

の一言で終わると思うが。


オラクル買ってもいいんだろうけど、>>690のレベルだとナニ使っても
かわらんような希ガス。
699NAME IS NULL:2006/10/03(火) 21:57:13 ID:V7gZVpYY
WindowsXPで、MySQL-4.1.20を使用しています。

CREATE TABLE文で、

password VARCHAR(255) NOT NULL,

というカラムを持つテーブルを作成しようとすると、

Syntax error or access violation: 1071 Specified key was too long; max key length is 1024 bytes

というエラーが発生します。
ここで指されているキーとは一体何を指すのでしょうか。
ご教示お願いします。
700NAME IS NULL:2006/10/03(火) 22:14:48 ID:???
>>699
コウモリかなんかの鳴き声じゃね?
701NAME IS NULL:2006/10/03(火) 22:22:23 ID:???
>>698
いいかげん他人を侮辱するのは辞めたほうがいいと思います。
むしろあなたの程度が知れます。
702NAME IS NULL:2006/10/03(火) 22:30:58 ID:???
>>699
すでにこのスレで語り尽くされた事だが、、、

Windowsを使うのが悪い。

703698:2006/10/03(火) 22:31:10 ID:???
漏れは今日はじめてカキコしたのに、なんでこんな事言われるんだろう?

被害妄想逞しい690だな
704699:2006/10/03(火) 22:43:14 ID:???
PHP+MySQLなので、実用段階での動作環境はUNIX系になるのですが、開発はどうしてもWindowsですねぇ・・・・
とりあえず利用できる最大文字数の241byteで一次しのぎをしておきます。
705NAME IS NULL:2006/10/03(火) 22:57:01 ID:???
WindowsにVMware仕込んでMySQL動かせば?
706NAME IS NULL:2006/10/03(火) 23:24:55 ID:???
>>699
アンチWin厨はスルーしる。

そのカラム自体とは関係ないんじゃないか?
そのテーブルのキーの定義はどうなってる?
707699:2006/10/03(火) 23:31:22 ID:???
>>706
任意文字列で最大100byteのidと、パスワードのハッシュ保存用で最大255byteのパスワードがプライマリになっています。
708NAME IS NULL:2006/10/03(火) 23:35:41 ID:???
>>698
レプリケーション?
「多数のユーザーが頻繁に書き込むシステム」って言ってるぞ。
709NAME IS NULL:2006/10/03(火) 23:39:23 ID:???
>>699
参考になるかわからんが
http://moodle.org/mod/forum/discuss.php?d=51988
710NAME IS NULL:2006/10/03(火) 23:41:31 ID:???
レプリケーションで正しいのでは?
更新系はマスターにしておいて全文検索は複数のスレーブに割り当てるって意味だろ。

MySQLのマスターからスレーブの転送は非同期だし。
711NAME IS NULL:2006/10/03(火) 23:53:12 ID:???
あるテーブルと同じスキーマをもったテーブルを、名前を指定して新しく作成するには
どうすれば出来ますか?
712NAME IS NULL:2006/10/04(水) 00:43:19 ID:???
>>711
CREATE TABLE hoge LIKE fuga;
713NAME IS NULL:2006/10/04(水) 01:39:51 ID:???
>>712
ありがとうございました。
714NAME IS NULL:2006/10/04(水) 01:51:38 ID:???
idとpassならldapに遣らせた方が良いと思うけどなあ。
rdbでもできるけど明らかに機能過剰で遅い。
ldapならphpからも扱えるよ。

ttp://www.php.net/manual/ja/ref.ldap.php
LXVIII. LDAP 関数
715NAME IS NULL:2006/10/04(水) 01:55:27 ID:???
ちなみにldapもレプリケータできるので負荷分散可能。
716NAME IS NULL:2006/10/04(水) 14:55:01 ID:???
「元から入っている値」に +1 した数をインサートしたいのですが、どのようなやり方になるでしょうか?
ご教示お願い致しますm(_ _)m
717NAME IS NULL:2006/10/04(水) 15:26:31 ID:???
>>716 update文一発で書ける方法があったような・・・
718NAME IS NULL:2006/10/04(水) 15:52:41 ID:???
>>717さん
一回セレクトでとってその値に+1する手もあるのですがそれだと効率悪くて。。。
もし思いだいましたらお教えくださいませm(_ _)m
719NAME IS NULL:2006/10/04(水) 16:01:04 ID:???
>>718
教えてよう。でも次回からはググレ。
insert into hoge (a) select max(a)+1 from hoge;
720NAME IS NULL:2006/10/04(水) 16:09:31 ID:???
>>719さん
ありがとうございます!!m(; _ ;)m
次回からはもっとぐぐります!
こうゆう抽象的な事例は検索が難しいですね。。
721NAME IS NULL:2006/10/04(水) 21:50:17 ID:???
VIEW は作成したら DROP VIEW するまで消えることはないのですか。
サーバの再起動してもいいですか。
722NAME IS NULL:2006/10/04(水) 21:57:37 ID:???
>>721
ふつうなら消えないね。
心配ならやってみりゃいーじゃん。
723NAME IS NULL:2006/10/05(木) 13:31:00 ID:???
dateというフィールドに、now()をinsertして、
ORDER BY date DESC と指定しても、日付順に表示されないのですが
どうすればいいでしょうか?
724NAME IS NULL:2006/10/05(木) 13:47:02 ID:???
>>723
型とかクエリとか見直してみればいいと思うよ
725NAME IS NULL:2006/10/05(木) 15:34:55 ID:???
dateをidとかにすると正常にid順で動きます。
dateの型は、dateにしています。
726NAME IS NULL:2006/10/05(木) 15:59:00 ID:???
>>725
dateは予約語なので、フィードに使うならクォートが必要。
これらのキーワードでググってみ。
727NAME IS NULL:2006/10/05(木) 18:56:18 ID:???
>>726
ありがとうございます!でも、探し方が下手で見つからないです。。
すいません。
'date'みたいにするのではないですよね?
これだと、エラーが出ちゃいます。。
あと、予約語と知ったので、フィールド名をupdayみたいに変えても
結果が変わらなかったですが。。ホントへたれですいません。
728NAME IS NULL:2006/10/05(木) 19:08:00 ID:???
>>727
MySQLのバージョンと、どうソートされないのかを書いて
729NAME IS NULL:2006/10/05(木) 19:10:00 ID:???
>>727
インサートしたデータは正しいの?
同じ日付とかじゃないの?
730727です:2006/10/05(木) 20:01:42 ID:???
すいません。同じ日付でした。
date型は時間は含まれないのですね。だから、順番どおり表示されなかったっぽいです。
datetime型に変えたら、ちゃんと表示されるようになりました。
でも、date型だと、同じ日付の場合ってどうゆうふうに順番が決まるんですか?
731NAME IS NULL:2006/10/05(木) 21:46:20 ID:???
>>730
疲れる原因だな。
同じ場合の順番は取り出した順番だろうがそんなのどうでもいいじゃね。
732NAME IS NULL:2006/10/05(木) 22:10:56 ID:???
>>730
データベースの都合がいい順。
733NAME IS NULL:2006/10/06(金) 00:21:19 ID:???
オートインクリメントのカラムを作っておいて、そのカラムをorder ascすると挿入順で表示されるよ。
エクセルとかアクセスみたいに表状の入れ物を想定してると、rdbでは理解がしにくいかもね。
全く別物だから違う概念として認識する癖をつけておいた方が良い。
734NAME IS NULL:2006/10/06(金) 08:24:47 ID:???
timestamp型にしときゃいいじゃん
んで取り出すときにDATE_FOMAT
735NAME IS NULL:2006/10/06(金) 08:50:14 ID:???
>>734
timestampはUPDATEで更新されちゃうからなー。
736NAME IS NULL:2006/10/06(金) 10:03:55 ID:???
データベースからデータをとる場合
入ってる情報が1つのときや1万のときでも負荷は変わらないんですか?
変わる場合、どれくらい違うものなんでしょうか?
737NAME IS NULL:2006/10/06(金) 10:47:35 ID:???
>>736
負荷って何を指して言ってる?時間?機材?
100万件のデータがあるので、検索に5分かかりますというのが
通用すると思うか?また、1つの株に10万件のアクセスが同時に来たら?
あまりに漠然としていて、ケースバイケースとしか答えられない。
738NAME IS NULL:2006/10/06(金) 11:33:15 ID:???
>>753
TIMESTAMP型のカラムを2つ以上作っておくといいよ
739NAME IS NULL:2006/10/06(金) 12:34:23 ID:???
株屋?

1万程度なら簡単に検証できるだろうから、カキコする前に結果を晒してみたら?
740NAME IS NULL:2006/10/06(金) 12:59:50 ID:???
>>736
取り出すのにかかる負荷は変わらないよ
容量が大きい分コストパフォーマンスはかかる
>>737,>>739
「相対的且つ複合的に」ってことじゃなくて?
頭固いッスね、おっさんたち
741NAME IS NULL:2006/10/06(金) 13:38:17 ID:???
>>739
じゃ、よろしく。
742NAME IS NULL:2006/10/06(金) 17:21:39 ID:???
>>736
変わる。データ量が少ない方が負荷が少ない。当たり前だろ。

>>740
頭柔らかすぎて脳味噌溶けてるぞ。
743NAME IS NULL:2006/10/06(金) 17:42:52 ID:???
>>741
まだかよ。残業して待ってるし、急ぎなんだが。
744NAME IS NULL:2006/10/06(金) 18:03:50 ID:???
You は shock
745NAME IS NULL:2006/10/06(金) 18:07:36 ID:???
>>743
担当は739
746NAME IS NULL:2006/10/06(金) 18:29:29 ID:???
今7800件目だ、もう少し待ってくれw
747NAME IS NULL:2006/10/06(金) 21:12:01 ID:bDRzLVyV
すまんおしえてくれ。
テキストボックスが4つくらいあってその中に文字入れて
DBから抽出したいんだが。
WHERE〜ANDで結ぶとテキストボックスに全部入力値がないと
抽出できないじゃん。
空欄のテキストボックスはスルーして入力された単語のみで
抽出するにはどうすればいいの。。。
748NAME IS NULL:2006/10/06(金) 21:23:37 ID:???
MySQL関係ねーじゃん
WebProg板で質問しる

△▲ WebProg 初心者の質問 pert14▲△
http://pc8.2ch.net/test/read.cgi/php/1151501830/

【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/

Perlコーディング初心者質問スレ Part 52
http://pc8.2ch.net/test/read.cgi/php/1158296511/
749NAME IS NULL:2006/10/06(金) 21:28:12 ID:???
>>747
1,入力値の有無を判定してWHERE句を文字列連結で作る
2.完成したSQLを使ってPREPARED STATEMENTを作る
3.PREPARED STATEMENTに入力値を入れて検索する
750NAME IS NULL:2006/10/06(金) 22:02:28 ID:???
>>735
TIMESTAMP DEFAULT CURRENT_TIMESTAMP
だと、UPDATE時にも更新されない。
751NAME IS NULL:2006/10/06(金) 22:08:39 ID:bDRzLVyV
>>749
難しそうだけど調べてみます
752746:2006/10/06(金) 22:28:12 ID:???
今7811件目
753NAME IS NULL:2006/10/06(金) 23:31:30 ID:???
げ!クライアントが無理言ってきた。
order by で 1 2 3 じゃなく 2 1 3 とか任意に並べる方法ってある?
別なカラム作るしかないかな・・・
754NAME IS NULL:2006/10/06(金) 23:35:17 ID:???
>>753
別に無理でもなんでもなく、良くある作りじゃないの?
別テーブルで、プライマリーキーと並び順を持たせておいて、
LEFT JOINで繋げて、ORDER BY
755NAME IS NULL:2006/10/06(金) 23:37:28 ID:???
>>754
なるほど、ありがトンやってみる!
756753:2006/10/06(金) 23:53:27 ID:???
>>754
できた!ありがトン! ・・で、次の改善要求はっと・・(汗
757NAME IS NULL:2006/10/07(土) 05:23:55 ID:???
よくWebと分かったな。慧眼。
758NAME IS NULL:2006/10/07(土) 05:25:42 ID:???
あ、>>748つけ忘れ
759NAME IS NULL:2006/10/07(土) 16:50:05 ID:???
現場はむちゃくちゃな要求が来るからねえ。
今日入力したデータ間違ってたから消してとか、最後に入れたデータだけ消してとか。
いろいろ仕込んだテーブル作っておかないと泣くことになる。

一万件まだかよ。泊まり込みで待ってるぞ。あとで請求書出すから住所と名前晒しとけ。
760NAME IS NULL:2006/10/07(土) 22:59:03 ID:???
>>759
>>今日入力したデータ間違ってたから消してとか、最後に入れたデータだけ消してとか。

まだいい方。

「重要なデータだからうっかり消したりしてしまわないようにしてほしい」、と言われて
んじゃ消し込みフラグでいいですかというと
「いや、削除といったときはちゃんと消せ」といわれて
本当に消しますかとか消すにはパスワード入れるとかそういうのを追加した。

数日後「間違って消しちゃったから戻してくれ」
お前システム使うな。マジで。
761NAME IS NULL:2006/10/07(土) 23:13:15 ID:???
・人間は必ず間違う
・ユーザは人間の中でも特によく間違う人種である
・人間はいつも出ている警告は無視するようになる
・人間は理解出来ない事を無視する
・人間は自分に都合の悪い事実は隠す
・ユーザの要望を鵜呑みにするとユーザから怨まれる
・ユーザの要望のごく一部を選んで実現すれば感謝される
・人間は柔軟性の高い生き物である。どんなに劣悪なUIでもすぐ慣れる
762NAME IS NULL:2006/10/08(日) 00:49:52 ID:???
>>761
まったくもってその通り。
というか、これってどこかの格言だったりするん?
763NAME IS NULL:2006/10/08(日) 01:01:58 ID:???
そうそう。確認させても消しちゃって入力し直すの面倒だから元に戻してくれとか。orz
最近履歴重要とか思い始めてる。一ヶ月前まで入力履歴取っておけばクリック一発で対応できそうな悪寒。
鯖も増強する理由もできるし現場も気軽に入力できていいんじゃね?

元々の紙の伝票の時代には、あとから差し替えとかむちゃくちゃな業務フローだったから再計算の手間が省けるだけでも現場は喜ぶ程度の目標でいいやと妥協しまくるこのごろ。

消してって要求は、本当に消さずに見えなくしたり無視するだけで十分だと思う。
理系頭で馬鹿正直に対応すると苦労するだけ。
経理とか同じようなこと遣っててノウハウ持ってる香具師と、交流持つとその辺の対応ノウハウを教えてもらえるよ。
ついでに簿記の勉強もして教えてもらうのも仲良く成るきっかけ。


警告いっぱいは逆効果だね。ウィンドウズ自体がその典型(w
無意識に「はい」を押しちゃってるし、表示しても読まないし、表示出してる意味なんて考えてない。
その辺のノウハウはヒューマンエラーとかヒューマンインターフェースの本にいろいろ載ってる。

社内コンサルタント的な立場に立って、ユーザの要求を元に、ユーザすら気づいてない真の要求を洗い出して実装しないと、ユーザの満足度を得るのは難しい。
仕様書どうりに作っておしまいじゃダメポ。ユーザはまともな仕様書作る能力ないし。
劣悪なUIは批判されるだけだから立場が悪くなるだけ。センス悪いとも思われるし、良いことは無いよ。
764NAME IS NULL:2006/10/08(日) 01:11:00 ID:???
>>763
ストレス溜まり過ぎ?
少し休んだら?
765NAME IS NULL:2006/10/08(日) 01:14:29 ID:???
一度休むと復帰するのは並大抵じゃないんだな
766NAME IS NULL:2006/10/08(日) 01:58:51 ID:???
連休明けなんか、もう仕事始める気にならないね。
767NAME IS NULL:2006/10/08(日) 02:29:56 ID:???
温泉ランドとかいくだけで結構気分変わるよ。
本当は旅行のがオススメだけど。
768NAME IS NULL:2006/10/08(日) 03:31:12 ID:???
最近コンサル必須な案件ばっかり
しかも中盤で気付かされる
769NAME IS NULL:2006/10/08(日) 05:10:02 ID:???
話を流れをぶった切って申し訳ない。
MySQLの命令の中に、データを指定した文字コードで取り出すってなかったけ?
UTF-8で入ってるデータをShift-JISに変換してもらってから取り出すみたいな。
770NAME IS NULL:2006/10/08(日) 08:37:52 ID:???
すいません
WindowsでMySQLますが、それをLinuxに移行したいのですがどうすればいいのでしょうか?
教えてください。
771NAME IS NULL:2006/10/08(日) 08:59:58 ID:???
>>770
ファイルを
コピー
772NAME IS NULL:2006/10/08(日) 10:41:07 ID:???
>769
 CAST() か CONVERT()
773NAME IS NULL:2006/10/08(日) 11:14:10 ID:???
utf8で入ってたらutf8のまま使うのが問題が起きにくいよ。
sjisで使うなら最初からsjisで入れておくべき。
774NAME IS NULL:2006/10/08(日) 11:39:23 ID:???
>>771
ありがとうございます。
やってみます。
775NAME IS NULL:2006/10/09(月) 02:01:54 ID:???
困った
mysql.sockファイルが無いと怒られてMySQLを起動できなくなった・・・・

OSはFedora Core5。
yumでインストールしたMySQL最新版。
.etc/rc.d/init.d/mysqld status
にすると起動しています。と出るが、
mysql -uroot -p としても起動できずmysql.sockファイルが所定のディレクトリに
無いとでる。findでmysql.sockを検索しても見つからない。

776NAME IS NULL:2006/10/09(月) 02:57:38 ID:???
未だにその問題出るのか。

昔の記憶なんで間違っている可能性が高いが、
mysqldプロセスをkillで治ったような気がする。

ただ全然違うエラーでも「mysql.sockがない」の
一言で済まされる場合があるから、別の問題の
可能性もあるよ。
777NAME IS NULL:2006/10/09(月) 08:12:49 ID:???
>>775
無いからエラーが出てるんでしょ。

エラーメッセージにパスが出てない?そこにその名前で空のファイルを作れば桶。
778NAME IS NULL:2006/10/09(月) 10:28:38 ID:???
ないなら、プログラムで勝手につくればいいのになw
779NAME IS NULL:2006/10/09(月) 11:44:35 ID:???
>>776-777
情報サンキュー。サブシステムがロックされてると出たのでロックファイルを削除とか
したけどダメだった。touchコマンドでsockファイルを作ってもダメだった。

ねっとでいろいろ探してみたけどどれもうまくいかなかった。

で、ディスクが怪しいと思ってfsckコマンドを実行したらとうとうFedora Coreが起動しなくなってしまった。
ということで、今はそれどころじゃないんですよ。ありがとうございました。

しばらくはレスキューディスクを使ってFedora Coreの復旧作業をしています。

780NAME IS NULL:2006/10/09(月) 11:50:28 ID:???
>>772
4.0で使うからCAST()かな。手元の本では使い方がイマイチ分かりにくいです。
select cast(oldchar as 'utf-8') from table where oldchar!='';
て、感じですかね?

>>773
サンクス。それは分かってるよ。
Ajaxでつかってて、外部のサイトのcharsetに合せたいんです。
781NAME IS NULL:2006/10/09(月) 13:39:34 ID:???
fsckで起動しなくなるなんてもともとファイルシステムが壊れてんじゃない
OS再インスコからやり直した方がいいな
782NAME IS NULL:2006/10/09(月) 14:27:49 ID:???
とりあえずすれ違いって事でLinux板で質問中です。

ではまた。

783NAME IS NULL:2006/10/09(月) 17:20:14 ID:???
>>780
>>Ajaxでつかってて、外部のサイトのcharsetに合せたいんです。
ならデータベースの外で変換した方が…。
一箇所にまとめすぎると何か不具合出たときに
問題の切り分けが難しくなるよ。
784NAME IS NULL:2006/10/09(月) 18:29:45 ID:???
>>783
そうっすね。今はphpで変換してます。でもまぁ、後学のために知っておくのもいいかと思って。
>>780の書き方はあってますか?自分で試せ!ってのはそのとおりですが。
785NAME IS NULL:2006/10/09(月) 23:52:46 ID:???
id, userid, datatype(int), datakey(varchar)
というようなフィールドで構成されるタグっぽい情報の記録テーブルAがあって、
select * from A join users on A.userid=users.id where concat(datatype, datakey) = 'test1234'
ってやった場合、concat(datatype, datakey) = 'test1234'の部分はインデックスは効きますでしょうか。
786NAME IS NULL:2006/10/09(月) 23:53:29 ID:???
あ、失礼 id, userid, datatype(varchar), datakey(int)です。
787NAME IS NULL:2006/10/10(火) 03:27:28 ID:???
EXPLAINで試せよ・・・。
それにしても凄いテーブルだな。
788NAME IS NULL:2006/10/10(火) 07:49:28 ID:???
>>785
効かない。
datatype='test' and datakey='1234'
の方が効く可能性あり。
789NAME IS NULL:2006/10/10(火) 09:47:39 ID:OTtxV8t0
質問させて下さい。
WinXP + MySQL4.1 です。

MinGWで mysql++ 2.1.1 をコンパイルしようとしています。
gccのバージョンは3.4.2です。

g++ -c -o mysqlpp_coldata.o -g -I.. -D_UNICODE -Ic:\mysql\include -DMYSQLPP_NO_DLL -mthreads -MTmysqlpp_coldata.o -MFmysqlpp_coldata.o.d -MD coldata.cpp
In file included from const_string.h:32,
from coldata.h:37,
from coldata.cpp:27:
defs.h:34:19: mysql.h: No such file or directory

こんなエラーでコンパイルがエラーになります。
READMEにある通りインポートライブラリも作りました。
MySQL、mysql++の展開先もREADMEにある通りc:\mysql、c:\mysql++にしました。
mysql.hが見つからないというエラーのようですが、インクルードパスの指定もあって
いるようですし。
よろしくです。

790NAME IS NULL:2006/10/10(火) 14:05:00 ID:+Ycq+nBK
質問です。

WEBシステムのバッチ処理にてログを削除しているのですが
ものすごい時間が掛かってしまって困っています。

いろいろ検索すると
http://dev.mysql.com/doc/refman/4.1/ja/delete-speed.html
にたどり着いたのですが「インデックスキャッシュ」の意味が分かりません。

インデックスキャッシュとはどのような物なのでしょうか?
また、何処で設定すればよいのでしょうか?

環境
OS: FreeBSD 4.10
MySQL: 4.0.18

以上、よろしくお願いします
791NAME IS NULL:2006/10/10(火) 15:29:25 ID:???
>>790
どんなログ?ファイル名晒して。
792790:2006/10/10(火) 15:48:27 ID:???
>>791
普通のテーブルになります。
「log」というテーブルの中にユーザーの処理した内容等が大量に吐かれるシステムになっていて
そいつの削除に時間がかかり手を焼いているところです。

僕の書き方が悪かったようで、勘違いさせてしまってすいません。
793NAME IS NULL:2006/10/10(火) 16:29:45 ID:???
>>792
単純に、key_bufferをでかくすると削除が速くなる。(らしし)
あとは、無駄なインデックスを削除するするとか、固定長テーブルにするとかの
調整も可能。

794NAME IS NULL:2006/10/10(火) 21:47:21 ID:???
>>790
Pentium4やXeonでHTがONならBIOSで切ってみるのもあり。
HTがONだと状況によってCPUを50%しか使えないから。

795NAME IS NULL:2006/10/10(火) 23:00:50 ID:???
Windows Server に MySQLを入れて、実際にサービス運用しても使用に耐えるでしょうか?
Linux + MySQLの組み合わせは、ごまんとあると思うんですが・・・
796NAME IS NULL:2006/10/10(火) 23:03:23 ID:???
HT最適化度合いによる。
普通にマルチスレッドだと、2CPUのつもりで動いてパイプラインが詰まる。
もちろん非マルチスレッドならBIOSで殺したのと同じく1CPUのつもりで動いて全然早くない(=HT非対応のセレロン並みに落ちる)

どんなシステムなのか興味あるなあ。
製品名とかシステム名教えてよ。
797NAME IS NULL:2006/10/10(火) 23:12:28 ID:???
そんなの、システム構成やページビューによるって。
とは言っても具体的だって検証は難しい。というか漠然としすぎ。
798795:2006/10/10(火) 23:18:26 ID:???
アクセスはそんなに多くないです
たぶん1日300アクセス程度
メインでアクセスするテーブルに1万件もいかないかと思います。
799NAME IS NULL:2006/10/10(火) 23:47:51 ID:???
ペン3−1Gでも十分杉です。
800795:2006/10/10(火) 23:49:39 ID:???
どっちかっていうと、ちゃんと動作し続けるかどうかってのが心配だったり。
MYSQLがどれだけWindowsServerで動かすことへを保証しているか・・・
801NAME IS NULL:2006/10/10(火) 23:52:42 ID:???
キーは、Webサーバを何にするか。
802NAME IS NULL:2006/10/11(水) 00:23:04 ID:???
このスレ相変わらず馬鹿と無知がいっぱいでオモロいわ
803NAME IS NULL:2006/10/11(水) 00:44:10 ID:???
またはじまった
804NAME IS NULL:2006/10/11(水) 02:00:34 ID:???
w2003srvならIISじゃないと価値が無いと思う。XPで十分だ。
つーかアクセスやSQL Serverを使わない理由は?


ところで4.1より古いのって使えるエンジンを調べるのって実際にクリエイトしてみるしかない?
show table typesはもちろん使えないし。orz
805NAME IS NULL:2006/10/11(水) 06:30:13 ID:???
Windows上でも全然問題ないよ。
Athlon800くらいのPCで
WinXP+IIS+ASP+MySQLで仲間内用のWebサーバ立ち上げてたけど問題なく超安定してた。
806801:2006/10/11(水) 11:36:45 ID:???
昔 Win2K + IIS + ASP + COM のシステムで運用レベルですげー大変な思いしたから
絶対IISはイヤだ。
807NAME IS NULL:2006/10/11(水) 12:32:03 ID:???
2003ならちっとはマシに成ってるかも。
808NAME IS NULL:2006/10/11(水) 13:39:44 ID:???
なぜwindows+mysqlという組み合わせを選んで茨の道を歩みたいのか...
809NAME IS NULL:2006/10/11(水) 15:34:55 ID:???
暴利なハード&ソフト費用でバックマージンを取っているSI業者やメーカ
色の濃い企業なんかが絡むとWindows前提という案件が驚くほど多いんだよ。
810NAME IS NULL:2006/10/11(水) 16:09:53 ID:???
hoge
id | name | val
1 | aaaa | 100
2 | bbbb | 200
3 | cccc | 300
4 | aaaa | 101
5 | bbbb | 201
6 | cccc | 301
こんなテーブルで
select * `hoge` group by name
のときの結果が
1 | aaaa | 100
2 | bbbb | 200
3 | cccc | 300
になっちまうのですが
↓のような結果がほしい。
4 | aaaa | 101
5 | bbbb | 201
6 | cccc | 301

idは時系列で付くものとして一番最後のデータが欲しいんです。
php側で配列に入れてゴニョゴニョするしかないのかな?
mysql4.0X前提です。
811795:2006/10/11(水) 16:18:16 ID:???
>>804 >>808
多言語対応しないといかんのですよ。
PHP(UTF-8) + SQL Server(USC2)の組み合わせだと、PHPから読み出すのが難しい。
ODBCだとSJISで読み出してくる。エンコーディング指定もできないっぽい。
COM使ってUTF-8で読めたけど、insertでは化けた・・・
PHP(UTF-8) + MySQL(UTF-8)だと、select、insertともに、
多言語まぜこぜで、うまくいったんですね。
LinuxでPHP、MySQLでいければ何も悩むことはないのですが、
クライアントが今動いてるWindowsServerでやりたいらしいので・・・

>>805
貴重な情報thx
812NAME IS NULL:2006/10/11(水) 17:08:11 ID:1EzhWZYI
create table test(
name varchar(512),
id int,
uri varchar(512),
primary key(name(512))
) type = InnoDB;

create table test2(
name varchar(512),
uri varchar(512),
primary key(name(512),
foreign key (name) references test(name)
) type = InnoDB;

上記のようなテーブルを2個作りたいのですが
ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length
のエラーが出てしまってtest2のテーブルが作れません。
教えてください

mysql4.1をつかってます。
813NAME IS NULL:2006/10/11(水) 17:22:20 ID:???
>>810
サブクエリで古い順に並べ替えた結果をnameで group by
814NAME IS NULL:2006/10/11(水) 17:47:57 ID:???
>>809
暴利を貪りたいなら、MySQLなんか使わずにOracle使って、年間保守も中間マージン取るべきだと思うが。


某所で見積取ったら自社の20倍の金額出されて呆れかえった
815NAME IS NULL:2006/10/11(水) 22:15:35 ID:XYAr9xFv
複数のDBの同じテーブルにある全レコードのTOP30を取りたいとき、
やっぱり30ずつ取って、自分でソートするしかないかな?
816NAME IS NULL:2006/10/11(水) 22:23:32 ID:???
>>815
イヤならテンポラリ作って 30ずつ入れてから取り出せば。
817NAME IS NULL:2006/10/11(水) 22:38:29 ID:???
>>816
どうも
ほかのDBからSELECTしていまのDBのテンポテーブルに入れることは可能?
818NAME IS NULL:2006/10/12(木) 01:13:36 ID:???
select intoだっけか。
普通はまともなミドルウェア内でソートぐらいするけどな。
クエリの度にソートしてたら遅くて間抜けだし。

20倍の金額でも、それに見合う信頼性や速度が要求される用途も有るよ。
mysqlで十分なところばかりじゃない。
おまいの銀行口座の残高がmysqlで管理されて、ある日バグが出てるから出金できないじゃ困るだろ?
819NAME IS NULL:2006/10/12(木) 01:50:23 ID:???
いや、だからな
そこまでの重要・クリティカル性が無いのに、Oracleで無駄に台数増やした構成出してきたのよ

何も知らない奴が相手なら、そんな金額でもまともに払おうとするんだろうな と。



最近はクライアント側でいろいろ処理させるのが流行だな。
クラスタ化・分散化なんかも容易だし。
820NAME IS NULL:2006/10/12(木) 05:25:01 ID:???
まあその20倍の金額に納得して払うかどうかは客の自由なんじゃね?
821NAME IS NULL:2006/10/12(木) 06:21:33 ID:???
>>810
>>813が答えてるからいいか
過去スレ嫁

>>812
foreign key (name(512)) references test(name)だな
それよりvarcharって最大長255までなんだが?
なによりそんな長い文字列をキーにするってどうよ?
要再検討だな

>>815
ふつうにJOINしてソートすれば?
DB名.テーブル名で結合できるよ
822NAME IS NULL:2006/10/12(木) 07:06:39 ID:???
コンサル無しで、まともに用途を伝えてないから、安全側に振ってオラクルで提案してきたのではないの?
漏れだって、mysqlのリスクが納得できない香具師には、オラクルを無難に勧めるよ。問題起きたときの責任取れないし。
無責任にmysqlを提案できる香具師ってめでたいな。損害賠償請求で氏んでくれ。
823NAME IS NULL:2006/10/12(木) 07:12:34 ID:???
かといってボラクルなら責任とれるのかっていうとそうでもない
824NAME IS NULL:2006/10/12(木) 10:44:25 ID:???
mysqlなら損害賠償来るけど、ボラ来るならしょうがないかと納得してもらえる。
東証に採用されてるほどの実績が有るし。
825NAME IS NULL:2006/10/12(木) 10:57:49 ID:???
>>821
>>818
> DB名.テーブル名で結合できるよ
このことができないとずっと思っていた。
ありがとうございます。
826NAME IS NULL:2006/10/12(木) 22:33:08 ID:???
>>818
銀行口座の残高がORACLEで管理されて、ある日バグが出てるから出金できなくても困るけどな
827NAME IS NULL:2006/10/13(金) 00:19:28 ID:???
実際のところMySQLでバグるヤツはOracleでもバグるだろ。

まあ、楽天がSQL Serverって聞くと「だから突然深夜にメンテはじめるのか?」
とか納得してしまうけどな(w
828NAME IS NULL:2006/10/13(金) 02:38:29 ID:???
MySQLだろうがオラクルだろうが、
「損害賠償は一切しない。コンピュータは完璧じゃない」って
契約をかましとく。これ最強。
829NAME IS NULL:2006/10/14(土) 10:00:49 ID:???
じゃあおまいのところとは契約しないよって言われて無職に成るだけ。
オープンソースなんて使ってると競合他社に負けるよ。
損害賠償できないならオラクルの10分の一の金額でしか受け付けないとかね。

東証と同じオラクルだけど、東証も不具合出てましたねえで世間は納得してくれるよ。
mysqlなんて訊いたことも無いデータベースだと、選んだのは誰?って責任追求されるけど。
830NAME IS NULL:2006/10/14(土) 10:07:55 ID:???
>>829
ぶっちゃけ、そんな客見たことねえし。(w

「東証と同じオラクルで」なんて話はしたことねえが、客が
納得するかは値段と保証の内容だろう。

某都銀なんざメインフレーム使っても出金できないトラブルあるワケだが、
どうやって世間を納得させるんだ?

損害賠償できないならメインフレームの10分の一の金額でしか受け付けないとか?w
#まあ、それでもオラクルよりは安いけど
831NAME IS NULL:2006/10/14(土) 10:35:59 ID:???
にしても、ブランド崇拝があるのは否定できないが。
832NAME IS NULL:2006/10/14(土) 10:44:44 ID:???
それだと、一昔前だと「ライブドアで使われているMySQL」と
言えたって事なんだろうか?

Webのソレとは畑が違うのでアレだが。

FreeBSDやLinuxを鯖を3000台以上運用している技術なんかは
素直にでたいしたものだと思う。
833NAME IS NULL:2006/10/14(土) 10:52:11 ID:???
HiRDBなんか聞いたこともないDBに分類されるだろうけど
東京三菱UFJで使われていると言えばブランド信者も
納得するんだろうか?

変なしがらみがなければHiRDBなんか使う気もないし
客にも勧めないんだが。
834NAME IS NULL:2006/10/14(土) 11:10:23 ID:???
>>832
一昔前にライブでいいんじゃない。今ならミクシィあたりか。
でも新興や楽天みたいにトラブル連発する所言ってしまうと
後で連想されてしまうから危険だねぇ。
下地のある銀行とかのほうがいいね。(銀行でさえ出るんだ、と
ポジティブに考えてもらえる 笑)

まぁどっちにしても、見たこと製品でも「NASAで開発された」だけで
みんな納得したりするわけで。
835NAME IS NULL:2006/10/14(土) 12:57:57 ID:???
Oracleを使わなければいけない案件ってサ
ソフトウェアベンダーが「Oracleじゃないと動作保証しません」って
ケースなんじゃねーの?

自社で鯖とシステム+アプリをパッケージするなら別にDBはなんでもいいけど。
個人的にはオープン系が嫌ならDB2にしとけと思うけど。
Oraの半額くらいだし、機能的に負けてないし。

HPのテキトーな鯖にredhat+Oracle入れるのは個人的にビミョーな感があるんだよな。
どーせOracle入れるならSolarisに入れて専用の技術者込みで買ってくれれば、
顧客も満足度高いと思うよ。

DB2で楽したいならiSeries(AS/400)買えと同じ感覚。

1,2個くらいのプロセッサ積んだ鯖で使うDBだったらMySQLで十分だと思うし、
そこからの安定性とかは使う側の問題だし。
836NAME IS NULL:2006/10/14(土) 13:21:29 ID:???
いまやMySQLも含めてほとんどのDB製品が使う奴の脳よりも安定してるからな
837NAME IS NULL:2006/10/14(土) 13:29:18 ID:???
>>829
そもそもOracleも製品に帰する損害補償なんか謳ってない。
838NAME IS NULL:2006/10/14(土) 14:00:03 ID:???
結論:
ダメな奴は何をやってもダメ (AA略
839NAME IS NULL:2006/10/14(土) 14:15:58 ID:???
メインフレームで万全な体制で業務を行っていましたが、申し訳有りません。
だと、世間はしょうがないと納得するけど、

無料のリナックスでコストダウンして業務を行っていましたので、申し訳有りません。
なら、世間はもっと金かけてまともなシステムに汁と叩く。

銀行系とか手数料取ってるのに無料のmysql採用で不具合出してたら客は怒るのは当然。

無料のリナックスに、無料でダウンロードしてきたオラクルが無意味なのは同意。
サポート期待するなら、ソラリスでオラクルだよな。DB2ならAS400ぐらい使わないと。
840NAME IS NULL:2006/10/14(土) 14:33:26 ID:???
サポート丸投げで返答待つだけのOracleよりも、
オープンソースで「いざとなったら自分で修正できる」システムの方がマシだと思うけどな。

修正できるだけの技術・能力があればの話だが。


東証やsuica位のシステムになると、確かに「mysqlでできるんか?」って気はするが
一応、海外ではクレジットカード会社での採用例があったような気も。

実績的には「全世界で一番使われているデータベース」じゃなかったっけか


>>839
AS400なんていつの時代のシステムだよ と思ったけど、名称消滅してるんだな。
http://www.atmarkit.co.jp/news/200010/05/eserver.html
まぁ、メインフレームかラックサーバか なんて、その時代時代のトレンドで決まるようなもんだし。
841NAME IS NULL:2006/10/14(土) 14:47:15 ID:???
>メインフレームで万全な体制で業務を行っていましたが、申し訳有りません。
>だと、世間はしょうがないと納得するけど、

いや、してないから。(w

だからUFJと三菱の合併の時も金融庁がクレームつけてくるし、
地銀のシステム共同化も各省庁がクレーム(?)と言うかガイドラインを
提示して、簡単にシステム変更とかさせてくれない。
結構厳しい資料の提出をもとめらまつ。

ちなみにそこで無料とかオープンソースとかはまったく関係ない。
本当に使う側の問題。
842NAME IS NULL:2006/10/14(土) 14:59:28 ID:???
>>840
AS400は今でも健在だと思う。名前が(w

まあ、タダとは言わないが基本セットでWebSphereAPサーバーに
Java1.5とWDScやら各OSのDB2にAPサーバーセットを
オマケにつけてくれるシステムはオープンソース系以外では
コレだけだろ。

デフォでtomcatにapache2入っているのでオープン系ソフトなのに
IBMがサポートしてくれるし、初心者(?)にもお勧めだ。
843NAME IS NULL:2006/10/14(土) 16:31:14 ID:???
InnoDBのデータベースへdumpしたデータを読み込ませると。
下記のエラーになりんす。

どうすればいいでしょうか。
ERROR 1005 (HY000) at line 61: Can't create table '*****.frm' (errno: 121)
844NAME IS NULL:2006/10/14(土) 17:19:38 ID:???
どんなテーブルをダンプしたのかと、どんなinnodbテーブルを作ったか示せ(10点)

オープンソースで自分で修正できる保証も無いけどな。
手に負えない場合って無いの?

オラクル採用の三菱ufjから顧客が逃げることも無いし地銀から逃げることも無いよ。
でもmysqlを使ってるミクシからはユーザも株主も逃げまくって株価暴落だ。
そもそも金融機関のようなミッションクリティカルな用途で無料のmysqlなんて使ってるの?
845NAME IS NULL:2006/10/14(土) 18:29:18 ID:???
お前等、MySQL vs Oracle とかのスレでも立ててそこでやれ。
846NAME IS NULL:2006/10/14(土) 19:16:09 ID:???
なんか金融機関の仕事した事ない人間の妄想が
「金融機関は…」とかボラクルと連呼しているのは妙な感覚だな…。

金融機関のどの業務がミッションクリティカルなんだよ(w
ATMやCD機だって普通に止まるし人を待たすぞ。

それに金融機関だって顧客逃げるっつーの。

これかモラクル信者か…。
847NAME IS NULL:2006/10/14(土) 23:04:09 ID:???
このスレはMySQLの使い方だけじゃなくて、案件の事まで面倒見くれるんですね。
こないだの携帯案件の事といい、至れり尽くせりw
848NAME IS NULL:2006/10/14(土) 23:07:27 ID:???
動かなくってもブランドで許してもらえるとか書いてるバカがいるけど、
今ってそんなやつがホントに横行してるらしいな。

最近クライアントに、「御社はちゃんとしてますねぇ」って言われることが増えた。
ホントにどうなってんだか。
849NAME IS NULL:2006/10/14(土) 23:27:33 ID:???
>>848
そりゃ、女性ものバッグに疎くて
「これはシャネルのバッグです」って言われれば、
あなんか良さそうな物だ、と思うだろ?
850NAME IS NULL:2006/10/15(日) 00:02:51 ID:???
Linuxが無料とか言ってるけど、Redhatって有償じゃなかったか?
あとMySQLも商用目的だと有償なんじゃないか?

しかもミクシの株価暴落はシステムの問題じゃなくて、
利用者と運営の問題だろうに。

こういうヤツはシステムが障害起こしたら「オラクルが悪いんです。ボクは悪くありません」
とかぬかして客を真っ先に怒らすタイプだろうなぁ。
851NAME IS NULL:2006/10/15(日) 00:26:34 ID:???
商用目的でもGPLで使えば無料だろう。
852NAME IS NULL:2006/10/15(日) 00:32:23 ID:???
>>850
ミクシィ暴落は、加熱し過ぎたのが戻っただけですよ。
発売直後のPS3が30万位で売買されたようなもの。
ほとぼり冷めたら定価戻りっすよ。 これ暴落じゃないよね。
853NAME IS NULL:2006/10/15(日) 03:41:53 ID:???
どう考えてもまだ定価以上だが・・・
854NAME IS NULL:2006/10/15(日) 08:39:31 ID:???
mixiはビジネスモデルがはっきりしてないのに人気だけであんな株価出てしまって、
話題性が無くなって来たから本来の株価に戻りつつあるだけだろう。
ひきこもり・ニート集団に広告打ってどのくらい効果あるんだ?
ひきこもり・ニート集団に職業斡旋してどのくらい効果あるんだ?
Yahooやgoogleのように多様化できないと先は無いだろ。

まぁ、せいぜいいい所で、会員数に価値を見出した会社が
ビジネスプラン片手にmixi丸ごと買収って所じゃないか?
855NAME IS NULL:2006/10/15(日) 12:35:42 ID:???
いいかげんにMySQL以外の話題ヤメロや。
856NAME IS NULL:2006/10/15(日) 15:15:40 ID:XMO6J9J5
すいません。ちょっと教えて下しさい。
MySQLのデータベースファイルを別DBに移したいのですが
phpMyAdminではファイル容量が制限オーバーになってしまい困っています。
telnetを使う方法は難しいので何とかphpMyAdminiを使ってやりたいのですが
ファイルを分割してやる方法があると聞いたのですが、ご存知でしょうか?
もしご存知でしたら教えて下しさい。よろしくお願いします。
857NAME IS NULL:2006/10/15(日) 16:46:32 ID:???
>>856
その鯖ODBCは繋がらないの?

俺の場合はODBC経由でアクセスにデータ引っこ抜いて、
他のDBへ持ってく。ってのよくやる。
858NAME IS NULL:2006/10/15(日) 17:16:27 ID:???
非効率極まりない(藁
859NAME IS NULL:2006/10/15(日) 18:21:24 ID:???
858が効率的なやり方を披露してくれるそうです!
↓ドゾー
860NAME IS NULL:2006/10/15(日) 22:06:55 ID:???
金持ってソープ。これが最強に効率的。
861NAME IS NULL:2006/10/16(月) 00:07:19 ID:???
telnetが難しいならsshつかうといいよ
862NAME IS NULL:2006/10/16(月) 00:23:28 ID:???
結論:
ダメな奴は何をやってもダメ (AA略
863NAME IS NULL:2006/10/16(月) 06:35:07 ID:???
telnetやsshが不可能な環境ならともかく、
難しいから嫌だというなら、MySQL使うのヤめた方がいいんじゃね?
864NAME IS NULL:2006/10/16(月) 06:53:36 ID:???
だからMySQL使うのやめるんだろ。
とまぁ揚げ足とりはおいといて、

MySQLに詳しくないやつでも、MovableTypeなんかで使うわけで、
サーバ移転なんかで、DBがPostgreSQLしかない!なんて時に、
DBの移行作業は必須になるだろ?
だから、投げやりな解答をしないでやってほしい。

お前が答えろって?普段ROMしてるだけの初心者なので知らん。
許せ。
865NAME IS NULL:2006/10/16(月) 06:57:21 ID:???
コマンドライン使いたくない香具師を相手にそんな特殊事情を説明しろと?
俺はパス
866NAME IS NULL:2006/10/16(月) 07:18:02 ID:???
つってもなー、簡単なODBCの方法でレスポンス無しの相手じゃ
他の方法なんかもっと敷居が高いぜ。

正直、相手できんだろ。
867NAME IS NULL:2006/10/16(月) 11:56:04 ID:???
>>832
ライブドアのポータルの開発、運用は10人くらいの天才でやってるしね
868NAME IS NULL:2006/10/16(月) 13:18:41 ID:???
田酔えばこういうケースの場合って、有料で代行してくれる業者とかあるの?
869NAME IS NULL:2006/10/16(月) 15:04:39 ID:???
>>856
sshで入って DBをディレクトリ丸ごと圧縮してftpするか、mysqldump して同じくftpしろ。
わからなかったググレ。そんなに難しくない。情報は沢山あるはず。トライしろ。
うまく出来たとしたら 856のスキルは上がった事になるはず。
で、今後 phpMyAdmin類は一切使うな。
870NAME IS NULL:2006/10/16(月) 16:29:54 ID:Z4XJL4IP
テーブルの行が、ある一定の量を超した場合
古い順から削除することはできますか?

例えば一つの行をINSERTしたら、ある一定の量を超えてしまったので
一番古い行は削除するとか…
871NAME IS NULL:2006/10/16(月) 17:16:16 ID:???
そのとおりにプログラム書けばよいと思うが。
872NAME IS NULL:2006/10/16(月) 19:28:33 ID:Z4XJL4IP
>>871
ですよね……。

ただ、MySQLサイドで出来るならそうしたかったのです。
プログラムサイドでやると冗長になるというか、面倒d(うわなにをいわすんだやめry
873NAME IS NULL:2006/10/16(月) 19:29:09 ID:???
>>872
ばか
874NAME IS NULL:2006/10/16(月) 19:50:07 ID:???










やっぱり、ダメな奴は何をやってもダメ










875NAME IS NULL:2006/10/16(月) 20:53:35 ID:???
>>874
ってリアルでおまえ言われてそうだよな
876NAME IS NULL:2006/10/16(月) 21:03:44 ID:???
トリガーでも使えばできるかも知れんが手間はどっこいどっこいだろうし、そもそも面倒だっていうようなレベルのコーディングじゃない
大体トリガーとかストアドって後で作った事忘れてそうであんまり使いたくない
877NAME IS NULL:2006/10/16(月) 21:05:11 ID:???
>>867
確かにコネクションプーリング都市伝説とか技術的には高い集団だと思いまつ。

某○立なんかOracle運用しておいて「PL/SQL詳しくないモノで…」と
言われてキれそうになりますた。

なんにせよ使う側なんだよなぁ。
878NAME IS NULL:2006/10/16(月) 21:19:29 ID:???
>コネクションプーリング都市伝説
この人か
http://blog.livedoor.jp/nipotan/
879NAME IS NULL:2006/10/16(月) 21:37:40 ID:???
オンザエッヂ時代にちょっと内部にいたけど勉強熱心な人多かった
880NAME IS NULL:2006/10/16(月) 22:02:25 ID:???
mixiってFedoraなのか・・・。
まー、DebianはNICが認識しないとウザいのはある罠…。
漏れはDebian派なのだが。
881NAME IS NULL:2006/10/17(火) 02:38:17 ID:???
自分は15年くらい(386BSD〜)FreeBSD波
仕事ではHPUXばっかりだけど
882NAME IS NULL:2006/10/17(火) 21:46:03 ID:???
>>80
ずーと前のネタで申し訳ないが、80さん に教えてもらった・・・

4.1から Char型がバイト数から文字数になったので以前のテーブルは勝手にlength
が半分にされちゃう

って件、まさに遭遇中なのだがうまい回避策ってないのかしら?
mysqldump したものをインポートすれば大丈夫っぽいけどDBが巨大なんで・・・
出来ればDBファイル直で入れたい。
88380:2006/10/17(火) 23:10:06 ID:???
>>882
MyISAMなら、binary charsetでテーブルを作成して、MYIとMYDをコピーすればなんとかなったりしないかなぁ。
やったことないから、うまくいくかどうかは知らない。データ壊れたらごめん。
884NAME IS NULL:2006/10/17(火) 23:21:31 ID:???
>>80
ありがと
トライして結果報告するね
885NAME IS NULL:2006/10/18(水) 03:41:03 ID:???
DBが巨大って何TBぐらい?

ミクシはパールを選択してる時点で、明らかに長期安定運用は捨ててるよな。
新機能の開発速度だけに主眼を置いて、頻繁なシステム更新でフェドラの最新ハードのサポート状況と新機能の堪能のメリットの方が大きいという判断だろう。
一般企業の枯れた環境で安定した運用を目指すのとは対極。
人柱プロジェクトで上場しちゃって大儲けだよな(w

だから、ATMやCD機が普通に止まるし人を待たすのがmysqlのせいだったら叩かれまくって普及しないだろ。
モラクルはそれでも売れるんだよ。東証が処理能力限界で世界三大市場の一つが時間短縮なんて措置をとっても、モラクル案件を頼む香具師は居るんだよ。
886NAME IS NULL:2006/10/18(水) 06:37:14 ID:???
また金融機関で仕事した事ないやつの妄想が始まったのか・・・。

(多くの)ATMがCD機が止まるのはRDBのシステムとはあまり関係ないのだが
無理にOracle>MySQLの図に持っていこうとするのは痛々しいんだが…。

盲目的にOracle勧めるやつがいるのは知ってるよ。
特に>>885が(w
887NAME IS NULL:2006/10/18(水) 07:11:55 ID:???
>>885
ミクシで誰からも招待されない まで読んだ
888NAME IS NULL:2006/10/18(水) 08:02:59 ID:MRFIim5T
DELETE FROM `tbl_name` WHERE name = 'apple' ORDER BY `id` DESC LIMIT 3, 1

というSQLを発行すると:
#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 ' 1' at line 1
というエラーが返ってきます。

どこか構文違反をしているのでしょうか?
よろしくおねがいします。
889NAME IS NULL:2006/10/18(水) 08:13:59 ID:???
>>888
エラーメッセージくらい読め。LIMITの1のあたりが変なんだろ。
妄想でSQLを書かずにマニュアルくらい読めや。

ttp://dev.mysql.com/doc/refman/5.0/en/delete.html
890NAME IS NULL:2006/10/18(水) 16:31:17 ID:???
>>885
(ノ∀`)アチャー

自分の中の知識いっぱいいっぱいで書いたんだろうが、
読む側の知識を想像できないんだね。イタタタタ・・・
891NAME IS NULL:2006/10/18(水) 19:37:19 ID:???
こちらが沈静化してきたと思ったら、

【必】未だにPostgresを馬鹿にするOracle厨【死】
http://pc8.2ch.net/test/read.cgi/db/1063674435/

今度はMySQLが仮想敵か。
892NAME IS NULL:2006/10/18(水) 23:50:30 ID:???
phpMyAdminで、テーブル構造を見てみると
「オーバーヘッド」というものが記されています(赤い字で)。

調べてみると、未使用領域らしいのですがこれは放置しても全然問題ありませんか?
最適化すると大丈夫みたいなんですけど。
893NAME IS NULL:2006/10/19(木) 01:21:46 ID:???
mysqlで大規模案件に参加できずに貧乏暮らし大変だね(w
894NAME IS NULL:2006/10/19(木) 06:33:22 ID:???
なんかもう、Oracle厨が必死すぎて、必死すぎて…。
895NAME IS NULL:2006/10/19(木) 07:36:22 ID:???
つまり>>893にとってはgoogleやyahooは小規模案件なんだな。
どんな大規模案件をやっているか概要キボンヌw
896NAME IS NULL:2006/10/19(木) 07:47:05 ID:???
なんだこの微妙な煽り合いは
897NAME IS NULL:2006/10/19(木) 14:41:57 ID:???
東証って、ついこないだ、世界の大恥やらかしたよねw
あれオラクルだったの?
898NAME IS NULL:2006/10/19(木) 16:09:36 ID:???
InnoDBはOracleのものだから、片タマ握られていることを忘れずに。
899NAME IS NULL:2006/10/19(木) 16:11:46 ID:???
売りっぱなしのなんちゃってSIerイラネ
大規模案件って自慢したいんだろうが、
どーせ上司に言われたとおりの案件しかやったことねぇだろ?
900NAME IS NULL:2006/10/19(木) 18:03:31 ID:???
>>80
3系から4系へのDBファイル直コンバートの件、色々やったけどうまくゆかず
結局 mysqldump経由で1晩走らせて逃げますた。m(__)m
転びついでに文字コードを ujisからutf8に変換しちゃいました。
901NAME IS NULL:2006/10/19(木) 20:02:11 ID:???
オラGKとでも呼べそうな人達が増えましたねw
902NAME IS NULL:2006/10/19(木) 21:39:48 ID:???
Oracle厨が暴れてると思ったらこんな発表してんのな
http://enterprise.watch.impress.co.jp/cda/foreign/2006/10/19/8880.html
903NAME IS NULL:2006/10/20(金) 01:03:00 ID:???
utf8に変換乙。
コンバートの不具合の検証して問題は無かった?

グーグルやヤホーなんて、多少鯖落ちしてても問題無いし。
オープンソースのマイエスクーエルって、そういう用途しか使えないよね。
904NAME IS NULL:2006/10/20(金) 01:25:27 ID:???
ところでさ、まともにサポート料はらうんだったら、オープンソース物使う意味ってなんかあんの?
905NAME IS NULL:2006/10/20(金) 03:42:13 ID:???
いつまでも直らない仕様という名の不具合からの開放
906NAME IS NULL:2006/10/20(金) 06:53:16 ID:???
オープンソース=ボランティアが好きに作り散らかしてる、と思いこんでる奴がいるな
907NAME IS NULL:2006/10/20(金) 06:54:25 ID:???
>グーグルやヤホーなんて、多少鯖落ちしてても問題無いし。

こういう事を本気で言うやつにはまともな案件回してもらっていないんだろうな(w

Oracle厨ってどうしてこんなに必死なんだろう・・・。
908NAME IS NULL:2006/10/20(金) 07:58:56 ID:???
多数並列で稼働してるからってことっしょ。
909NAME IS NULL:2006/10/20(金) 12:26:35 ID:???
お前ら他でやれ

DB板雑談スレ
http://pc8.2ch.net/test/read.cgi/db/1056975852/
910NAME IS NULL:2006/10/20(金) 16:11:36 ID:???
おらー、すきだあぁぁ!!
911NAME IS NULL:2006/10/20(金) 19:45:11 ID:???
MySQLネタが不足しているようなので、、、
久しぶりに、quickpollsから

What is your primary Enterprise OS for deploying MySQL:

Debian GNU/Linux382 (16.6%)
Gentoo Linux130 (5.6%)
Mandrakelinux85 (3.7%)
SUSE LINUX213 (9.2%)
Red Hat Linux315 (13.7%)
Fedora Core165 (7.2%)
FreeBSD177 (7.7%)
OpenBSD34 (1.5%)
Mac OS X117 (5.1%)
Sun Solaris66 (2.9%)
IBM AIX6 (0.3%)
HP UX4 (0.2%)
Microsoft Windows613 (26.6%)

A total of 2307 votes have been cast in this poll.

しかし、Poll opened November 29, 2004.と古いので、
最近の状況を知りたいところ。
912NAME IS NULL:2006/10/20(金) 19:51:33 ID:???
燃料投下乙
913NAME IS NULL:2006/10/20(金) 21:24:23 ID:???
漏れはAIXに入れている勇者がHP-UXより多い事に驚愕するが…。
914NAME IS NULL:2006/10/20(金) 22:19:26 ID:???
AIXかぁ・・なつかしいなもう10年以上経つのか
癖ありマクリだったがそんなに悪いUnixじゃないと思うけど
915NAME IS NULL:2006/10/21(土) 08:23:50 ID:???
DB2逃れ?
AIXは一応Unixだから別にフリーソフト入れるのも有りでしょ。
gccとかも入れたりするだろうし。

HP-UXはsjisだから、utfのmysqlは苦労するだろうな。

スレまとめサイトなところでquickpollでもやってくれれば、このスレ読んでるねらーの動作状況が分かるのにな。
linux, windowsあたりが圧倒的だとは思うが。あとは標準インスコされてるmac os x serverとかは多そうかな?

オープンソースの問題点。
誰も直さないソースコードの問題はいつまでも解消しない。
誰が責任を持ってソースコードをメンテナンスしてくれるか。

まあmysqlの場合は、mysql abがあるからいいけど、mysql abと契約せずに使ってる香具師はアフォと。
916NAME IS NULL:2006/10/21(土) 08:26:20 ID:???
工エエェェ(´д`)ェェエエ工
HP-UX11iにはmysqlが最初から入ってるぞw
917NAME IS NULL:2006/10/21(土) 08:51:18 ID:???
文字コードがどうとか言ってるやつはこれでも使っとけ

ttp://www.hln.co.jp/hibase/index.html
918NAME IS NULL:2006/10/21(土) 12:56:49 ID:???
>>915
>>オープンソースの問題点。
>>誰も直さないソースコードの問題はいつまでも解消しない。

それはオープンソースに限らず、ソフトウェア全般における当たり前な話。
もちろんプロプライエタリなクローズドソースでもな。
金払ってるからって自分が言ったことを誰か責任持って直してくれると思ったら
そりゃ非常識なまでに甘すぎって話よwww
919NAME IS NULL:2006/10/21(土) 14:39:52 ID:???
実際はオープンソースの方がバグに対する対応早いと思うんだが。

IBMなんかだとむちゃくちゃゴリ押ししてお願いしまくって技術的に協力すれば
個別PTFとかで対応してくれない事もないんだが、多分普通の会社かつSEでは無理かと。

まあ、この場合はIBMの中の人と技術交流できるんで個人的な意見として
技術屋としては有意義(?)だったりするんだが・・・。

ただ、ここでMySQLがオープンソースだから云々とか言うレベルの人では
お金払ってもベンダーは相手してくれないとオモ。

しかし、ここでよく話題に上がるOracleとかはバグ発見したらソッコーでパッチ
作ってくれるの?そうとは思えんのだが・・・。
920NAME IS NULL:2006/10/21(土) 15:04:29 ID:???
>>919
やばいのはすぐにパッチつくってくれることもある。
921NAME IS NULL:2006/10/21(土) 16:00:51 ID:???
続けて、次のネタ

やっぱりというか、PHPが多いけど、この先はRubyも増えそうかな。

What is your favourite Connector/API ?

C-API 209 (5.5%)
PHP (mysql/mysqli) 1989 (52.6%)
Perl (DBI) 334 (8.8%)
Connector/J (JDBC) 603 (16.0%)
Connector/ODBC 234 (6.2%)
Connector/NET 165 (4.4%)
Ruby 26 (0.7%)
MySQL++ 109 (2.9%)
other 110 (2.9%)

A total of 3779 votes have been cast in this poll so far.

Poll opened December 9, 2004.
922NAME IS NULL:2006/10/21(土) 16:15:28 ID:???
それって多分外国のみのアンケートなんだろうなぁ。
923NAME IS NULL:2006/10/21(土) 16:18:33 ID:???
いや、俺もたまに投票するから外国のみという事はないと思う。
924NAME IS NULL:2006/10/21(土) 17:27:51 ID:???
3779票って…どういう投票よ?
925NAME IS NULL:2006/10/21(土) 17:46:33 ID:???
926NAME IS NULL:2006/10/23(月) 00:56:07 ID:T4eIfXH+
ローカルのXAMPP(MySQL - 5.0.21)のphpMyAdminで、構築したDBを
レンタルサーバーのMySQL 4.0.27で動かしたいのですが、
レンサバのphpMyAdminで、そのままインポートするとsyntax error エラーが出てしまいます。

ダウングレードというか、
なんとかコンバートすることはできないでしょうか・・・
927NAME IS NULL:2006/10/23(月) 19:14:05 ID:???
レンサバを変えればOK
928NAME IS NULL:2006/10/23(月) 19:56:54 ID:???
>>926
phpMyAdmin って使ったこと無いからわからんが、sshで mysqldumpしたらどう?
929NAME IS NULL:2006/10/24(火) 06:31:36 ID:???
ver4.1とそれより前のバージョンとは結構ちがうよ。
特にcharがバイトから文字数になったことは大きいわけで。
あと5.0だと日付関連の扱いも変わったはず。
syntax errorが出てるなら、それを手がかり調べてみるとか。
930926:2006/10/24(火) 13:29:34 ID:Aqoe/mjP
助言ありがとうございます。

実は、Drupalを動かしてたんですが、Druapl付属のmysql初期化ファイルが、
ver4.0のと4.1ので、DEFAULT CHARSET=utf8しか違わなかったので、
DEFAULT CHARSET=utf8
を削除したら、なんとかインポートできました。
>>929みたら、ちょっと怖い気もしますが、
とりあえず、動いているようです。
931NAME IS NULL:2006/10/25(水) 20:05:42 ID:TmEIsgyc
MySQL5.0.26 + WindowsXP

PHPスクリプトから接続をリソースプールに保持したままにする場合、長時間無操作で発生する
エラー:MySQL server has gone away
は、どうすれば素早く解消できるのでしょうか。

ご教示お願いします。
932NAME IS NULL:2006/10/25(水) 20:24:12 ID:???
そのエラー内容でググったら1つ目に出てくるんだが・・・
933931:2006/10/25(水) 20:55:41 ID:???
スクリプト内では、一回のリクエストごとに少なくとも一回のSELECT文を発行しているのです。
しかし何度更新しても同エラーが発生するので、少々お手上げの状態なのです。
934NAME IS NULL:2006/10/25(水) 22:33:05 ID:???
BerkleyもInnoもOracleの意のままか。
935NAME IS NULL:2006/10/25(水) 23:38:51 ID:duHEQ/gu
正規表現について質問です。
漢数字がはじめにきてるレコードを検索したいと思い、
select * from 'dbName' where 'fieldName' regexp '^[一二三四五六七八九十百]';
で検索をかけると、
一 この表に・・・
二 次の項目に関して・・・

などに混じって
導火線
備考

などが該当フィールドとしてあがってきます。
文字コードはECU-JPです。

何が悪いのでしょうか?
どうすれば、望みを叶える事が出来るのでしょうか?
ご存知の方いらっしゃったらよろしくお願いいたします。
936NAME IS NULL:2006/10/25(水) 23:39:32 ID:duHEQ/gu
ごめんなさい。
該当フィールドではなく、該当レコードでした。
よろしくお願いいたします。
937NAME IS NULL:2006/10/26(木) 01:39:22 ID:???
phpMyAdmin使うぐらいだから、sshなんて無理だろ。
せいぜいwebmin止まりだと思う。

つーかssh使えるなら、mysqlコマンド使ってるよな。


Cって結構使われてるね。perl廚やアクセス廚のグループじゃん。速度求めるならCだよな。
おまいら、VC++とgccとどっち使ってるの?


オープンソースもオラクル案件も、金が絡むと損害賠償問題になるから必死に直すことに成るよ。
債務不履行、法律上の瑕疵担保責任とか、いくらでも材料はある。
個人情報なんてDBに突っ込んで扱ってたりしたら、最高裁で一人当たり5000円の判例が有るから、1万人程度でも5000万の損害賠償が発生する。


utfで格納する実装で、euc使うなんてアフォだな。
自前でutfとeucの変換ルーチンの仕様を検証して確認して使ってるのか?
938NAME IS NULL:2006/10/26(木) 02:37:41 ID:???
>>937

おまいさんは誰に何が言いたのか、さっぱりわからん
939NAME IS NULL:2006/10/26(木) 02:44:55 ID:???
なんか荒らしに来る奴がいるみたいでけど、
ここのスレはちょうどいいぞ。
ここなら荒らし放題だ。
http://hobby7.2ch.net/test/read.cgi/rail/1160718150/
940NAME IS NULL:2006/10/26(木) 03:34:56 ID:???
phpMyAdminつかうよな。

べんりだもんな。
941NAME IS NULL:2006/10/26(木) 03:39:38 ID:???
何だかんだでいまだに一番使えるのが残念でならない
せめて自由なテンプレートでカスタマイズでも出来ればよかったんだけど・・・
942NAME IS NULL:2006/10/26(木) 11:05:22 ID:???
mysqlに関するすべての事をphpMyAdminで済まそうと思う姿勢が悪い。
943NAME IS NULL:2006/10/26(木) 15:51:53 ID:???
「MySQLは有償のEnterpriseと無償のCommunity Serverに分かれる」---MySQL社長:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20061025/251807/

Enterpriseを使うやつなんているのかな。
944NAME IS NULL:2006/10/26(木) 18:58:33 ID:???
無償版はたんなる人柱版になってしまったなw
945NAME IS NULL:2006/10/26(木) 19:37:45 ID:???
も〜 おわり〜だね〜♪
946NAME IS NULL:2006/10/27(金) 00:01:30 ID:???
>>943
「なに?オープンソース?なんかあったら誰が責任とるんだ!」
とか言う上司がいるようなところじゃない?
947NAME IS NULL:2006/10/27(金) 00:34:43 ID:???
>>946
じゃあなた自身、なにかあったらどう責任とるの?
948NAME IS NULL:2006/10/27(金) 00:44:58 ID:???
http://www.mysql.gr.jp/mysqlml/mysql/msg/13421

コンパイルすらできない奴には使う資格無し と。
949NAME IS NULL:2006/10/27(金) 01:05:27 ID:???
MSのIISが世界中を真っ赤っかにした、あの事件
MSはどう責任とったんだ
苦情から最近やった対応したけど、2年間もバグ放置(50数件のバグw)してたオッラクル
がどうしたって?w
説明してもらおうか
950NAME IS NULL:2006/10/27(金) 01:10:15 ID:???
別に特段おどろくことでもないだろ
Redhatと同じことやるっての話だろ
Redhat Enterprise とFedora みたいな関係だろ
951NAME IS NULL:2006/10/27(金) 07:03:05 ID:???
リナックスやマイスクールもバグぐらいは有るよ。
日本語変換のバグに比べれば(w

マイスクールで無料でぼったくり商売してるところはますます厳しくなるな(w
952NAME IS NULL:2006/10/27(金) 07:15:53 ID:???
ABにライセンス料払わずに稼いでるミクシのような会社は潰れれば良いと思う。
953NAME IS NULL:2006/10/27(金) 08:05:18 ID:???
だからオープンソースとフリーソフトの区別をつけろとあれほど
954NAME IS NULL:2006/10/27(金) 08:13:30 ID:???
Enterprise で要求される要件って、ほとんどInnoDBでしか実現できんだろ。
Oracleにタマ握られている状態でええんか?
それとも新たにデータベース形式をつくるんか?
955NAME IS NULL:2006/10/27(金) 09:14:30 ID:???
>>952
儲かってる会社が気に入らないだけだろ?
払っても他の部分で難癖つけるよね。
956NAME IS NULL:2006/10/27(金) 09:37:46 ID:???
>>947
責任取るのが上司の仕事
957NAME IS NULL:2006/10/27(金) 13:18:22 ID:???
これから学習の為にMySQLをインストールしようと思っているのですが、
勉強目的で使う場合どのバージョンが一番使いやすいでしょうか?
958NAME IS NULL:2006/10/27(金) 13:40:34 ID:???
MySQLのアーキテクチャを勉強したいのか
DBを勉強したいのかどっちなんだ?
そもそも使いやすいってなんだ?
959957:2006/10/27(金) 14:16:21 ID:???
基本情報+ソフトウェア開発のSQL文の学習です。
バージョンによって使い勝手が違ってくると思ったのですが、
そうでもないんですかね?
960NAME IS NULL:2006/10/27(金) 14:29:08 ID:???
>>959
一番新しいの。
961957:2006/10/27(金) 19:04:56 ID:???
>>960
thxですー
962NAME IS NULL:2006/10/27(金) 19:28:32 ID:???
すみませんが質問です。
VARCHAR(3)のカラムに、10文字の文字列を挿入したところ、エラーの発生を期
待したのですが、先頭の3文字がカラムにセットされてしまいました。

データが挿入されず、エラーが発生するようにさせる方法はないでしょうか?

環境は、RedHatEnterpriseLinux4
mysql Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (i686) using readline 5.0
です。
963362:2006/10/27(金) 19:45:09 ID:???
自己解決しそうです。
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
----- my.cnf -----
[mysqld]
sql_mode = 'STRICT_ALL_TABLES'

多分これで良さそうです。試してみます。
964362:2006/10/27(金) 19:47:37 ID:???
訂正です。
http://ikda.net/fswiki/wiki.cgi?page=MySQL

[mysqld]
sql_mode=STRICT_ALL_TABLES

引用符''は要らなかったようです。
965NAME IS NULL:2006/10/27(金) 23:58:05 ID:???
アフォが湧いてる。
phpあたりでチェックして弾けよ。
不正な文字列チェックもしてないだろ(w

そもそもSQLって方言有るよ。
パフォーマンス考えても、個別にSQL変えるのが普通だし。
SQL92で組んでたら遅くてダメポ。
966NAME IS NULL:2006/10/28(土) 01:06:21 ID:Wc5NZXSR
いつ5.1のGA版出るんだよ
967NAME IS NULL:2006/10/28(土) 02:00:15 ID:???
本家でMySQL 5.0.26探してたらが見当たらなくなってたんだけど消えた?
968NAME IS NULL:2006/10/28(土) 04:32:22 ID:VgyjUfLX
自宅鯖用にMySQL入れようと思ったんですけど、
Community Serverってのでいいんですかね…?
他解説サイト照らし合わせて導入してたら
明らかに違う内容になってたので、どれ入れたら良いか困ってます。
どのMySQL入れればいいんでしょうか?
969NAME IS NULL:2006/10/28(土) 08:22:41 ID:???
5.0.24aに戻っているのは、差別化のため?
970NAME IS NULL:2006/10/28(土) 12:57:07 ID:???
>>969
http://dev.mysql.com/doc/refman/5.0/en/news-5-0-27.html
MySQL 5.0.26 introduced an ABI incompatibility, which this release reverts. Programs compiled against 5.0.26 are not compatible with any other version and must be recompiled. (Bug#23427)
971NAME IS NULL:2006/10/28(土) 15:55:25 ID:v5Ro4U7r
UPDATEするときにもともと入っている値に+1したいのですがどのようにすればいいでしょうか?
おチからお貸しください
972810:2006/10/28(土) 17:41:50 ID:???
入院してますた
>>813
>mysql4.0X前提です。
なので、サブクエリは使えないです(・ω・`)ショボーン
973NAME IS NULL:2006/10/28(土) 18:23:15 ID:s3W1eRiX
すみませんが教えてください
auto_incrementフィールドに追加した値というのは
追加した直後に最大の値を取得するということでしか
分からないものでしょうか?
974NAME IS NULL:2006/10/28(土) 18:24:36 ID:???
>>971
updateで+1するクエリを書く。

>>972
だったら取得してアプリで処理するのが無難。
同じテーブルをjoinする技もあるが、バージョンによってはエラーになることもあるのでオススメしない
975NAME IS NULL:2006/10/28(土) 18:25:11 ID:???
>>973
last insert id でググる
976973:2006/10/28(土) 18:46:28 ID:???
>>975
即レスありがとうございました
感謝です!
977971:2006/10/28(土) 21:56:09 ID:v5Ro4U7r
>>974
もったいぶんなよはげ
それで出来ないから聞いてるのにやなやつだな
978NAME IS NULL:2006/10/28(土) 23:56:32 ID:???
>>954
作ってるよ?
979810:2006/10/29(日) 01:15:12 ID:???
>>971
UPDATE `TableName` SET `FieldName` = `FieldName` + 1 WHERE `対象` = 対象ID;
じゃね?

>>974
やっぱりだめっすか・・・
このへんがmysql4の辛いとこだな・・・

DBから配列で取っておいてphp側でゴニョゴニョ。マンドクサ
980971:2006/10/29(日) 01:20:25 ID:0/dKasgK
>>979さん
有難うございます!できました^^!
UPDATE `TableName` SET `FieldName` = + 1 WHERE `対象` = 対象ID;
ってしてました^^;
981NAME IS NULL:2006/10/29(日) 07:51:19 ID:???
php側で処理する方がdb側の機能が低くても対応しやすいけどな。
db側の機能使ってると、db変えたときに氏ねる。
982810:2006/10/30(月) 01:23:47 ID:???
>>981
なるほど・・・
確かにそれは言えるけど、やっぱめんどいす。
配列でゴニョゴニョしてると、開発してる時はいいけどしばらくしてから自分のソースみても意味不明になることが多いorz
983NAME IS NULL:2006/10/30(月) 02:01:40 ID:???
質問です。
MySQLで1つのテーブルに格納可能な最大行数はいくつでしょうか?
984NAME IS NULL:2006/10/30(月) 06:50:45 ID:???
65536
985NAME IS NULL:2006/10/30(月) 06:59:53 ID:???
Excelかよ
986NAME IS NULL:2006/10/30(月) 07:04:13 ID:+ZkUoZVr
初心者質問で、申し訳ないのですが、phpでDBにinsertするスクリプトを書いたのですが、
このinsertするときに、現状だとロックをしていないのですが、↓のようにロックをするのが普通なんですかね?

mysql_query("LOCK TABLES table1 WRITE");
mysql_query("INSERT INTO table1(fld1) VALUES('aaa')");
mysql_query("UNLOCK TABLES");
987NAME IS NULL:2006/10/30(月) 07:33:46 ID:???
>>986
データの整合性を保証したい処理なのであれば
きっとそう書くのだろうね
ちなみにそれはテーブル型がMyISAMの場合か
InnoDBやBDBならばbegin 〜 commit/rollback
ってところだろう
988NAME IS NULL:2006/10/30(月) 07:59:46 ID:+ZkUoZVr
>>987
ありがとうございます。
すいません、文章の後半が勉強不足で理解できないのですが、MyISAMとかなら
LOCK TABLES〜ではなくて、begin 〜 commit/rollbackを使うってことですか?
begin 〜 はトランザクション処理のことですよね!?
一回のINSERTを行うだけなら、トランザクションを使う必要はないですよね!?
989NAME IS NULL:2006/10/30(月) 09:00:59 ID:???
>>988
いや、逆だ
MyISAMだとテーブル型としてトランザクションをサポートしてないので
lock tables 〜によるテーブルロックが必要であるということだ
一方、InnoDBなどはトランザクションをサポートしているゆえ
begin 〜 commit/rollback を使えるということだ

>一回のINSERTを行うだけなら、トランザクションを使う必要はないですよね!?

それはケースバイケースだけどね

個人的には更新系のSQLを発行する場合はなるべく
データの整合性は保証されるべきだと思ってるけど
つまり、INSERT INTO table1(fld1) VALUES('aaa'); を発行する場合でも
テーブルロックやトランザクション処理によってデータの整合性を
保証してやるべきだと思う
990NAME IS NULL:2006/10/30(月) 12:09:27 ID:+ZkUoZVr
>>989
なるほど!大変、勉強になりました。ありがとうございます!!
まだまだ、全然勉強不足なんで頑張りたいです。
991NAME IS NULL:2006/10/30(月) 15:17:15 ID:qfzAj0Ln
wwwとDBを分割しようと思っているんですが、その際の互いの接続はハブでのLAN接続?
直結?それとも?

一般的にはどう繋いでるんでしょうか?
992NAME IS NULL:2006/10/30(月) 15:40:43 ID:???
物理的な部分については、如何様にも。

論理的には、
 AP - クライアント
 AP - DB
 DB バックアップ専用
とネットワークを分けるのが普通かな。
993NAME IS NULL
クロスケーブルで直結はなかなか強気…。
管理用のPCを繋いだりする可能性を考えて
一個リピータハブ噛ましたりするかな。