1 :
名無しさん@お腹いっぱい。 :
03/06/30 12:15 ID:dCYaryCH
2 :
名無しさん@お腹いっぱい。 :03/06/30 12:41 ID:mksmM8x+
このままの勢いだとドラゴンボール板になっちゃうよ〜〜
5 :
名無しさん@お腹いっぱい。 :03/07/01 02:09 ID:xBsRCkAi
糞スレたてんなヴォケ
本スレ上げ
/´:::::::::::::::::::::::::::::::::::::::::::`ヽ /::::::::::::::::::::::::::::::::::::::::::::::::::::::::\ (:::::::::::人ノヽノヽノヽノヽ人::::::::::::::::) (:::::::::::/ \:::::::::::::) (::::::::::/ \:::::::::::) (::::::::::/ アニヲタちゃん ヽ::::::::) |:::::::/ ,,;;;;;;;;;;;;;;, ,,;;;;;;;;;;;;;;, |:::::::::| |:::::┏━━━━┓ ┏━━━━┓:::::| |::=ロ -=・=- ┣━┫ -=・=- ロ=::| /|:::/ヽ /ノ ヽ / ヽ|ヽ .| |/ ` ̄ ̄ ̄´/ ` ̄ ̄ ̄´ | | ヽ| (. o⌒o .) .|ノ \ :::::::::::::U:::::::::::::: / |\ ::::--┬┬┬--:::: /| わたすを呼んだ? |. \. └┴┘ ./ .| \ / \ ´ ̄ ̄ ̄` ./ \ / ___/|.\______/|\___ /;;;;;;;;;;;;;;; \\ //;;;;;;;;;;;;;;;;;\ /;;;;;;;;;;;;;;;;;;;;;;;;;;;\\ //;;;;;;;;;;;;;;;;;;;;;;;;;;; 39歳処女プログラマーアニヲタヒッキー(143センチ・58キロ)がこのスレに興味を持っちゃったようです
9 :
名無しさん@お腹いっぱい。 :03/07/02 22:29 ID:jZx/pVIu
糞スレ大好きデベタ厨
11 :
名無しさん@お腹いっぱい。 :03/07/13 14:19 ID:v5oe19/L
MySQLをLAN内で共有する方法が分からない。 クライアントにAccess2002を使い、MyODBCで繋ぐが、Localマシンのみしか テーブルリンクが出来ない。ほかのマシンではlocalhost の部分を 192.168.1.12のIPにしたがだめ。 どこをチェックすれば良いの?
13 :
名無しさん@お腹いっぱい。 :03/07/14 20:09 ID:Av+cbe2Q
副問合せできるようになった?
14 :
名無しさん@お腹いっぱい。 :03/07/19 13:45 ID:xKnlGcjg
>>11 かねやん MYSQL
で検索して、GUIのツール使え。
ついでにそのツールのサイトでいろいろ説明まである。
15 :
名無しさん@お腹いっぱい。 :03/07/23 22:00 ID:cA5GugKq
Linuxで データベースファイルの場所を変更するには どうしたらいいのですか?バージョンは4.0.13何ですけど。 RedHat8にrpmでインストールしたけど、HDDの都合でデフォルトの /var/lib/mysqlじゃないところに移したいんだけど。
あぼーん
あぼーん
あぼーん
19 :
名無しさん@お腹いっぱい。 :03/07/28 21:42 ID:VlA252nr
MySQLを使っているんですがたまに追加したデータが 既存のレコードより上になってしまうんですが どうしてなんでしょうか? また直す方法はあるんでしょうか? バージョンは3.23.56です。
あぼーん
21 :
名無しさん@お腹いっぱい。 :03/07/31 22:51 ID:9I9GdYG9
YahooやGoogleみたいに、10件ずつ表示するってやりたいときに、 どういうSQL文を書けばよいのでしょうか?
22 :
名無しさん@お腹いっぱい。 :03/08/01 10:44 ID:JGL8wvkD
>>15 シンボリックリンクをはりましょう。
>>19 順序を決定するためのフィールドを作りましょう。
>>21 SELECT * FROM table ORDER BY field LIMIT 開始レコード, 10
23 :
名無しさん@お腹いっぱい。 :03/08/01 11:27 ID:2eMei+Ic
MySQLを起動するには、 mysqld.exeでサーバーを起動して クライアントを起動するという順序でよろしいですか?
>>23 それでよろしいです。
常用するなら、サービスとして起動すると便利でしょう。
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
mysql のバージョン変えたりごちょごちょやってたら ERROR 2003: Can't connect to MySQL server on 'localhost' (10061) がでてうごかんくなったす・゚・(ノД`)・゚・ どうすりゃええの?
質問するときは最低限プラットフォームと MySQLのバージョンぐらい書くべし ちなみにうちのNT+3.25だと サービス動いてないときにそのメッセージが表示される
28 :
27 :03/08/04 01:53 ID:???
↑は>26へのレス
29 :
名無しさん@お腹いっぱい。 :03/08/04 11:12 ID:c6FNqGgu
インストール直後はちゃんと起動するのに、 いったんxpをシャットダウンしたあとで起動すると、 青信号にならない。 ウーン。
そりゃ自動起動にしてないだけでは? マイコンピュータの管理からサービスに行ってみれ
最近MySQLでもInnoDB?を使うとトランザクション処理 ができるらしいという話をきいたんだけど ALTER TABLEとかで既存のテーブルに対し変更をかけることって出来る? それともテーブル再定義してINSERT〜AS SELECT * FROM でデータ移行したほうがいいの? 環境WinNT4.0(SP6a)+3.23.53
33 :
名無しさん@お腹いっぱい。 :03/08/06 17:24 ID:Ft9W4vTV
正直MySQLが副問い合わせ対応になるのをのを待ち続けています。
保守あげ InnoDBへの移行作業が終了いたしました。 移行するためのAlterTableの書式が解らなかったため 新規にInnoDBでテーブルを定義して旧テーブルから Insertでの移行作業になりました。 しかし400レコードごときのテーブルの移行に1秒もかかるとは・・・・ それはさておきトランザクションモードを有効にするのに いちいち起動後に" set autocommit=0;"って入力するのは メンドクサイんだけど自動的に認識させるよい方法はないんだろうか?
35にコテハンいれわすれた ・・・ショボンヌ
連カキ(暇人) DBMSのいろんなとこでの評価をみると Oracle、SQLServer、PostgreSQL、MySQLの評価は こんなかんじ(DB2とかはよくわからん) ============================================== ☆機能の充実 Oracle > SQLServer > PostgreSQL> MySQL ☆堅牢性 Oracle > MySQL > PostgreSQL > SQLServer ☆とっつきやすさ SQLServer > Oracle > MySQL > PostgreSQL ☆軽い・早い Oracle = MySQL > PostgreSQL > SQLServer ☆世界的に使われている Oracle > MySQL = PostgreSQL > SQLServer ☆日本での評価 Oracle > SQLServer = PostgreSQL> MySQL ☆他国での評価 Oracle > MySQL> SQLServer = PostgreSQL ============================================== 資料はOracle8iがでた頃のだからもう違うのかもしれないけど まぁ指標ぐらいにはなるかも?? 反論などあったらドウゾ
あぼーん
値段 MySQL = PostgreSQL > SQLServer > Oracle いやまあ自分1人でなんでもやる環境だと初期費用が気になるもんで・・
41 :
名無しさん@お腹いっぱい。 :03/08/07 23:39 ID:ZyaAjwu5
これコマーシャルライセンスってのがよくわかんねーんだけど 自社で勝手に作って勝手に使う分には金払わなくていいってこと?
42 :
名無しさん@お腹いっぱい。 :03/08/08 06:59 ID:SBxDZUbO
>>41 そのケースだとGPLでいいんじゃない。
GPLに汚染されたくない人(極端に平たく言えば、ユーザーにソース渡したくない人)
とサポートがほしい人はコマーシャルライセンスを買えば?
GPLおっけーな人は買う必要ないし...って感じ。
あぼーん
44 :
名無しさん@お腹いっぱい。 :03/08/08 16:19 ID:plx0eYzp
MySQLで、テーブルの多重結合で一度にデータを取り出すのと、 SELECT文を必要に応じて呼び出すのでは、どの辺からどのように 差が出てきますか? 現在多重結合でやっているのですが、カラムがひとつ違うだけで 新しい行となったりするなら、SELECT文発行の方がいいかなと 思いまして。それともこういうSELECT結果は単純に行ではなく、 キャッシュから組み上げているのですか?それならまた 通信量などは変わってきますけど。
45 :
名無しさん@お腹いっぱい。 :03/08/08 20:35 ID:WHqUCIYy
mysqldumpでblobを出すとき、 通常では 'abc' と出るのを 0x616263 と出るように改造してみた。 ソースコードありがたみをしみじみと感じた。 Cをあまり使わないので、書き加えたソースコードはウソコ並なわけだが。
あぼーん
>>41 42氏がすでに回答済みだけどいちおう
コマーシャルライセンスについてはMyNAのMLLogにて既出
ttp://www.mysql.gr.jp/mysqlml/msg.cgi?ml=mysql&id=6523 GPLって?
ttp://e-words.jp/?w=GPL >>44 >どの辺からどのように差が出てきますか?
具体的な数値をだせといわれれば俺には無理です
EXPLAINつかって解析してください
>現在多重結合でやっているのですが
結合ってLEFT JOINとかですか?ソースきぼん
>SELECT結果は単純に行ではなく、
>キャッシュから組み上げているのですか?それならまた
>通信量などは変わってきますけど。
同一のSQLを発行すればキャッシュからロードされるはず
ただサーバ自身での処理はこうそくになるが
クライアント側にキャッシュされるわけではないので
通信量はかわらんのでは?
俺も最近OraからMyに移ってきたばかりで勉強中の身なので
なんかまちがってたらゴメソ
48 :
44 :03/08/09 22:14 ID:???
>47 そうです、LEFT JOINを複数組み合わせています。 とはいっても個人使用なのでせいぜい一桁ですが、 始めにすべての条件のSELECTを作るのと、Whileやforeachで何度も呼ぶのでは どう違うのかなと思いまして。 >キャッシュはサーバー側 そうですが。ありがとうございました。
49 :
44 :03/08/10 23:21 ID:???
今更ですけども、 ○そうですか。 ×そうです"が"。
日本でMySQLが一般的にならないのは日本MySQLユーザー会がタコなだけだろ あそこで出した本買ったけど最悪だった。 こいつunix知らねーなって感じだった。 ノリがqmailの日本で総締めやってる某サイトみたいな感じで凄い閉鎖的で 盲目的な信者って雰囲気で正直キモイ
51 :
名無しさん@お腹いっぱい。 :03/08/13 15:07 ID:A5V6E9Pb
>>50 そうかなあ。MySQLユーザー会は盲目的な信者の集まりってより、
むしろ、なんにもやってないって感じ。(いやマニュアル翻訳とかやってんだけどさ)
Postgresユーザー会みたいな活発な活動をしてればもっと普及してるんだろうなあ。
# つーか、普通オライリーじゃないの?MySQL本って。今となっては、もう古すぎだけど...。
52 :
:03/08/13 18:25 ID:???
「一週間でマスターする」シリーズのSQLでMySQLを使って勉強したんだけど、初心者用の 本って何かないでしょうかねぇ。勉強したいのはSQLなんで、別にMySQL専用でなくても良 いんですが。
リファレンス本買って実際コーディングしてみればいいんじゃね? SQLに限ってみればぜんぜん難しくないし。
55 :
52 :03/08/14 09:36 ID:???
56 :
名無しさん@お腹いっぱい。 :03/08/14 16:59 ID:+efqF0PF
SELECT * FROM ○○ のときに、他のは '○○' としなくて○○だけで選択できたのに、 Commentというテーブルだけ 'Comment'と括らなくてはエラーが出ます。 これは仕様なんですか? phpmyadminでのことなんですけど。
あぼーん
COMMENTはSQL予約語なんでそのせいじゃない?
60 :
名無しさん@お腹いっぱい。 :03/08/15 02:51 ID:O7WK1OLz
61 :
山崎 渉 :03/08/15 21:57 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
62 :
山崎 渉 :03/08/15 22:51 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
63 :
名無しさん@お腹いっぱい。 :03/08/18 22:56 ID:WgO1ItwF
MySQL4.0.14b入れてみたんだけどタスクトレイに信号みたいなアイコンとかGUIなやつ出てこないんだけど 仕様ですか?
64 :
:03/08/19 20:06 ID:???
>>64 すんません解決しました。
本見てやってたんですが微妙にexeファイルが違ってただけでした。
UNIXにしか入れたことないから青信号なんか見たことないな。
67 :
MySQL :03/08/31 17:19 ID:E/K1Y1rr
Turbolinux 8 WorkstationにOracle9iをインストールできた人っているのかな? あと、Turbolinux 8 WorkstationにMySQLをインストールできた人もいるのかな?
68 :
名無しさん@お腹いっぱい。 :03/08/31 21:49 ID:cZjo6PpZ
69 :
MySQL :03/08/31 22:19 ID:+ARAwEwu
70 :
Mysql :03/09/01 10:01 ID:tlxrTNN3
Mysql3.23.57をダウンロードしたけど解凍できない。 どーすりゃいいんだよー! なにぶん初心者なもので基本的な間違いと思います。
71 :
MySQL :03/09/01 16:13 ID:2LCK3oNp
>>70 mkdirで作ったディレクトリにダウンロードしてコンパイルして、インストールするなら
簡単にできると思う。
問題はインストール後の設定がうまく行かないから困っている。
72 :
MySQL :03/09/01 16:15 ID:2LCK3oNp
> root# su - mysql > users$ /usr/local/mysql/bin/mysql -u root > コマンドを実行してみましたが、下記のようなエラーが > 出ました。 > ERROR2002: Can't connect to local MySQL server > through socket '/var/lib/mysql/mysql.sock'(13) > と表示がでたので、実際にvarディレクトリの中の > mysql.sockを調べてみたのですが、そのようなファイル > はありませんでした。 『sock』ってやつが、くせものなんだよな!MySQLを起動できなくてイライラする。
73 :
名無しさん@お腹いっぱい。 :03/09/01 16:55 ID:IdnUs66K
>>74 mysqlはクライエント。
サーバーを起動しなさいよ。サーバーを
mysqladminとか、safe_mysqldとか。
# Unix系があんまり得意じゃないんだったらWebminとかつかってみたら?
74 :
74 :03/09/01 18:51 ID:???
あぼーん
76 :
名無しさん@お腹いっぱい。 :03/09/01 22:47 ID:zSHhRQOx
今日初めてSQLを学んだ。 慣れれば簡単そうだけど覚えるのが多いね
77 :
73 :03/09/02 01:29 ID:???
・゚・(ノД`)・゚・うわぁぁん
78 :
名無しさん@お腹いっぱい。 :03/09/03 14:18 ID:yeJYRlE/
MySQLって2バイト文字でORDER BY使うと変になりません?上手くソートしてくれないんですけど
うまくって?
そういやMySQLでソートのオーダー指定、eucにしたい場合 手段はあるの? /usr/local/share/mysql/charsets/ にそれらしいものはないし
81 :
名無しさん@お腹いっぱい。 :03/09/03 19:01 ID:W0OmmNxy
>>80 /etc/my.cnf とかで
default-character-set=ujis
をかいとく。
あぼーん
83 :
名無しさん@お腹いっぱい。 :03/09/03 19:40 ID:UDlDPwkA
windows上でMySQL使ってるんですが、 言語を日本語にすると、 言語ファイルがeucなので文字化けしてしまいます。 何か解決策ってありますかね?
>>83 言語ファイルって\mysql\share\japanese\errmsg.txt かな?
これをsjisに変換してcomp-err 使ってerrmsg.sysを作るらしいよ
85 :
78 :03/09/04 02:05 ID:ri/Rs3ix
ソートテーブルが無ければ文字コード順でしかソートできないと思うが それでもひらがなやカタカナだったらうまくいきそうなもんだが・・・
87 :
84 :03/09/04 02:31 ID:???
らしいよって、実際やってみたらうまくいった でもあまり日本語である必要性を感じないな
88 :
83 :03/09/04 12:38 ID:???
なるほど、ありがとうです!
89 :
78 :03/09/06 19:47 ID:???
>>86 ひらがなでもダメだったんで、聞いてみたわけなんですけどね。
結論はやはり2バイト文字ソート不可ってことですか。
>>89 そりゃ設定にミスがあるのでは
コンフィグファイルは確認した?
>>78 my.cnf とテストデータとSQL文はってよ。
92 :
名無しさん@お腹いっぱい。 :03/09/10 18:29 ID:ooLt7plh
mysql Ver 11.18 Distrib 3.23.56, for pc-linux (i686) を使っているのですが like '%%'文を使った時全く関係ないデータも表示されてしまうのですが これはバグなのでしょうか?
94 :
92 :03/09/10 19:18 ID:ooLt7plh
>>93 すみません。
create table test (sei varchar(10));
insert into test(sei)values('オカダ');
insert into test(sei)values('オカムラ');
insert into test(sei)values('ナカジマ');
select sei from test where sei like '%オカダ%';
で結果は3レコード共表示されてしまうのです。
それってCGIとか使ってる訳じゃないよね?
96 :
92 :03/09/10 20:58 ID:ooLt7plh
PHPは使っています。 ただ、サーバから直接コマンドで打ち込んでも 同じ現象がでてきます。
>>96 プロンプトで直接打ち込んでみたけどうちでは問題ないよ
CGIにSQL文打ち込んでやると、エンコード・デコードの関係でそのままじゃうまくいかなかったりするけど
使用している漢字コードと/etc/my.conf のチェック、かな
99 :
98 :03/09/10 22:08 ID:???
my.cnfの間違い
100 :
名無しさん@お腹いっぱい。 :03/09/11 15:23 ID:bTSyKieN
MySQL 3.23.49 です。 上に同じような質問ありますが、いっしょかな?? 「やすださん」「てすとさん」 がいるとします。 や% で検索すると 「やすださん」「てすとさん」の2人ともHIT %やすと% で検索すると「てすとさん」がHIT… #他にもたくさん。た行以降があやしいです。 どうしたらよいですか?対策はあります??
101 :
名無しさん@お腹いっぱい。 :03/09/11 15:40 ID:1j6h+CU7
102 :
100 :03/09/11 16:57 ID:bTSyKieN
>>101 どうもです。
という事は…。
1.「my.cnf」が原因なら、MySQLが使えるWebホスティングを利用している人の場合は
Webホスティング会社に文句言えばいいのかな???
2.「使用している漢字コード」が問題の場合には、何が原因なんだろう。
EUC-JPは日本語検索には駄目っていうか、不向きとかですか???
さっきまで、MySQLって日本語検索使えないジャン! って思ってました。
違ったらウレシぃな。
コマンドライン使えない人はどうするのかわからんが、 mysql から、 \s したときに Server characterset: と Client characterset: はどう出る?
105 :
名無しさん@お腹いっぱい。 :03/09/11 17:54 ID:e53gXgoN
load file命令ってトランザクションが効かないんですか? beginしてload fileしてからcommitしても反映されないのですが。
106 :
101 :03/09/11 17:55 ID:e53gXgoN
load fileじゃなくてload dataでした・・・
107 :
105 :03/09/11 17:56 ID:e53gXgoN
しかもなまえ間違ってしまった・・・
108 :
78 :03/09/11 20:50 ID:4nvwGUlK
亀でスマソ。 まずは、my.cnf。 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid default-character-set=ujis
109 :
78 :03/09/11 21:42 ID:4nvwGUlK
テーブル tablename +--+-------------+ | id | name | +--+-------------+ | 1 | あいうえお | 2 | かきくけこ | 3 | さしすせそ | 4 | たちつてと | 5 | なにぬねの | 6 | はひふへほ | 7 | まみむめも | 8 | やゆよ +----+-------------+ select * from tablename order by name;
110 :
78 :03/09/11 21:43 ID:4nvwGUlK
実行結果 +----+-------------+ | id | name | +----+-------------+ | 5 | なにぬねの | 6 | はひふへほ | 8 | やゆよ | 1 | あいうえお | 2 | かきくけこ | 3 | さしすせそ | 4 | たちつてと | 7 | まみむめも +----+-------------+
111 :
78 :03/09/11 23:06 ID:4nvwGUlK
こういう状況です。 お願いします。
[mysqld] のほうにも ujis設定を・・・
113 :
78 :03/09/12 00:58 ID:l9EaP0nA
書く位置が悪かったんですね… 無事解決しました。ありがとうございましたm(__)m
114 :
名無しさん@お腹いっぱい。 :03/09/15 07:41 ID:C6Z0dSbU
VIEW(仮想テーブル)に対応予定はないんですかね。 対応ソフトが多いだけに、もったいない。
2台のLinuxでWEBサーバ、DBサーバにしてるんですが、 この間のパケットって暗号化されてますか? PostgreSQLだとオプションで暗号化出来るみたいなんでつが
>>115 「暗号化されているか?」なんて、インストールした奴にしか判らん。
「暗号化できるか?」なら、出来る。
117 :
115 :03/09/16 04:17 ID:???
118 :
名無しさん@お腹いっぱい。 :03/09/16 12:04 ID:BhUxtOc6
windows の mysql のデータベースの(utf-8で書かれた)データを直接閲覧、 修正できるツールは無いですか。
>>117 >PostgreSQLだとオプションで暗号化出来るみたいなんでつが
って、自分で調べたのではないのか? どうなんだ?
調べて無くても、「調べる場所」は判っているんだよな?
オプションを調べるんだよ!
122 :
名無しさん@お腹いっぱい。 :03/09/17 03:30 ID:i7aLC+VI
MySQLのデータベースの文字コードってsjisとujisしかないんですが utf-8の場合、ujisのデータベースにそのまま入るんですか? (特に問題はないんでしょうか) PostgreSQLだと文字コードをunicodeでデータベースを作成して たんですが。
123 :
名無しさん@お腹いっぱい。 :03/09/17 10:37 ID:CQuUQIu4
125 :
名無しさん@お腹いっぱい。 :03/09/17 23:01 ID:6PwGnikw
Access2000のmdbファイルをMySQLで読み出したいために、 データソースのファイルDNSに当該mdbファイルを指定しました。 しかしMySQLコンソールでこのmdbファイルを読めばいいか 分かりません。教えていただけないでしょうか。 環境はW2KSP4/MySQL-4.0.15/MyODBC-3.51.06です。 またAccess2000はインストールされていません。
126 :
名無しさん@お腹いっぱい。 :03/09/17 23:39 ID:8OYDXCZd
これ以上ないほどわかりやすく書いてあるじゃん。 GPLかコマーシャルライセンスか、好きな方を選べ。
129 :
114 :03/09/18 21:46 ID:eYPQubf2
>>124 おぉ! 対応予定あるんですね。
POP3認証、SMTP認証、FTP認証、 Postfixのルックアップテーブル、等をMySQLでやってるんだけど、
それぞれに癖があって一元管理は一苦労。VIEWが使えたら・・・と思ったよ。
でも5.0か・・・まだまだ先だな・・・。
130 :
名無しさん@お腹いっぱい。 :03/09/19 12:24 ID:/+eHmlZ/
MySQLで他のPC(ホスト)から接続をうけつける にはどういう設定が必要でしょうか? WinNT版とLinux版のmySQL使ってます
133 :
名無しさん@お腹いっぱい。 :03/09/23 19:55 ID:LGnbdP2o
Win版MySQLが動かなくて3日ほど悩んでます。 サイトを調べたり、本も買って、まったくその通りに やっているのですが、どうしても動きません。 設定は以下の通り(ほとんどデフォルト)なのですが、 何か足りない設定がありますでしょうか。 Windows2000 MySQL 3.23.58(最新版も試しました) C:\WINNT/my.ini [mysqld] basedir=C:/mysql #bind-address=localhost datadir=C:/mysql/data #language=C:/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M [WinMySQLadmin] Server=C:/mysql/bin/mysqld-max-nt.exe user=root password=++++++++++++
>>133 どうして動いてないってわかったの?
エラーは出てないのかな?
135 :
名無しさん@お腹いっぱい。 :03/09/23 21:06 ID:LGnbdP2o
>>134 mysqladmin pingが返ってこなかったり、winmysqladminで青信号に
なりません。またWindowsのサービスから起動すると
「ローカルコンピュータのMySQLサービスを開始できません。
エラー1067: プロセスの途中で強制終了しました。」
と表示されます。
上記のエラーについてもいろいろ調べてみたのですが、
解決策が見つかりませんでした。
winmysqladmin でエラーわからんかったっけ サービスのアカウントはシステムアカウント?
137 :
名無しさん@お腹いっぱい。 :03/09/24 21:20 ID:5fO7R8pJ
MySQLのC APIに依存しないやり方で スクリプト言語からのインターフェイスを作りたいんだけど ソース以外で参考にできる情報ってないだろうか。
138 :
名無しさん@お腹いっぱい。 :03/09/25 01:06 ID:njzPHpBr
139 :
nobodyさん :03/09/25 12:43 ID:fYGM/aC9
myisamchkをMySQL稼働中にやるのはマズいですか? MySQL止めてからやれって書いてあるのは見たことはあるのですが 現状止めれない状態なので・・ バレない時間に最適化するしかないのか・・
MySQLってWindowsでは使えませんか?
>>140 "MySQL" と "Windows" でググってみようとは思いませんでしたか?
ググる以前に過去レス、しかも(ry
>>143 出ることは出るけど内容が理解できないんだろ
145 :
名無しさん@お腹いっぱい。 :03/10/06 00:53 ID:HSH8o4K9
電話番号で検索したいんだけど、格納されているデータが 03-xxx-2222 とか 045(666)yyyy のように適当な文字列(下手をすると電話番号ですらない)なのです こういうとき、どうしたらいいのでしょうか PHPから利用してるので まず電話番号のフィールドとキーを全部取り出して配列に入れて 数字以外の文字を削除した文字列を作って その文字列を検索するようにしていますが、正規表現とか select文一発でうまく出来るならそれでなんとかしたいです。 データベース上の電話番号の方を正規化(?)したいのですが 「データは見るだけ。触るな」と言われてしまったので
あぼーん
147 :
名無しさん@お腹いっぱい。 :03/10/06 03:04 ID:O8FTuLmF
>145 それはデータをDBに投入するプログラムがクソだな。 ちょっと長くなるけど、電話番号の数字と数字の間に [^0-9]* を入れた正規表現はどう? たとえば、110 を調べたいときは、 select * from table where tel regexp "^[^0-9$]*1[^0-9$]*1[^0-9$]*0[^0-9$]*$";
>>145 電話番号を正規化したデータと、そのままのテキストデータ
両方を入れておけばいいじゃん。
149 :
名無しさん@お腹いっぱい。 :03/10/06 18:29 ID:n1OmKH4E
>>135 その後、動いたのですか?
私もWindowsXPにインスートルしたのですが、
サービスの開始ができません。
何かしらの設定等があるようでしたら、教えてください。
「見る」ってなんだ?モニタ眺めて脳内で正規化するのか?
>>151 DBに対して許されている操作はSELECTだけという意味です
153 :
名無しさん@お腹いっぱい。 :03/10/07 14:35 ID:vi2tZuFQ
>>152 select * from table
where replace(replace(replace(telno,'-',''),'(',''),')','') = '045666yyyy'
154 :
最近はじめました :03/10/07 22:05 ID:AhexBLfu
id番号としてauto_incrementを設定しているのですが、 既存のレコードを削除した後に新たにレコードを入力すると その削除したレコードのidに自動的になってくれないのですがどうすれば良いですか? 今は数が少ないので番号指定でしのいでるんですが。。 教えて下さい、お願いします。
>>154 一番おっきい数字+1になるのが仕様なので
それがいやな場合は
とりあえずユニークとかプライマリにしといて
豪快に1から順にインサートしてって
成功するまで頑張るとか
>>155 ああ。。仕様ですか。。。
でも、ありがとうございました。
すっきりしました。
157 :
名無しさん@お腹いっぱい。 :03/10/08 03:01 ID:nxmirwQO
実用のDBって書類整理以外に用途って何があるんでしょうか?
書類整理?
159 :
名無しさん@お腹いっぱい。 :03/10/08 03:14 ID:nxmirwQO
帳票やらECデータを分かりやすく言うと書類整理かなって思って
アクセスみたいなものでフリーウェアあります? select文とか打つの疲れちゃった。
ここ2、3日で相当痛いレスが急に増えたけど、なんかあったのか?
162 :
名無しさん@お腹いっぱい。 :03/10/08 09:19 ID:4zzmbpu1
164 :
:03/10/08 22:02 ID:hnVTTfdl
MySQLをSETUP.EXEでインストールしました。 mysqladmin.exeをダブルクリックして、パスを通して、コマンドプロンプトから mysql -uroot -p とすると Error2003 Can't connect to MySQL server on 'localhost' (10061)と言うエラーがでます。 データベースのマークも赤信号のままです。 過去になんどもインストールしたのですが、こんなことはありませんでした。mysqladmin.exeを一度ダブルクリックすると 以降コンピュータを起動するたびに、MySQLサーバが自動的に起動してくれたのですが、今回は起動しません。 データベースにつなぐこともできないので、なにもできません。 インストールし直してもうまくいきません。 関係あるかしりませんが、Java2EnterpriseとJBossが他にインストールしてあります。 誰か分かる方教えてください。 ちなみにバージョンは3.23.58です
166 :
164 :03/10/08 22:50 ID:hnVTTfdl
>>165 どうも、ありがとうございます。
一応すべて目をとおしました。20くらい前のレスでも、僕と同じ悩みを抱えていたみたいですが、
解決はしていないみたいです。
ちなみに、サービスを開始しようとすると
「ローカルコンピュータのmysqlを起動できません。
エラー1067:プロセスを途中で強制終了しました。」
というダイアログがでます。コマンドプロンプトで同じことをやっても、同じ結果です。
167 :
164 :03/10/08 23:32 ID:hnVTTfdl
先ほど、データベースが使用できないとエラーが出て、質問させていただきました が、解決できました。他の掲示板などでも私と同じ問題を多数見つけましたので、解 決方法(思いついた箇所)を書いておきたいと思います。 私のエラーとしては その1. mysqladmin.exeをダブルクリックして、パスを通して、コマンドプロンプトから mysql -uroot -p とすると Error2003 Can't connect to MySQL server on 'localhost' (10061)と言うエラーが でます。 その2. winmysqladmin.exeを起動しました。しかし、信号マークが赤信号のままで青信号の 状態になりません。testというデータベースを作 ろうと思い、mysqladmin -uroot -p creat testコマンドをうちましたが、結果は以 下のとおりです。 C:\Documents and Settings\ヒロミツ>mysqladmin -uroot -p create test Enter password: mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to MySQL server on 'localhost' (10061)' Check that mysqld is running on localhost and that the port is 3306. You can check this by doing 'telnet localhost 3306' その3. mysqladmin.exeもパソコン起動毎に、mysqladmin.exeも起動しなければなりま せん。普通は、一番最初にmysqladmin.exeを起動したら、次回からは自動的に mysqladmin.exeは、自動的に起動されると思いました。 その4. サービスを開始しようとすると 「ローカルコンピュータのmysqlを起動できません。 エラー1067:プロセスを途中で強制終了しました。」 というダイアログがでます。コマンドプロンプトで同じことをやっても、同じ結果で す。
168 :
164 :03/10/08 23:32 ID:hnVTTfdl
以下が解決方法です。 ・mySQLのバージョンを変更 3.23.58→3.23.49(これは、多分 関係ないと思いますが一応書いておきます。) ・インストールするディレクトリを変更 D:\Applications\mysql → C:\mysql (もしかすると関係あるかもしれません。) ・インストールする手順 1.元からあったMySQL3.23.58をアンインストールします。そのとき、 「残ったファイルを削除する為に、コンピュータを再起動してください」との旨の英 語のダイアログボックスがでるので、コンピュータを再起動します。 2.再起動したら、元の3.23.58のインストールされていたフォルダを削除し ます。また、C:\WINDOWS\my.iniというファイルも削除しました。 3.コンピュータをもう一度再起動します。 4.MySQL3.23.49をインストールしなおしました。 5.コンピュータを再起動する ・再起動が終わったら、C:\mysql\bin\winmysqladmin.exeを起動します。ユーザ名と パスワードを入力します。その後、画面一番右下のタスクトレイにある信号機のマー クを右クリックして「WINNT」→「Install the Service」というようなのをクリック しました。その後、もう一度画面右下の信号機のマークを右クリックして、 「WINNT」→「Start the service」と言うようなものをクリックしました。 以上で動作するようになりました。
php4.3.3とMySQLで開発しようとしているのですが、 Yahoo!とかであるような、 「トップ > インターネット > ホームページ作成 > ソフト」 みたいな階層は、どうやってテーブル設計すればいいのでしょうか? id parentid(外部キー) categoryname みたいにして、parentidを親のカテゴリとする方法はすぐに思いつくのですが、 それだと階層の深さ分、SQLを発行しなければならないですよね・・・ こういう場合って、どう設計するのがよいのでしょうか? セオリーみたいなものってあるのでしょうか?
170 :
名無しさん@お腹いっぱい。 :03/10/09 01:01 ID:ZawGExxu
windows版使うやつの気が知れん
171 :
名無しさん@お腹いっぱい。 :03/10/09 03:27 ID:4pGSeP67
リモートアクセス許可や細かいアクセス制御について分かりやすく開設されたサイトってないでしょうか?
172 :
名無しさん@お腹いっぱい。 :03/10/09 03:27 ID:4pGSeP67
解説で訂正です
173 :
名無しさん@お腹いっぱい。 :03/10/09 23:32 ID:qpbWQriT
>>168 インストールディレクトリをc:\mysqlより変更した場合、
my.cnfの[mysqld]セクションでbasedirを設定する必要が
あった様な…
174 :
名無しさん@お腹いっぱい。 :03/10/10 17:39 ID:p96F2wEh
PHPを用いて、WEBからmysqlユーザーを登録するシステムを作りたいのですが、 どこかによい資料はないでしょうか? FreeBSD+Apache+PHPで考えています。 よろしくお願いします。
175 :
名無しさん@お腹いっぱい。 :03/10/11 05:25 ID:Lv8Nt5l1
`a`が1または2と言う場合、「`a` = 1 or `a` = 2」と`a` in(1,2)とは どちらが速いのでしょうか?
176 :
名無しさん@お腹いっぱい。 :03/10/13 01:19 ID:LbdzrcrS
177 :
名無しさん@お腹いっぱい。 :03/10/13 10:03 ID:PVGE/+js
WEBの書籍データベースを作っているのですが、 ひらがなで検索すると、一致しないはずのデータが抽出されてくるんですが何ででしょうか? 例えば、「きだん」で検索すると 「きむんかむい」、「だいきちふたたび」、「ふらっしゅきめんぐみ」 等がマッチします。 MySQLの設定では、文字コードは、全てujisにしています。 HTMLの文字コードもEUCにしてます。 SQL文は以下のものです。 SELECT * FROM mangatitle WHERE yomi LIKE '%きだん%'; 「%」を付けてSELECTすると、大文字・小文字を区別せずに一致するためでしょうか? 例えば、「%g%」で検索すると、「hoge」も「HOGE」もマッチしますよね。 解決策あれば、教えてください。
178 :
NAME IS NULL :03/10/13 16:54 ID:z697UFKW
4.0をRPMでインストールしたいんだけどrequire perlって出てインストールできません。 情報希望。
179 :
NAME IS NULL :03/10/14 09:43 ID:rDgEhKvy
>>174 Web連携のユーザ権限にGRANT持ったせるのは関心できないから
登録したユーザの情報を公開ディレクトリより上位でテキストに書き出して
cronで定期的に登録すればいいんじゃないかな?
MySQLより危険なユーザ自動登録をそうやってる。
181 :
NAME IS NULL :03/10/14 17:33 ID:rDgEhKvy
鈍器のような物では無理かな
select replace( 'a1b2c3d4e5f6g7h8i9j' , '\d' , '' ); こういうことがやりたいんだけど、できません
183 :
NAME IS NULL :03/10/15 17:35 ID:vUesjL8e
>>182 REPLACE()で正規表現使いたいってこと?
たぶん無理。
184 :
NAME IS NULL :03/10/15 18:03 ID:9ePsFHcA
処理をMySQLに依存してやるなら2つのトランザクションでlikeと 組み合わせるしかないんじゃないかな。
185 :
177 :03/10/15 23:54 ID:mU+Ykr7H
ポカミスでした。 my.cnfの設定をしてから、再起動をしてませんでした。 してたつもりだったのに。。。
186 :
174 :03/10/16 18:36 ID:J3HfvKvY
>>176 もうすこし具体的にPHPのソースを記述していただければ幸いです。
どうもそのあたりがわからないので。すんまそ
187 :
176 :03/10/16 23:02 ID:0JW2EfyC
>>186 だから
$sql = 'grant all on *.* to username@localhost identified by "password"';
$sql = 'grant all on *.* to username@"%" identified by "password"';
こんなの作ってqueryおくりゃいいじゃん。
接続の方法すらわからないとか?
188 :
:03/10/17 13:33 ID:F7R7j37N
拡張子.sqlのファイルを書いてそいつを実行する方法をおしえてくらしゃい。
source hoge.sql
191 :
NAME IS NULL :03/10/17 22:57 ID:Pg7NdwwI
MySQLというか、SQL自体が初心者なのですが、こういう場合、どう処理すればいいか 教えていただけますか? DBにはテーブル1とテーブル2があり、IDで結合されます。 テーブル1とテーブル2は1:nです。 欲しいのは、テーブル1のレコード数です。 WHERE条件としてテーブル2の値のうち、いずれか1つがマッチすれば、 これを1つだけカウントしたいのです。 私のテストした方法は下のような文ですが、 当然ながら目的のものが得られず、テーブル2のレコード数が表示されました。 テーブル1 ID value1 テーブル2 ID value2 SELECT COUNT(テーブル1.ID) WHERE テーブル1.id = テーブル2.id AND value2="TRUE"; 私なりにいろいろ考えたのですが、答えが見つからずにいます。 わかる方、お教えください。
SELECT COUNT(distinct テーブル1.ID) WHERE テーブル1.id = テーブル2.id AND value2="TRUE";
193 :
NAME IS NULL :03/10/18 00:40 ID:IeO00OJI
>>192 できました!
どうもありがとうございます!
もっと精進しないとだめですね。
194 :
モモ :03/10/18 00:59 ID:8u/OdU8D
ちょっとおたずねしたいことがあります。 一旦drop tableでテーブルを削除して、 作成したときと同じcreate文を入力したら、 Column 'Email' is used with UNIQUE or INDEX but is not defined as NO T NULL とエラーを返されてしまいました。 primary keyを指定しなかったらcreateできたのですが、指定するとダメなようです。 どうしてなんでしょうか???
あぼーん
196 :
NAME IS NULL :03/10/22 02:00 ID:cFk9J1B/
MySQLのセキュリティって外部アクセスを許可する以外は ほぼデフォルトの運用を前提とした場合でも十分に安全なんでしょうか?
ACCESS2000にMySQLのテーブルを2つインポートして、 それぞれのテーブルで主キーになっているIDフィールド同士を 結合したフォームを作成しました。 それでデータを入力しようとすると、 フォームに配置したコントロールが表示されず、 新規レコードを追加することができません。 どうすれば表示されるのでしょうか・・・ OS: WinXP MySQLのバージョンは4.0.15 ドライバーは3.51 ACCESS2000 です。
MyISAMってどう発音してます?
マイイズム ゲージ無しだな
200 :
198 :03/10/29 10:24 ID:???
事故レス マイアイサム ってのが正解ということが分かりますた さんくす
>>196 フロントエンドがWEBサーバーのみで、DBがバックエンドマシンで
WANに触れてないなら何してもそんな問題ないだろうし、1台でWEBもDBも
な環境でFWないならなにやっても危ない。
202 :
NAME IS NULL :03/10/30 22:00 ID:sTbt+zO/
MySQL 4.1はいったいいつになったらリリースされるのでしょうか?
>>202 リリースされても半年は怖くて使えないから
その質問はリリースが出てからでも遅くない。
4.0.12使ってます。 外部キー制約つきのテーブルを作ろうとするとエラーがでます。 ERROR 1005: Can't create table './testdb/tableA.frm' (errno: 150) テーブルは次の定義です。 mysql> CREATE TABLE tableA (id integer PRIMARY KEY, -> name varchar(20), -> key integer, -> FOREIGN KEY (key) REFERENCES ref_table (code)) -> TYPE=InnoDB -> ; ref_tableはInnoDBでもISAMでも同じくダメです。 エラーメッセージは構文違いといっていますが、 どこがまちがってるんでしょうか。
>>203 そんな悲しいこと言わないで下さい。
ストアドプロシージャとサブクエリーを早く使わせて欲しい。
206 :
NAME IS NULL :03/10/31 14:43 ID:CiJ/pV9o
MySQLで現在SJISでデータを格納しているのですが これらをEUCのコードに変更したいと思っています。 EUCで一つずつ入れていく以外に 何かいい方法ってありませんでしょうか?
968 名前:nobodyさん[] 投稿日:03/10/30 22:28 ID:tW7d2qdo PHPからMySQLにEUC-JPでデータを渡したいんですけど どうすればよろしいのでしょうか?
209 :
NAME IS NULL :03/11/02 01:16 ID:GdGJSzZ8
レンタルサーバ上で今まではPostgresを使ってたのですが、 MySQLを使ってみようとして、入れてみました。 インストールはうまくいって、SSH接続してmysqlコマンドでDBをいじれるとこまではできました。 ただ、MyODBCを使って自分のPC(WinXP-ProSP1、Access2003)から接続しようとしたら、 そのリモホからは接続が許可されていません、というように怒られてしまいました。 MySQLのマニュアルを読んだところ、 ≪UNIX 上の MySQL サーバーに対して、ユーザーと Windows マシンのアクセス許可を与えます。 これは、 GRANT コマンドで可能です。 「4.3.1 GRANT と REVOKE 構文」節参照. ≫ とあり、その節を参照したのですが・・・うまくいきませんでした。 以下、やったことを述べてみます。 rootユーザ(パスワード設定済み)がすでに存在するのですが、、 SSH上で(「mysql」と打ってから) grant all on * to root@"%"; とやってみました。しかし、 mysql> grant all on * to root@"%"; Query OK, 0 rows affected (0.00 sec) と言われてしまいました。(要は何も変わらなかったということですよね。。。) どうすれば、レンタルサーバ上のMySQLへ、自分のPCから、MyODBC経由で接続できるようになるのでしょうか?
210 :
NAME IS NULL :03/11/02 01:44 ID:fz8EzMsm
red hat linux 9使ってるんだけどいつもインストールがRPMで一括全部 インストール。なのでどこにmysqlがはいってるかわからない・・・ whereis mysqlでもでてこないし。/usr/local/mysqlじゃないし。 linuxについてはど素人です。dbもいじったことがありません
>>210 もしかして何か聞きたいの?日記ならよそで・・・
212 :
NAME IS NULL :03/11/02 03:19 ID:fz8EzMsm
そう、red hat linux9でデフォルトでmysqlってどこにインストールされてるの?
/etc/my.cnf はあるかね?そこ見ればデータの場所はわかるが、、、 RedHatって どこそこ以下にインストールってないじゃん コマンドは/usr/binだし、dataは/var/... だしlogは、、って全部違う
214 :
209 :03/11/02 21:55 ID:8Wuh+V/d
すいません、なぜか、その後、とくになにもいじってないはずなのに、 再度やってみたら、いまくいきました。なんでだろう。。。
MySQLの設定ファイルmysql.cnfをいじりたいんですが、 ドキュメント読んでもさっぱり分かりません。 なにかMySQLの構造を知るよい情報はないでしょうか。 URLでも本でもなんでもいいんですけど。
216 :
NAME IS NULL :03/11/03 00:19 ID:2vXOz8oZ
MySQLに入れる日本語は、やはり、EUCのほうがいいのでしょうか・・・
>>216 私はSJISですけど。
JDBCのドライバでは「Windows-31J」の指定です。
>>216 うちはEUCですよ。
Linuxで使ってると、EUCのほうがいろいろと
扱いやすいですから。
219 :
NAME IS NULL :03/11/03 20:39 ID:FTvFQ5Rb
MySQLでトランザクションを利用する場合、 SET AUTOCOMMIT=0; として、AUTOCOMMIT モードを off にしますが、 version 4.1.0 ではこのコマンドが実行できません。 エラーの内容は、 >ERROR 1193: Unknown system variable 'AUTOCOMMIT' 確かにシステム変数一覧にも AUTOCOMMIT が無い様なんですが、 4.1ではどのように設定するんでしょうか。 また、my.cnfで設定する方法があれば教えてください。
>>216 i-modeコンテンツやってるから、SHIFT_JISだなー
一部の端末で、encodeingにWindows-31J使えないやつがあって
しょうがないからShift_JISにしてやると、いわゆる「98文字」が
文字化けして・・こまったもんだ。SUN死ね。
221 :
NAME IS NULL :03/11/05 00:45 ID:yHeFJQhD
>>220 Javaのことほとんどしらないだけど、
出力時にSJISに変換ってのはできないもんなんでしょか?
>>221 SJISと、Shift_JISとWindows-31J(MS-932)ってのは
よく似た別のものなんだよ。大体同じなんだが、違う文字が
ちょっとだけある。
一般的にいうShift_JISはIANA名はWindows-31Jが正解
SJISといわれるのがShift_JIS
IANA名をJDBCドライバに教えてやらないと変換狂う。
しかも、無理やり出してやると、ブラウザによって狂う。
i-modeだと一部の電話機でWindows-31Jが通らない。
Shift_JISと言って見ると文字化ける。
どうしろっていうんだよまったく。
あー、このSUN氏ねってのは、JDK1.41から日本語のShift_JISが Windows-31Jから、誰も使っていないShift_JISというなにかに 変わったから。勝手にかえるなぼけ。 DBとあんまり関係ない話題ですまそ。 っていうか、みんなJDBCつかってないの?
224 :
NAME IS NULL :03/11/05 11:10 ID:nyTnBTuk
質問です。 1件の申し込みで会員を3人まで登録できる申し込みDBのようなものを作ってるのですが、 この登録する3人はIDで格納して、表示するときは会員テーブルからIDで名前を引っ張ってきて 表示させようと考えてます。 その処理を行うクエリーを考える場合、1回のクエリーで3人分のIDを 名前に変換して表示することは可能でしょうか? サブクエリを使えばできそうなんですが、MySQL4.0ではサポートされてないので。。。 よろしくお願いします。
>>224 いまいち言っている意味がわからんが、...単に表結合すればいいんじゃないのか?
テーブル設計をみせてくれよ。
>>224 結果が3行に渡ってもいいのなら
create table req (id integer, key1 integer, key2 integer, key3 integer);
create table name (key integer, name text);
select req.id, name from req, name
where req.id = "適当な数字"
and (req.key1 = name.key or req.key2 = name.key or req.key3 = name.key)
っていう手が使えるけど。
>>224 なんか、普通にDBでやることのようなんですが・・
なにができないんですか?
3つのクエリ使うのがシンプルで良いと思うけど、 それが許されない状況なのか????
229 :
224 :03/11/06 11:13 ID:???
>>225 わかりづらくてすいません。
テーブル構成はまさに
>>226 のようなイメージです。
このreqテーブルから、複数データを引っ張ってくる時に、
それぞれのkeyをnameに変換するようなクエリを
1つのクエリで実現が可能かどうか知りたかったのです。
>>226 ありがとうございます。私の説明で的確にテーブル構造を
理解してもらえてうれしいです。
そういうやり方もあるんですね。勉強になりました。
しかし、その例で言うreqテーブルから複数件表示させたいので
複数行だと厳しいです。単一行でそれぞれ名前に変換させることは
MySQL4.0xだと無理ですかねえ?
>>227 1つのクエリで処理することができなかったので。。。
>>228 いや、現状3回クエリを発行してやってるんですが
スマートに1回で済ませる事ができるのか知りたかったもので。
230 :
NAME IS NULL :03/11/07 00:41 ID:KwiV+fX2
>>229 すんませんが、226のselectって、クエリ1回やん(結果は3行だけど)
なんで3回必要なの?
231 :
NAME IS NULL :03/11/07 00:55 ID:/vQ6KF7E
RedHat9にてmysql稼働してます どうしてもSJISで処理したいのですがどうしてもうまくいきません /etc/my.cnfにdefault-character-set=sjisを追加し デーモンの再起動(service mysqld restart)でだめです やりかた違いますか?ご教授お願いします<__>
232 :
NAME IS NULL :03/11/07 00:59 ID:KwiV+fX2
こういうこと? create table req (id integer, key1 integer, key2 integer, key3 integer); create table name (k integer, name text); というときに、 select r.id,a.name,b.name,c.name from req r,name a,name b,name c where r.key1=a.k and r.key2=b.k and r.key3=c.k and r.id=数字; あるいは、これだとnullの名前がある場合がだめなら select r.id,a.name,b.name,c.name from req r left join name a on r.key1=a.k left join name b on r.key2=b.k left join name c on r.key3=c.k where r.id=数字;
233 :
NAME IS NULL :03/11/07 01:04 ID:KwiV+fX2
234 :
226 :03/11/07 01:31 ID:???
>>231 MySQLのバージョンは?
何をやろうとしてどうダメなの?
236 :
231 :03/11/07 12:44 ID:E/8LA/8a
赤帽エラータすべて最新です 通常のhtmlがsjis、sqlから受け取ったデータがeuc、混ざってしまうのでsjisで統一したいのです もしかして今気づいたのですが 途中で設定変えたので変えたあとの入力データならうまくいくのかな?
あぼーん
238 :
224 :03/11/07 15:02 ID:???
>>232 なるほど!同じテーブルを別名で結合するんですね。
再帰結合っていうのかな。
とても参考になりました。ありがとうございます。
239 :
NAME IS NULL :03/11/07 22:13 ID:KwiV+fX2
>>236 DBなんて、indexとlockつきのファイルシステムにすぎないんだから、
EUCでいれた文書をSJISで取り出すなんてできません。最初からSJISで
いれませう。
__ __ ミ <_葱看> <_葱看> / i レノノ)) ヽ ./ i レノノ))) \ d(~人il.゚ - ゚人 ミ .人il.゚ - ゚人 (/ (/(/ ミ /) て/´ ̄ヽ ( ((つつ、 彡 〈_:|フつ ⊂)) ) 〈|: _フつ ⊂i 人(つ .yy~~~~ .Y (/ ヽ Y!|.。 - 。Y __ \((ヘ _! / .\ !_ヘ//))) / __ <_葱看> < 葱看> 彡 <_葱看> <_葱看>. / i レノノ)) ヽ  ̄ ̄  ̄ ̄ / i レノノ))) \ / ̄ ̄ ̄ ̄ ̄ (~ 人il.゚ - ゚ノ . 人il.゚ ヮ゚ノ人 < みるまらー! (// ((つつ .⊂)Yi \_____ 彡 .⊂ヽノ! スタッ! ピョン! し'
あぼーん
242 :
NAME IS NULL :03/11/08 00:03 ID:sH7sTPWW
>>238 232です。べつに再帰してないです。たくさん並べてるだけです。
再帰っていうか、自己参照結合ってのは
create table log(id integer,d date);
みたいなテーブルで、自分と同じ日に来た人全員を取り出すとかですね。
select b.id from log a,log b where a.d=b.d and a.id=数字;
>>242 238が勘違いしそう。
再帰じゃないよ。単なる結合だよ > 238
244 :
NAME IS NULL :03/11/08 12:04 ID:zcqYFbc1
>>239 ありがとうございます
自己解決してました(読む前に)
LANGの設定をいじり、それにあわせてターミナルの設定も
うまくいきました、そしてお騒がせしました、、、
245 :
NAME IS NULL :03/11/08 13:36 ID:/KCgrsNA
SQL初心者です。 MySQLにEUCでデータを格納した場合、 普通にSELECT文で表示させると当然EUCコードで表示され 実際のデータが読めないのですが 何かいい方法ってありませんでしょうか?
>>245 ・プログラムを全てEUCで書く
・格納するデータをSJISにする
・必要に応じて文字コードを変換する
上の3つのうちのどれかを採用
247 :
NAME IS NULL :03/11/08 14:49 ID:Xrox5m1E
>>204 遅レス。
mysql> CREATE TABLE tableA (id integer PRIMARY KEY,
-> name varchar(20),
-> key integer,
-> INDEX (key), ←これ入れる
-> FOREIGN KEY (key) REFERENCES ref_table (code))
-> TYPE=InnoDB
-> ;
4行目入れてやってみましょう。
248 :
NAME IS NULL :03/11/08 14:57 ID:sH7sTPWW
>>245 windowsにMySQLがあって、なぜかEUCで入れているという
不思議な例だと思うんですが、Linux使えばいいと思うんですが。
あるいは、LinuxからWindowsのMySQLにログインすれば、EUC
が読めます。
頼むからwindowsに入れてるやつ帰ってくれよ
>>249 まーそうおもうけど。それはそれで。
>>245 もう一台、Linuxのマシンを置く。なんでもいい。
そこに、mysql clientをインストールする。
PCからterra termでLinuxにログインし、そこでホストに
windowsのマシンを指定してmysql clientを起動する。
・・・
って馬鹿だな。
251 :
NAME IS NULL :03/11/09 19:03 ID:oI0UyCJW
mySQLってマックOS X(10.1)じゃだめなんでしょうか? 10.2じゃないと動作しない?
test
>>251 たぶんその質問に答えられるやつはこの板にはこないと思うので
「ソースをgccでコンパイルすればうごくんじゃないかな」と言って
みるテスト。
254 :
NAME IS NULL :03/11/10 18:20 ID:daSrgZQa
質問ですが、 MySQLのversion4.1っていつ、正式リリースされるんでしょうか? この夏にはリリースされるようなことを春頃の雑誌には書いてあったのですが、 ずっとαバージョンのままです。 なにか問題でもあったのでしょうか。 はやく正式バージョンでサブクエリーを使ってみたいのに。
>>254 問題出ないわけないだろ。
お前は出たらすぐ使う気ですか?正気ですか?
DBなんて1年寝かせないと使えないよ。
>>255 254はいつリリースされるんだと聞いているんじゃないかい(俺は知らんが)。
だから`問題'ってのは正式リリースが遅れているのはなにか
問題でも発生しているのかってことだと読めるが。
正式バージョンの安定化はまた別問題だろ。読解力がない奴は困るな。
多機能を求めるならポストグレスつかえばいいんでわ
VineLinuxにRPMでインストールしようとしているのですが、 ウマくいきません。ご教授願えないでしょうか。 インストールしたのは以下の通りです。 MySQL-3.23.58-1.i386.rpm MySQL-client-3.23.58-1.i386.rpm MySQL-Max-3.23.58-1.i386.rpm MySQL-devel-3.23.58-1.i386.rpm MySQL-shared-3.23.58-1.i386.rpm 上記の4つに関してはインストールに成功したのですが、最後の MySQL-shared-3.23.58-1.i386.rpmだけ、 「エラー: 依存性の欠如: libc.so.6(GLIBC_2.2)は MySQL-shared-3.23.58-1 に必要とされています libpthread.so.0(GLIBC_2.2)は MySQL-shared-3.23.58-1 に必要とされています」 と表示されて、インストールができません。 libc.soとlibpthread.soは/usr/libにあります。 何かヒントだけで構いませんので宜しくお願いします。
ここは質問の趣旨から斜め上の答えを連発するスレですね。
phpmyadminをインスコしようと
http://koro.plala.jp/archi/tips/php_myadmin.php を見ていたらconfig.inc.phpのユーザー名とパスは
winmysqladmin で設定したIDとパスと書いてあったので
ちょっと混乱しているのですが…。
インスコ時に設定するconfig.inc.phpのユーザー名とパスは
1.MySQLインスコ時にwinmysqladminで設定したmy.iniから見れるユーザー名(適当)とパス。
2.DOSのmysqlから設定したユーザー名(root)とパス。
どちらを使ったらいいんでしょうか。
ローカル鯖(Windows環境)で両方試したら、どちらでも
Welcome to phpMyAdmin 2.5.4
Wrong username/password. Access denied.
とでてしまいました。
windowsに入れてるやつは帰れ
>>263 だからMySQLは日本でダメなんですね
質問のレベルが低すぎるのも問題だけどね
なんで4.1のリリースが遅れてるのかという質問は低レベルということか。ふーん。 じゃあ、MySQLのヘビーユーザ諸君は当然答えを知ってるんだよね。 MySQLは一企業が開発しているものだから代理店以外の外部の人間で開発状況が分かる奴がいるなんて信じられんがね。
>>266 Montyの娘に男ができて開発どころではないんだよ!
>>266 Montyの娘に男ができて開発どころではないんだよ!
>>268 一企業で開発しているといっても一個人ではないだろう(w
ここはMySQL雑談スレですね
>>266 理由。機能盛り込みすぎ。バグ取りに時間かかってるから。
っていうか、信じられないなら信じるな。どっかいけよ。
レプリケーション使ってるひといますか? マスターを複数おきたいんですけど
すいません・・・ MySQLをアンインストールしたいんですけど、 アプリの追加と削除をしたら、できないと帰ってきます。 どうやったら良いのでしょうか?
>>274 MySQLデーモンをシャットダウンして、
/usr/local/mysql以下を全消去
最近のUNIXには「アプリケーションの追加と削除」がついてるのか。そうですか…。
TurboLinux10とかには付いてそうだ
279 :
NAME IS NULL :03/11/14 17:41 ID:r+4jlwMH
PHPからMySQLのデータを参照していますがログに気になる記述が残ります。
NONEXISTENT/charsets/?.conf' not found (Errcode: 2)
というものなのですが、何かお気づきの点はありますでしょうか。
Googleにて検索してみたところ、
ttp://www.mysql.jp/mysql/TIPS/clients.html というページが見つかり、そのページに書かれているとおりに
モジュールの作成をやり直してみても変化がありません。
OS : RedHat 8
PHP : 4.3.3
MySQL : 3.23.58
>>278 2003年4月発表で"8か月以内"っていうと2003年内ってことだろうけど、
そうすると11月中旬の段階でまだαってのは、大丈夫なんですかい。
と心配してみるテスト。
教えてください。 select * from tableA left join tableB on key1=key2 で外部結合しtableA全件表示されるのですが これに select * from tableA left join tableB on key1=key2 where tableBの条件設定 とすると内部結合と同じ件数になります。 tableBの条件をつけながらtableAの全件で結果を表示するにはどのようにすればよろしいでしょうか? 環境windowsXP mySQL 3.23.51-nt apache php
>>281 mysql> create table t1(a int,b int);
mysql> create table t2(b int,c int,d text);
mysql> insert into t1 values(1,1),(2,2),(3,3);
mysql> insert into t2 values(1,10,'aaa'),(2,20,'bbb');
mysql> select * from t1 left join t2 on t1.b=t2.b;
+------+------+------+------+------+
| a | b | b | c | d |
+------+------+------+------+------+
| 1 | 1 | 1 | 10 | aaa |
| 2 | 2 | 2 | 20 | bbb |
| 3 | 3 | NULL | NULL | NULL |
+------+------+------+------+------+
mysql> select * from t1 left join t2 on t1.b=t2.b where t2.c<15;
+------+------+------+------+------+
| a | b | b | c | d |
+------+------+------+------+------+
| 1 | 1 | 1 | 10 | aaa |
+------+------+------+------+------+
mysql> select * from t1 left join t2 on t1.b=t2.b and t2.c<15;
+------+------+------+------+------+
| a | b | b | c | d |
+------+------+------+------+------+
| 1 | 1 | 1 | 10 | aaa |
| 2 | 2 | NULL | NULL | NULL |
| 3 | 3 | NULL | NULL | NULL |
+------+------+------+------+------+
こういうことがしたいんでしょうか?
>>13 >>33 と同じように、副問い合わせ対応を心待ちにしてる一人です。
DB2にでも行ったほうがいいですかね?
284 :
281 :03/11/15 00:19 ID:???
>>282 さま
great thanks at all です。
実際にはもうっちよっと複雑(テーブルを6つ結合してます)なので現時点ではまだ上手くいっておりませんが、ようするにwhereをつかわず結合条件で行うってことですね。
もっかい白紙に戻して条件整理してみます。
ヒントありがとうございました。
285 :
281 :03/11/15 09:12 ID:???
>>282 その後いろいろ試しました。実はt1表にも絞込み条件があるのですが
これがwhereを使わないとだめみたいです
andだけですと全件表示でタイムアウトします。
t1の絞込条件をどこに書いてもだめそう。
それとt2表でcount、sumしてるのでt1表項目でgroupしてます。
本屋行って情報あさってみます。
>>285 t1に「絞込み」案件があるなら、whereで
件数を絞るのはあたりまえ。それで全件でてくるほうがへん。
なにがなんでも全件なら、絞らないで全件出力して
言語(JavaでもPHPでも)のほうで条件つけるべきです。
>>285 どうしてもDBだけでやりたいなら
t1にt1を自己結合してやってみー
どうしてもWinでやってるとダメなんでつか? 業務でしかたなくWinなだけなのに…
べつにWinでもいいんだけどさー Winじゃないとわからない質問されてもこまる。 答える人がWinじゃないことがほとんどだということを頭に入れとこう。
了解しましたです
>>289 とりあえずApache+PHPからたたいてるので、
S-JISで保存してる以外は機種依存してないはず…
はず゙と信じたい(w
>>285 雰囲気としては、こんな感じでしょうか?
mysql> select * from t1 t11 left join t1 t12 on t11.a=t12.a and t12.a>2 left join t2 t21 on t11.b=t21.b and t21.c<20 where t11.b>1 group by t11.a;
+------+------+------+------+------+------+------+
| a | b | a | b | b | c | d |
+------+------+------+------+------+------+------+
| 2 | 2 | NULL | NULL | NULL | NULL | NULL |
| 3 | 3 | 3 | 3 | NULL | NULL | NULL |
+------+------+------+------+------+------+------+
なにげに副問い合わせ対応してるような
293 :
285 :03/11/16 22:58 ID:???
>>291 様
ありがとうございます。
テストデータでは確かに実現することを確認させていただきました。
小生の実データで同じようにやってみたつもりなのですが
タイムアウトどころかmysqldのプロセスタイムが99%になり反応しなくなりました。構文を間違えているかデータ件数が多いからかもしれません。
t1が15000件 t2 約36万件 ヒントは十分頂いたのであとはカットアンドトライしてみます。 SQLポケットリファレンスもgetしますた。
勉強します。
>>293 ハングはgroup byのせいだとおもうが、
どうせもうリアルタイムは無理っぽいので
insert into .. select でテンポラリーファイルに
落として複数回で処理したほうがいいかもね。
explainして解析しながら、適切なindexを用意すべき
296 :
NAME IS NULL :03/11/18 13:34 ID:50pEq5sG
MaxDB by MySQL Now Available. だそうだ。
297 :
285 :03/11/18 23:18 ID:???
>>294 様
insert intoでほぼ解決しました。ほぼというのはまだ件数によってはタイムアウトの懸念があるからです。
やったことはgroup byで求めたい部分だけをテンポラリーに書き出し
外部結合でそのテンポラリー他5つのテーブルをつなげました。
whereで絞り込んでも集計項目は’0’で表示され思い通りの結果が得られました。
>>295 様
本日時点ではexplainは試してません。が件数によってはindexを見直さないと駄目かも知れないと思ってます。
ありがとうございました。
ここの人、なにげに親切だな
299 :
NAME IS NULL :03/11/19 18:27 ID:9vmg5D2S
PostgreSQLのgetvalueって、mySQLではどういった形に なるのでしょうか。 只今移行中です。
getvalueってどっから持ってきたの?
あー、えーと、すみません、説明不足でした。 PerlのPgモジュールの中の関数の一つです。 MySQLの場合はfechrowはあるのですけどgetvalueが無いので どうやるのかなと。
って、これはWebProgの方で質問すべきですかね。 失礼しました。
えーとすいません、 select id,max(score) from Ranking group by id; みたいなSQLで、max(score)でorderしたいんですが、 いまは、insert into ... select .. group by.. したあとに orderしてるんですが、一発でやる方法ありますか? なんか間抜けだったらすいません。
とってもトな質問で申し訳ありません。 MySQL3.2をいま使ってますが 4にすると、なにが変わるのでしょうか?
ありがとうございます。 www.mysql.comの中をただよっていたのですが、 本家ではAlpha版、人柱版といろいろただよってるので 3→4なんていまさらというか、なかなかたとりつけなかったのです。
308 :
NAME IS NULL :03/11/22 01:09 ID:DMeZkjWB
mysql-standard-4.0.16をMac OS Xに入れてみました インストールはとりあえず成功 その後の初期設定を”日本MySQLユーザ会”のマニュアル見ながらやってますが なんかうまくいかないみたいで。。 マック使ってる人、おられましたらぜひ指南を
>>303 MySQLって、order by max(score) とか order by 2 とかって
使えないんだっけ?
>>309 さま
order by 2 が使えました。ありがとうございますです。
order by max(score)は使えなくて悩んでたんです。
>>310 select で max(score) as 得点とかしてやって
order by 得点 で出来ないかな?
countで同じようなことをやってうまくいきました。
今検証してみたらできたよ。多分出来ると思う。
>>311 さま
asで別名にすればorder通るんですね。
いままでasって何のためにあるんだろうって思ってました。
ありがとうございます。
>>308 何やってどう駄目なのかがわからないと答えようがないぞ。
314 :
NAME IS NULL :03/11/23 01:53 ID:OBEWScm5
まるっきり初心者です。 MySQLでは、Accessのようなグラフィカルなテーブルデータ表示はできるのでしょうか?
>>314 まるっきり初心者らしくて良い質問だな。
そんなことの出来るデータベースなんて普通は無い。
AccessはフロントエンドとDBMSが一つになっているからああいうものは特別。
(付属するツールで実現可能なのはいくつかあるけど)
ODBC使ってAccessをフロントエンドにMySQLを使い、 Adminツール併用すればそれっぽくなるかな
kaneyan使えば?
319 :
314 :03/11/23 11:24 ID:OBEWScm5
>>315 ありがとう!
目からうろこです。
市販されてるような高価なものならば、ああいうことは当然できるのかと思ってました
アクセスみたいなテーブル表示させるには、フロントエンドのツールが別途必要ってことなんですね?
MySQLって、高価だっけ・・ という突っ込みはともかく DBって、システムの1部品にすぎないのです。これに WEBサーバーとか、サーブレットとか組み合わせて、プログラム も書いてシステムに作り上げるのね。 Accessはエンドユーザー向けのパッケージ商品だからね。
321 :
NAME IS NULL :03/11/25 00:46 ID:0bqvZISp
あくせす以外の、テーブルの中身表示するようなフロントエンドツールなんてあるの?
paradox
ODBC使えるならCSEも楽
MySQLクラシックの表示価格とかAccess2003の実売と同じぐらいだけどね。
#MySQLも実売はもうちっと交渉で下がるよん。
折れもCSEかな。ODBCで繋がるのでMySQL以外の場合でも
I/Fの変更に気を使わないで済むし。
Navicat(旧MySQLスタジオ)は?
http://japan.mysqlstudio.com/ でもこういうでツールで値入れるのってデバッグや
メンテ以外にないよね。客には専用にツール作って渡すし。
>>324 おお!こんなのあったんだ。
マック使いのオレには興味あり
327 :
100 :03/11/25 20:04 ID:mkGiI1bT
クロンジョブでDBをバックアップ(ダンプ?)
↓
バックアップしたデータをphpMyAdminで復活
という事をしたいのですが、データの形式が違うらしく、復活できません(>_<)
phpMyAdminで読めるようなDUMPの仕方ってあるのかな?
他のphpMyAdminを使っている人はバックアップ(の自動化)はどうしてますか?
以下、問題のデータです。。
●phpMyAdminでのDUMP
# phpMyAdmin SQL Dump
# version 2.5.2
#
http://www.phpmyadmin.net #
# ホスト: localhost
# 作成の時間: 2003年 11月 25日 18:56
# サーバーのバージョン: 4.0.15
# PHP バージョン: 4.2.3
#
# データベース: `xxx`
#
# --------------------------------------------------------
#
# テーブルの構造 `table1`
#
# Creation: 2003年 11月 13日 18:15
# Last update: 2003年 11月 25日 16:28
#
CREATE TABLE `table1` (
`no` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`memo` text NOT NULL,
UNIQUE KEY `レコードナンバー` (`no`),
) TYPE=MyISAM COMMENT='メモ' AUTO_INCREMENT=194 ;
#
# テーブルのダンプデータ `table1`
#
INSERT INTO `table1` VALUES (1, 'タイトル', 'メモ');
INSERT INTO `table1` VALUES (2, 'タイトル', 'メモ');
# --------------------------------------------------------
328 :
100 :03/11/25 20:05 ID:mkGiI1bT
(続き) ●クロンジョブ用シェルスクリプト #! /bin/sh mysqldump -q [databasename] > /[dir]/[filename]`date +%Y%m%d%H%M%S`.dat -u [username] --password=[pass] ●↑の結果 -- MySQL dump 9.09 -- -- Host: localhost Database: xxx --------------------------------------------------------- -- Server version4.0.15-standard -- -- Table structure for table `table1` -- CREATE TABLE table1 ( no int(11) NOT NULL auto_increment, title varchar(255) NOT NULL default '', memo text NOT NULL, UNIQUE KEY レコードナンバー (no), ) TYPE=MyISAM COMMENT='メモ'; -- -- Dumping data for table `table1` -- INSERT INTO table1 VALUES (1,'タイトル','メモ'); INSERT INTO table1 VALUES (2,'タイトル','メモ'); PS.100のやつはホスティング会社さまからお返事もらえず、解決してません(しゅん…)
phpMyAdmin使ってる例じゃなくて悪いけど、 うちではDB一度止めてディレクトリ丸ごとコピーしてバックアップしてる。 ダンプすると量がすごいことになるので。
WHERE hoge='Hoge' 大文字小文字区別したいんだけど、どうするんだっけ?
>>330 mysql> select 'a'='A';
+---------+
| 'a'='A' |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
mysql> select BINARY 'a'='A';
+----------------+
| BINARY 'a'='A' |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)
ただ、フィールドにちゃんとbinary指定したほうがいいみたいよ。
>>331 ありがとう
オレのアルターを使ってバイナリーにしました。
333 :
NAME IS NULL :03/11/26 19:36 ID:8fFah1ri
IDCへの回線がtelnetしかポートあけてないので DBに直つなぎできないんだよなー。 そういう人はやっぱみんなコマンドラインかな。
厨な質問ですみませんが、 当方PHPとMySQLを使って、掲示板を作成してるのですが、 新規入力でデータを入力すると、板ナンバーと、時間だけは保存されますが、 肝心のユーザーの名前と投稿内容がDBに登録されません。 安直な質問ですが、よろしくお願いします。 環境 OS windows XP pro MySQL 4.0.14b PHP 4.3.4 Apache 2.0.48
>>335 さすがにソースみないでデバッグはできないです。
>335 自作なのに作ってるその人が「判らない」ってのもな。 言葉通り取るなら「外」つまりブラウザから渡ってくる値が 書き込まれないと捉えられるのだが。 一度DBに書き込む直前で、変数にのってる書き込みたい値を 画面で見れるようにechoかなんかで出力してみ。
338 :
100 :03/11/29 11:11 ID:Kl37Qzaf
>329 そですか〜〜 ウチはそれが出来ないので…しょぼん
339 :
100 :03/11/29 11:23 ID:Kl37Qzaf
>335 日本語のデータの受け取りが上手くいってないんじゃないですか? と書いてみるテスト。 //データをSQL用に変換 function cnv_sqlstr($string){ if(!get_magic_quotes_gpc()){ return addslashes($string); } else{ return $string; } } $nihongo_no_data = cnv_sqlstr($nihongo_no_data); こんな感じで日本語のデータを変換してみたらどうかしら。 文字コードとかも気にしながら〜
340 :
100 :03/11/29 12:01 ID:Kl37Qzaf
連書きごめんネ。 >330-332 で >100 が上手くできるんですけど!? SELECT `name` FROM `table1` WHERE BINARY `name` LIKE '%やすと%' このSQL文で正解なのかな、日本語検索って?どうなの? もしそうなら331さんアリガト〜なんですけど。
正解ではないが、うまくいってんならとりあえずいいんじゃない? 別に問題が出たらまた考えなさい
ひとつのテーブル内で、そのレコードにユニークな値を つけることは出来るけど(AUTO_INCREMENTとか)、 DB内の全てのテーブルのレコードに渡って ユニークな値だと保障できるようなフィールドを つくることができるでしょうか
>342 それはテーブルの設計をし直した方が良いのでは? レコード管理用のテーブルを1個つくれば済むと思うよ。
いっこのsequence使えばいいじゃん。
>>344 シーケンス用テーブル作るしかないですかね・・・
いろいろ調べたけどそれが一番よさそうです。
正規化したら、テーブルがふたつになった! めんどうくさい! ひとつのsql文で、ふたつのテーブルにインサートしたい! どうしたらよいでしょうか!
クックブック買った人いる? いたら感想きぼん。
ビューを作る、、無いのか トリガを作る、、無いのか
>347 来年の1月にVol.2がでてからまとめて買おうかと。 1万円こえますな。懐に痛い
350 :
NAME IS NULL :03/12/01 01:15 ID:m8McCW86
/usr/local/mysql/var/以下にある、 localhost-bin.001,localhost-bin.002とかいうファイルが すごく容量重いので、なんのファイルかstringsでみてみた ら昔のログファイルのようでした。 HDの容量をかなり圧迫しているので、必要な分だけ残して 消す方法はないのでしょうか?
ログはレプリケーションしていないならあまり必要ないが、 障害復旧の役に立つので、あるに越したことはない。 いらないなら、my.cnfのlogの行をコメントアウトするとよい。 あと、圧縮されているので、中を見るにはmysqlbinlogを使う。
352 :
NAME IS NULL :03/12/01 03:57 ID:m8McCW86
> 351 ありがとうございました。よくわかりました。 とりあえず要らないので消すことにします。
353 :
NAME IS NULL :03/12/01 04:11 ID:m8McCW86
load data した時に、 Query OK, 1157 rows affected (6.59 sec) Records: 1157 Deleted: 0 Skipped: 0 Warning: 40 と出るですが、このWarningの内容はどこで確かめたら よいのでしょうか?
>>353 すぐ上のやり取りで出てるログでは対処できんか?
355 :
NAME IS NULL :03/12/02 03:38 ID:BGR/fIxz
>>354 ログというのは、
/usr/local/mysql/var/localhost.localdomain.log
のことでしょうか? こちらではWarningの内容は出力されてませんでした。
プロンプト上で実行したコマンドの下にログというかメッセージが
通常出るものかと思いますが、load dataの時は、すぐに
Query OK, 1157 rows affected (6.59 sec)
Records: 1157 Deleted: 0 Skipped: 0 Warning: 40
と出てしまい、どこにも出力されてないような気がします。。。
356 :
NAME IS NULL :03/12/02 03:50 ID:RebitiAp
Y氏 好循環 I氏 悪循環 (日本) (健康体) (喘息) 1.(神が喘息であるかないかを決める) Y I 2.喘息でない人 喘息の人は は体力がある 体力がない Y I 3. 行動力、 五感(嗅覚)が鈍り感性が変化 する Y I 4.神は異常な感性の人間は本来人に迷惑をかけるから外に出てはいけないと思っている。 Y I 5.変化なし アトピーになる Y I 6.正常な感性 外に出なくなりさらに異常な感 性になる Y I 7.正常な人間 異常な人間(レッテル)
357 :
NAME IS NULL :03/12/02 03:51 ID:RebitiAp
Y I 8. 死 Y I 9. 来世 Y I 10.神は異常な人間は人に迷惑をかけるので行動を抑制する必要がある Y I 11.神は異常な人間は人に迷惑をかけるので行動を抑制する必要があると思っている。 Y I 12.神が喘息であるかないかを決める Y I 13.喘息でない 喘息である Y I 1.に戻る 神は事態の収拾に必死、頑張れよー。
358 :
NAME IS NULL :03/12/02 03:52 ID:RebitiAp
アトピー性皮膚炎の治し方 行動力=ガッツ=体力 アトピー性皮膚炎の患者は、 感覚の鈍い人間が多い。 それはなぜか。 幼少期喘息になるから、 体力がつかないため、 五感が弱るからである。 解決方法は、 五感を強くしてやればいい。 体力をつけることですぐに五感が正常になり、 行動力も湧くのである。 五感が正常になり、体力もつけば、 アトピー性皮膚炎も不思議と消えることが多い。
『くっ!ガッツがたりない』
初心者なんですが、現在PHPで作る掲示板の本買ってきて勉強中です。 それで意味は解からないんですが、PHPの基礎が終わったら、MySQLの章に入っています。 そこで質問なんですが、ODBC使ってMySQLとACCESSのリンクしようとしたら、denied for userとか言って弾かれてしまいます。 いろいろ自分なりに調べたところ、user名かパスワードが違うらしいと判明(? 自分の名前が、解からないので mysql>select * from user; と入力したんですが、それらしき名前はありません。 どうした良いのでしょうか?
>>360 ユーザがなかったら追加しようぜ!
mysql徹底入門P300あたり読め
>>361 レスありがとうございます。
ユーザーの追加方法について調べてみます。
access2000を使ってデータを入力使用としているのですが、 データ入力中や直後に「#Deleted」と入力行のセルのデータが表示されてしまいます。 一旦ウィンドウを閉じてもう一度表示しなおすと正常に入力されているようなのですが 再度データ入力すると同じ現象が起きてしまいます。 なぜこのようになってしまうのでしょうか?
364 :
さる :03/12/03 01:52 ID:GKVHTJhQ
オラクルにあるrowidってmysqlだと無いのか?
mysqlccで日本語打てない
367 :
NAME IS NULL :03/12/04 14:52 ID:h5vtXvdo
こういうエラーを発生させたんですがまったく良く分かってません。 データを呼び出して修正→さあ更新というところで発生しました。 何がいけないんでしょうか。ご教授をお願いします。 Syntax error or access violation, message from server: "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 'where id = 8' at line 1" ちなみに環境 Winxp Jsp(Tomcat使用) mysqlのバージョン4 ソースは長いんで後で。
シンタックス・エラーあるいはアクセス妨害(サーバーからのメッセージ):「SQLシンタックスにおけるエラーを持っています。正しいシンタックスが近く使用するためにあなたのMySQLサーバー・バージョンに相当するマニュアルをチェックする「どこで、id=8」1行目で"
>367 ソースも無いのにこんなんで原因が特定できたらエスパー
SQL関連のエラーは、いったんSQLを出力して、 cgiの時と同じユーザーで手動でそのSQLを実行してみりゃ 大抵再現する。
371 :
NAME IS NULL :03/12/05 03:24 ID:iuv8UIDW
>>367 単純な構文ミスと思われ
漏れもよくやってしまうんだが、変数とか使わずに実数値でデータを更新するSQL文を実行してみて
それで問題なければ変数を一個ずつ入れ替える
372 :
NAME IS NULL :03/12/05 11:07 ID:2cqQYevW
>>371 確かに構文ミスでした。解決いたしました。
>>370 の内容を参考にいちいちSQLを出力してみたら
あ、ここがミスってるのがけっこう分かってプログラム動きました。
なるほどなるほど。
つか、シンタックスエラーって普通は単なる構文とかのミスなんですね。
始めてこのエラーを見てすごい特殊なことをしたのかと
真剣に悩んだ私はただの馬鹿・・・。初心者はこれだから困る。
373 :
NAME IS NULL :03/12/05 11:15 ID:lJF2eG1U
timestamp に default を付けたくて、以下のようにしているのですが、 create table test( date timestamp default current_timestamp ); このようなエラーが出ます。 ERROR 1064: You have an error in your SQL syntax near 'current_timestamp)' at line 2 上のcreateは間違っているのでしょうか?
4.1.1キタ
>>373 timestamp型の場合はdefault値を設定せんでも,nullを入力したら
currentのtimestampが入ると思ったが…。
初めてMySQLをやります。WinXPのコマンドプロンプトで C:\mysql\bin>mysql mydb mysql> connect abcd と打ったのですが 次の行が -> となってしまいます。 mysql> と表示されるようするにはどうしたらよいのですか?
377 :
NAME IS NULL :03/12/06 13:08 ID:j4V015Z7
「;」セミコロンうってみたら?違う? 僕も初心者なんでようわからんけど。
\で始まるもの以外はセミコロンが無いと継続行とみなされます
MySQLってWindowsユーザーの方が多い?
380 :
376 :03/12/06 17:28 ID:???
>>377 「;」でできました。ありがとうございます
mysql> connect abcd
mysql> use mysql
の状態から再び
C:\mysql\bin>
の状態に戻すにはどうしたらいいんでしょうか?
>>380 \q + RETURN
終了方法くらいマニュアルで確認してから操作しろよ。
382 :
376 :03/12/06 18:15 ID:???
あ、すいません、ありがとうございます。
383 :
NAME IS NULL :03/12/06 18:30 ID:2OCiSJcH
>>375 有り難うございます。確かにtimestampはnullを入れるとcurrent_timestamp
になりました。create文でわざわざ書かなくて言いようになっているんですね。
情けない・・。気づかなかった・・。 有り難うございました。
Windows版って安定してんの?まともに動くの? なんかWin版使ってる奴って初心者ばっかりじゃん。 10台くらいでレプリケーション組んだりとかすると、 Windowsのライセンスが10台分要るわけだよね? クソ杉
別にレプリケーションですべてをWin版に合わせる必要は無いがな
そんならLinuxユーザーの方が多いわけ?
387 :
NAME IS NULL :03/12/06 21:16 ID:WCwoiHaT
388 :
NAME IS NULL :03/12/07 17:54 ID:KO3p7J5/
点呼とってみよう 1 OSはLinux MySQLは3.23
2 Linux(赤帽) CPU Xeon もち仕事です MySQL3.23
390 :
NAME IS NULL :03/12/07 22:32 ID:6qgjWcmq
3、趣味 ウィンxp MySQL4.0.16
391 :
NAME IS NULL :03/12/07 23:01 ID:X9AdYzz7
4 仕事 OSはLinux MySQLは3.23
392 :
NAME IS NULL :03/12/07 23:59 ID:0/Irr4F4
5 仕事 Linux Apache+PHP+MySQL3.23
6 仕事 Linux(RH8とDeb) Mysqlは3.23
7 仕事 Linux(Turbo Linux) MySQL 4.0.16 イントラネット FreeBSD 4.7 MySQL 4.0.16
8 Solaris8 PostgreSQL 7.2.3
396 :
395 :03/12/08 06:40 ID:???
あ、MySQLか。MySQLは4.0.14 あんま使ってないが
397 :
NAME IS NULL :03/12/08 15:38 ID:R8oOuHmI
入力フォームで複数選択ができる場合 例えば「あなたのOSを教えてください(複数選択可)」の時に 一つのfieldにまとめて|(windows)1|(mac)0|(linux)1|ってな感じで入れるのと 一つづつのfieldに|1|0|1|って入れるのどちらが利点がありますか? 検索の早さ、データ容量の節約などです。 説明が解りにくかったら再度説明させていただきます。
398 :
NAME IS NULL :03/12/08 15:43 ID:m7kL1Ycb
set型つかえば?
399 :
397 :03/12/08 15:58 ID:R8oOuHmI
398>早速の解答ありがとうございます、 set型についてgoogleで調べて理解はできました、 つづいて質問させていただきたいのですが。 set型にするのとfieldを1つ増やすのだとどちらが検索等が高速にできますか?
unix上で使ってたmysqlのデータ"db1"をwindowsのmysqlに移したとき、 mysql> select count(id) from db1.table1; は通るのですが、 mysql> select count(db1.table1.id) from db1.table1; が ERROR 1109: Unknown table 'db1.table1' in field list で通りません。どうやったら治せますか?
>>400 そういうフィールドを追加すればいいんじゃない?
402 :
NAME IS NULL :03/12/08 22:35 ID:Jmr2sFbT
あるマシンAで、 mysqldump > dump.sql を実行して、 そのファイル「dump.sql」をマシンBに持っていって、 mysqlimport dump.sql としましたが、 ユーザの情報は、引き継がれませんでした。 いったいなにが足りないのでしょうか? マニュアルで「mysqldump」のオプションを見てもそれらしきものがみあたらず。。。 また、これと重なる質問かもしれませんが、 マシンAでいろいろつくったDBの情報を、 そっくりそのままマシンBに移すには、どうすればいいのでしょう? (mysqldump と mysqlimport で十分かと思っていたもので)
>>402 ユーザの情報は、引き継がれません。
必要なユーザを追加すればいいんじゃない?
404 :
402 :03/12/08 23:33 ID:???
>>403 やっぱ、そうするしかないんでしょうか?
なんか、それ専用のコマンド(ユーザ情報を一挙にエクスポート&インポート)が
あるのかなーと思ったものでして。
なんせ、Postgresをちょっとかじったくらいの経験でして、
MySqlの場合、「create user」コマンドの代わりにgrant使うのを、ついさっき知ってびっくりしている次第。。。
うちは mysqldump mysql でシステムテーブル引っ張ってこれるけど。 環境は mysqldump Ver 9.07 Distrib 4.0.10-gamma
406 :
402 :03/12/09 00:56 ID:???
あ、そうか。。。
明示的に「mysql」DBを指定しないといけないんですね。。。
てっきり、
mysqldump だけで、全部持って行けてるのかと思った。。。
と思ったら、
「mysqldump --all-database」っていうオプション、今、見つけました。見過ごしてました、すみません。
あと、
>>402 でインポート(リストア)で「mysqlimport」とか言ってましたが、
これは、タブ区切りとかのテキストをインポートするコマンドでしたね、勘違いしてました。すみません。
で、
「mysqldump --all-database」でバックアップしたsql文たちを、
別のサーバでリストアしたい場合、
もとのsql文を、DBごとに分けて、
mysql mysql < mysql.sql
mysql foo < foo.sql
mysql bar < bar.sql
・・・以下、DBの数だけこれを行うしか、脳がないのですが、
リストアの際に、「 --all-database」に該当するようなオプションなり、
テクニックというのはないのでしょうか?
シェルスクリプト書いちまうのが楽だな。 もっと楽なのはSCPでディレクトリごとコピーだ。 ロックかけときゃ、誰も書き込めない品
408 :
NAME IS NULL :03/12/09 01:46 ID:P+vjoSQP
>399 そればっかりは試してみないと分からないな。 indexの使い方次第で、どちらも速くなるとおもう。 explainやdescを使ってみるといいかも
409 :
NAME IS NULL :03/12/09 20:23 ID:gUbYZf6b
>>373 で一度質問したのですが、timestampとdatetimeを間違えてました。
create table test2(
date datetime default current_timestamp
);
上記のようにテーブルを作ると、
ERROR 1064: You have an error in your SQL syntax near 'current_timestamp
と怒られてしまいます。
datetimeにdefaultをつけるにはどのようにすれば良いのでしょうか。
>>409 データをinsertするときに、now()って書いとけばいいんじゃない?
411 :
400 :03/12/10 21:41 ID:???
>>401 すみません、意味がわかりません。。
db1.table1は idというフィールドを既に持っているのですが、
db1.table1.idでアクセスできないのは、なにがおかしいのでしょうか?
漏れはいつも普通に table1.id と指定するが、db1. をつけるとなんかいいことあるのか?
DBをまたがってJOINする場合は、DBを指定することもあるね。 ってことで、AS句を使うと解決しそうだね。>411
>>413 > DBをまたがってJOINする場合は、
そんなことできたんだ……
415 :
NAME IS NULL :03/12/11 23:24 ID:MV4o5/ux
すいません初歩的な質問ですが、47都道府県などのうち複数を選択してもらいたい時 fieldはどのように作るのが良いですか?今はfieldを47作って0か1でオンオフをやっています。 set型だと良いとかいうのも聞いたのですが、よく分かりません。 よろしくお願いします。
MySQLとApacheでサイトを運営してますが、 Apacheを再起動したいときは、 MySQLシャットダウン⇒Apache再起動⇒MySQL起動 で問題ないですか?
>>415 JISで都道府県コードが決められているのでそれを使うとよいだろう
>>415 (ID,都道府県No) のテーブルにjoinすればいいでしょ
>>416 問題はないが、DBシャットダウン時に、WEBサーバーの
スクリプトがエラー出すからそれはちゃんとトラップしる
419 :
416 :03/12/13 02:55 ID:???
>>418 >スクリプトがエラー出すからそれはちゃんとトラップしる
あ、なるほど。そこまで気がまわりませんでした。
ありがとうございます。
>>419 WEBサーバー側がいろんな処理をしている途中で
MySQLをシャットダウンするとおかしなことがおきるので
DBのシャットダウン1分前ぐらいからWEBサーバー側は
DBへのアクセスをとめる必要がある。っていうか俺はそう
してる。
めんどくさいときはApacheを先に止めたほうがいいかも。
421 :
NAME IS NULL :03/12/13 19:20 ID:48YAwtjw
以下のようなものを副問い合わせの出来ないmysqlでselectする にはどのようにしたらいいでしょうか? (果物の価格表) ┃果物┃月日┃価格 ┣━━╋━━╋━━━ ┃蜜柑┃1001┃100 ┃蜜柑┃1101┃200 ┃蜜柑┃1201┃300 ┃林檎┃1001┃100 ┃林檎┃1101┃200 ┃林檎┃1201┃300 これで、各項目(果物)ごとに最新(月日が一番大きいもの)の 価格を検索したいのです。 具体的には 蜜柑 1201 300 林檎 1201 300 と出てくるようなselect文を書くことは可能でしょうか? (mysql+perl)
create table test(id int,date int,price int); ↑データのテーブル これに対して、 create temporary table tm(id int ,m int); insert into tm select id,max(date) from test group by id; select a.id,a.date,a.price from test a,tm b where a.id=b.id and a.date=b.m; drop table tm; って書けば一応出てきますけど・・ ほかにもっといい方法あればきぼん
423 :
NAME IS NULL :03/12/13 21:10 ID:48YAwtjw
>>422 有り難うございます。出来ました。
temporaryはこういう目的の為に使うんですね。応用力が足りませんでした(泣)。
select 果物, max(月日), 価格 from 価格表 group by 果物; ではダメなのかなぁ...
>>424 それだとうまくいかないよ。価格がmax(月日)と対応しない
間違ってました。The Rows Holding the Group-wise Maximum of a Certain Field にかいてありますた。回線切っt
427 :
NAME IS NULL :03/12/14 01:06 ID:EeVUqmNT
>>424 それはダメですね。
>>425 の方が言う通り、価格はmax(月日)のデータでは
ないのが抽出されます。
group by で複数行が1行だけ抽出されますけどその抽出にorder by が
入れられると楽なんですけどね。
428 :
NAME IS NULL :03/12/14 05:24 ID:qrUiSRjH
429 :
NAME IS NULL :03/12/15 23:27 ID:kcPHVTkl
mysqlでシェルのいうところのechoやperlのいうところのprintのようなものは あるでしょうか? 変数を表示したいわけではなくて、ただ罫線が書きたいだけなんですが
select '------------------------';
>>429 マジレスするとSQLで罫線を引くという時点で間違い
432 :
429 :03/12/16 02:16 ID:hQCINS2M
perlかphp使いなさいってことだな わかつたよ!
MySQLクックブック VOLUME 1 ってどうよ。 立ち読みしたらかなりよさげだったが。
まちがえて、rootユーザでつくっちまったDBを、別のユーザ(仮にfooとします)の所有物としたいのですが、 どうすればいいのでしょうか?
>>435 別のユーザで新DB作成する。
MySQLを終了する。
前のDBのディレクトリの中身をcpで新しいほうに移す。
ファイルを全部chownとかする。
・・じゃだめ?
437 :
NAME IS NULL :03/12/18 04:17 ID:eG0b9gRf
ほう、リファレンスマニュアルを翻訳するので人募集とな。 グループでの技術翻訳には死ぬほど経験があるが、MySQLを使った ことがないわたしはダメだな。ザンネン。
すいません、create table tbl (field1 text, field2 integer) type=InnoDB; で、InnoDBというタイプのテーブルを指定できるのはわかったのですが、 逆に、既存のテーブルについて、どのタイプのものなのか、知るにはどうすればいいですか? desc tblとやっても表示されなかったもので。
>>438 desc は テーブルのフィールド情報を取得する
show columns from のエイリアスだからなぁ。
データベースのテーブル情報を取得する
show table status [from DATABASE] か
テーブルを作成するためのSQL文を取得する
show create table TABLE
のどちらかを使う。
440 :
NAME IS NULL :03/12/22 11:43 ID:/VXZwH/9
MySQLが全角1文字を2文字としてカウントするんですが 1文字としてカウントさせるにはどうすれば良いですか?
PHP関数を使ってMySQLを利用しているのですが、 mysql_free_resultなどでメモリ開放は逐一やるべきなのでしょうか? PHPって色々自動でやってくれるけど こういうメモリ開放も自動でやってくれないのかな。
>>441 それPHPの仕組みの範疇だからPHPのスレに適合。
べきかどうかはプログラムによるけど、メモリ食うものなら「する」必然がある。
自動開放についてはスクリプトの終了した時、または参照が0
(例えばコネクションとかならcloseしたとき)になった時に行われる。
但しGC(ガーベージ コレクション)により開放されるので、
即座に(同時に)という訳ではないが。
同種のデータ(フィールドが全て同じ)でも、 容量が膨大になった場合は二つのテーブルに分けた方が良いのでしょうか?
>>443 なぜ分けた方がよいと思ったのか
速度低下を心配してる?
それとも他の問題?
で、SAP DB改めMaxDBはどうよ?
446 :
NAME IS NULL :03/12/23 22:52 ID:H17518kq
以前の会社でmysqlを使っていて、今度転職した先はMS SQLなど、主にMSテクノロジーを メインで開発してるんだけど、上司につかったこともないくせに、mysqlって玩具だよねって 言われたときにこいつ殺そうかと思いました。
>>444 検索とかするときに容量が大きいと遅くなるのかなぁと思って。
100Mくらいは余裕で行っちゃいそうな勢いなんです。
今時100Mなんて別にでかくもなんともないだろ
テーブルZは700万行 250MB 約半年分 テーブルUは350万行 424MB 約3か月分 だけどノープロブレムだ。私の選択は間違ってなかった。 P4 2GHz XPpro上にて 少しずつ消してもいいんだがパフォーマンスも知りたくてまだ消してない。
450 :
NAME IS NULL :03/12/26 15:36 ID:Be3IFPI5
mysqlってロールバックが聞かない事を知り途方にくれています。 PHPから複数のテーブルを更新してるんですが、 途中でエラーが発生した場合に元の状態に戻したい場合って皆さんどうされてるんですか?
>>450 mysqldumpでデータベースをバックアップしてから操作してる。
>>423 あれ?4から効くんじゃなかったんでしたっけ?>コミット
といいつつ、私はまだ3ですが^^;
>>450 「エラーが発生したときはハードの故障以外ないのでバックアップまで巻き戻る」ように作る。
っていうか、rollbackを前提として作っちゃだめだよ。
トランザクションをまじめにコーディングすると エラー処理のところで結局 rollback; と書かざるを得ないような
>>450 安心しなさい、それは デ マ だ
っつーかテーブルを InnoDB に指定してないだろ
456 :
450 :03/12/27 00:40 ID:???
デマでしたか。お騒がせしました。
もう少し勉強が必要でした。
>>451 ,453
現在ユーザ登録の処理を作ってるんですが、その場合登録のたびにバックアップを作ってるって事ですか?
InnoDB形式ならcommit使えるよな?
トランザクションをまじめにやるとたしかにrollbackいるけど、 myisamだとできないし、そういう場合複数テーブルの更新で、 どうしてもAtomicにしたいならばtable lockするんだよ。 これはそういうDBなんだよ。 でも、絶対にtable lock必要な場面ってあんまりないんだけどな。 last_insert_idとか使えばUNIQUEなIDとれるから、それ使って 複数tableへのinsertとかもできるし。 俺的にはtable1のキーでwhereしてtable2にupdateできない ほうがよっぽど痛いっす。
MySQL5 の最初のバージョンである MySQL 5.0.0-alpha がリリースされました!
http://www.mysql.com/downloads/mysql-5.0.html なんといっても目玉は、
・SQL-99のストアドプロシージャをサポート
でしょう。
また、これまで変数名での大文字小文字を区別していたものを、このバージョンから同一と見なすよう変更となりました。
----------------------------------
例:
SET @a=123;
SELECT @a;
SELECT @A;
どちらも 123 を返すようになります。
>>459 先にviewとsubqueryをサポートしてくで…orz
MySQL4.0.17をWindowsXP上で使用しているのですが、 CSEを使って接続すると ERROR 1227:Access denied. You need the SUPER REPLICATION CLIENT privilege for this operation. と出てきてしまいます mysql -u user user_db -p でログインした場合は大丈夫です。どうしてなんでしょうか ちなみに、CESの起動オプションは cse.exe /dbms=mysql /user=user /pwd=******** /srv=localhost /db=user_db /port=3306 です。
>>459 何となくクリスマスプレゼントぽかったけど、それはともかくとして、
こうやって明確に先々の機能拡張予定が明示されていることは良いことだと思いました。
>>460 サブクエリーは 4.1.x だっけかな?
463 :
NAME IS NULL :03/12/30 23:30 ID:9U8PfvFV
PHPとMySQLの内部での文字コードやら出力時の文字コードやらを 全て統一しておくとパフォーマンスが向上するとマニュアルか何かで見たのですが、 MySQLの文字コード設定ってどうやるんですか? (OSはLinuxなんですけどなんかWEB講座に書いてあったmy.cnfだかなんだかを 見てみたけど、default-charsetとかの記述は見当たらなかった。 と言うより文字コードに関した記述がさっぱり見当たらなかった。) ちなみに、PHPの文字コードは全てSJISにしていて、 MySQLも同じく全てSJISにする腹づもりです。
>>463 データベース起動時に指定する方法と、my.cnfに記述する方法がある。
my.cnfにかかれていない=設定できないではない。マニュアル見ようね。
起動時にいちいち指定するのは面倒だから、my.cnfに記入するのがお奨め。
あと趣味的にはSJISはお奨めしない。
EUCが一番楽だけど、半角カナなどを扱いたかったらMySQL4.1.x以降を
利用するかblob型を利用してUTF-8にする方がイイ。
php.iniの設定でoutput時のエンコードはどうにでもできるからね。
466 :
464 :03/12/31 15:10 ID:???
>>465 趣味の部分に突っ込まんといて。
MySQLとPHP以外にサーバ全体もメンテせなあかんときにはいろいろあるんよ。
Windowsサーバ使ってたり、現状でSJISで何も困ってなかったら聞き流して。
467 :
NAME IS NULL :03/12/31 20:54 ID:Ighzw+Mv
not null 属性のフィールドにnullが入れられたら自動的に0に変えられますよね。 こんな感じで、nullが入力されたら”ウマー”って自動的に変えたいんですけど出来ますかね? 最初default "ウマー"って指定すりゃ出来るかと思ったんですけど出来なかったんで。
>467 mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(NULL,10); -> 10 だから select IFNULL(対象のフィールド名,"ウマー");
>>467 できましたよ?
mysql> create table t1 (a int, b varchar(20) not null default 'ウマー');
Query OK, 0 rows affected (0.14 sec)
mysql> insert into t1 (a) values (1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+------+--------+
| a | b |
+------+--------+
| 1 | ウマー |
+------+--------+
1 row in set (0.06 sec)
MySQL良さそうだと思ってHP行ってみたら
バージョンがたくさんあって混乱してしまいました。
-------以下、
ttp://www.mysql.gr.jp/ より引用--------
2003-12-25MySQL 5.0.0 リリース!
2003-12-18MySQL 4.0.17 リリース!
2003-12-5 MySQL 4.1.1 リリース!
-------ここまで---------
こういったリリースを行う背景というか文脈を
どなたか簡単でもいいので説明してもらえませんでしょうか。
よろしくお願いいたします。
あぁん?
>>470 ダウンロードのところに
MySQL 4.0 -- Production release (recommended)
MySQL 4.1 -- Alpha release (use this for new development)
MySQL 5.0 -- Development tree (use this for previewing and testing new features)
と簡単に書いてあるのだが?
バージョンの後ろに書いてあるのが、そのバージョンのステータスで
括弧内に書いてあるのが、そのバージョンの今の状態での主たる用途。
各バージョン、リビジョン毎の「リリース背景」はリリースドキュメントに書いてある。
また、どういったゴールを目指しているかは、そのtreeのスタートアップ時のリリースドキュメントに
大抵まとめてある。ドキュメントの内容が理解できなくてどれを選んで良いのか判らなければ
自分が参考にする本の記述のtreeの最新版を選択しておけば良かろう。
レンタルサーバで動かす予定があるなら、それに合わせておく。
474 :
470 :04/01/05 19:45 ID:???
>>472-473 レスありがとうございます。
確かにダウンロードのところに書いてありました。
ざっくり簡単にまとめてしまうと、
・MySQL 5.0 ・・・将来はこれがベースになりますよというアナウンスを
兼ねたリリース
・MySQL 4.1 ・・・開発者の人々が現在鋭意開発・改善中のバージョン
・純粋にMySQLの昨日を利用だけしたい奴は4.0を落しなさいということ
のようですね。
>>472 さんのおっしゃるとおり、3.23というバージョンもありましたが
これはおそらく下位互換というような意味で残してあるのでしょうね。
さっそく4.0.17をダウンロードいたしました。
ありがとうございました。
ここにカラッポのパソコンがあります。今風の性能があります。 これからLinuxをインストールしようとしているところです。 MySQL + tomcat でぶいぶい日本語を使いたいのですが、一番楽なディストリはずばりどれですか? setupオプションでちょいちょいチェックするだけでOKみたいな。 (イマドキtomcatは標準パッケージだったりするのか?)
NetBSD/cobaltでmysql3.23.xxを動かしたいのですが、 なにか情報を持ってる方はいませんか? configureが全く終わる気配がないんですよー。 やっぱmips系はあきらめたほうがいいのかな。
477 :
NAME IS NULL :04/01/08 00:01 ID:gR0R4cXZ
WindowsXP に mysql-4.1.1-alpha をインストールして、 examples\libmysqltest\mytest.c を MinGW-3.1.0-1 の gcc でコンパイルしようとしたのですが、リンク時に undefined reference to `mysql_init@4' なエラーが出て完了できません。 コンパイラオプションは"-Ic:/mysql/include -Lc:/mysql/lib/opt -lmysql"です。 googleって探してみたところ、 ----- #include <mysql.h> ----- を ----- extern "C" { #include } ----- として解決したケースもあるようですが、私の環境では駄目でした。 gcc でコンパイルすると"parse error"になってしまい、 g++ でコンパイルすると症状が変わりませんでした。 同じ環境でコンパイルできている方はいませんでしょうか?
478 :
48*8 :04/01/08 04:34 ID:3FQ9TQU5
Kさん 好循環 Aさん 悪循環 <日本> 完成版
(健康体) (喘息)
1.(天国・霊界が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある 体力がなくなる
3.K 変化なし A 行動力、五感(嗅覚)が鈍り感性が変化する。
4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし A アトピーになる
6.K 正常な感性 A 外に出なくなりさらに異常な感性になる。
7.K 正常な人間 A 異常な人間(レッテル)
8.K&A 死 9.K&A 来世
10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない A 喘息である
13.K&A 1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。 目安としてグランドを10週くらい。
あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり
絶対に直す方法:
よく海外に行ってアトピーが治る話を聞くが、基本的に日本の中のことだけなので、
海外に行くとほとんどの場合体力をつけると治る。 日本の中であっても、体力をつ
けると治るはずだが、 様々な理由により、霊界の存在がばれてしまい、 この失態が明
るみになるので、治さないようにしている。よって、絶対にアトピーを治すには、 海外
に行き体力をつける。
http://life.2ch.net/test/read.cgi/atopi/1035703616/l50を参照
480 :
NAME IS NULL :04/01/09 10:03 ID:SQZE/uWk
テーブル作っているんだけど、日付のつけ方がわからない。 +-------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------+------+-----+---------+----------------+ | MN | tinyint(4) | | PRI | NULL | auto_increment | 中略 | MD1 | timestamp(14) | YES | | NULL | | | MD2 | timestamp(14) | YES | | NULL | | +-------+---------------+------+-----+---------+----------------+ こういうのがあるわけだけど、MD1にはデータの更新日時が入る。 でも、MD2にはデータを入力した日時をデフォルトで入れたいわけだ。 テーブル作成時に default で sysdate() を入れられればいいんだけど、 できないでいるんだなぁ。こんな風に試した。 >alter table MOVIES MD2 timestamp default sysdate(); どういう風にすればいいんだろうか? > update MOVIES set MD2 = sysdate() where MN = 1; とかやればできるのはわかっているんだけど、insert の直後に update するのもわずらわしい、って、そんなの違うだろと思うし。
481 :
NAME IS NULL :04/01/09 14:36 ID:uHhNww+B
Mysql 3.23.58を文字コードはEUCで使っているんですが 例えば ヨシダ で検索をかけると ニシムラとかニシダとか別のデータも表示されてしまいます。 ただ全てがおかしいのではなくて一部のキーワードに対しておかしくなります。 データの入力方法がおかしいのでしょうか・・・
>>480 インサートは
insert into MOVIES(NM,MD1,MD2) values(1,null,null);
で、日付入りますけど。
関係ないが、primary keyにtinyint使うのって感心しないな。
必要ないように思えてもintかbigintのほうがいいよ。いつか変なこと起きるから。
>>481 charフィールドにbinary属性つけてみたらどうでしょう。
483 :
NAME IS NULL :04/01/09 15:36 ID:SQZE/uWk
>482 どうもありがとうございます。 えーと、MD1は更新があれば常に変わるわけだけど、MD2は一番はじめに そのデータが作成された日時だけを入れたいんです。つまり、MD2は更新 されないようにしたいわけ。もちろん意識的に変更することはできるわけ だけど。 更新日時の入力を自動化するには、timestamp いいわけですが、MD2は これではだめですよね? それで、 default で設定できるものがあるんじゃないかと疑っている 次第です。 なんかないですか?
484 :
481 :04/01/09 16:01 ID:uHhNww+B
>>482 できました。ありがとうございました。
binary属性 勉強不足であまり意味がわからないのですが
要は大文字と小文字を区切らないので不具合を起こしてたということでしょうか。
また、他の文字フィールドに対してもbinary属性は付けておいた方がいいのかな?^^
>>483 更新(update)時にはMD2は触らなきゃいいだけなんじゃないの?
>484 MySQLは基本的に「英語」という言語しか知らないので、 char(文字)という概念は英文字にしか通用しないと考えておけばよい。 そこでbinary属性をつけることによって、文字じゃなくて とある言語の「キャラクターコード」として扱ってくれと指定する。
mysqlの本って、あんまり出てないようですが、お勧めの本ってありますか? sqlより、mysqlの使い方とかが詳しく乗っているやつがいいです
488 :
484 :04/01/09 17:39 ID:uHhNww+B
>>486 なるほど。。
わかりやすい解説ありがとうございました^^
>>484 でも LIKEで比較とかしない限りはBINARYつけなくても問題はないよ。
単に入れるだけとか、完全一致比較なら単なるcharでも問題は起きない。
あ、完全一致比較でも微妙かもしれない。 比較するならbinaryつけたほうが無難ですね。
491 :
NAME IS NULL :04/01/09 20:27 ID:jBDLSHzE
>>481 my.cnf で文字コード設定はujisになってますか?
入っているデータがEUCでも文字コード設定がされてないとダメじゃない?
longtextのカラムでLIKE "%hogehoge%"とかやると、 全文検索にはならないよね? 先頭から何バイトまでとか、制限あるのかな? マニュアルみても特に書いてなかったんだけど。
493 :
NAME IS NULL :04/01/10 12:18 ID:BnP2i9Sb
>485 データ更新時の操作は次のようにしています。 update JITEKI set MD1 = sysdate(),MS = "This is test mes." where MN =485; でも、結果的には常にMD1とMD2は同じ日時になってしまうんです。
datetimeにしたら?
>>493 timestamp のカラムが二つあるときは、最初のやつしか現在日時に更新されな
いという性質がある。(MySQLクックブック Vol1 レシピ5.33)
で、 update するときに MD1 も MD2 も触らないようにすれば MD1 だけが現
在日時に自動更新される。
493の場合は故意に sysdate() を使ったために、MD2 が自動更新の対象になった。
>>493 あーごめん。datetimeだと勘違いしてた。timestampですね。
それだと自動更新されちゃいますね。
495さんのいうように、updateで更新されるカラム(timestampの一個目)は、
あえてなにもしない。最初に設定するカラム(timestampの二個目)は、
最初にnullを書き込む。
でいいんじゃないでしょうか。
497 :
NAME IS NULL :04/01/10 17:53 ID:DJnacX8F
mysql.exeで日本語が入力できないんです。 どうすればよいのでしょうか???
>>487 MySQLクックブック
二分冊だがVOLUME2はまだ出てないかも
1だけ持ってるが激しくお勧め
mysqlのデータベースでカウンタの値を管理したいんですが、 値のインクリメントと値の取得を一度に出来る方法はないんでしょうか? update set count = count + 1 where ... select count from ... この二つを同時にできる方法。間に割り込まれると 同じ値が取得されたりするから。 使用環境は windows2000 + apache2.0 + mysql 4.0.13 + php 4 です。
>>499 table lockするのが一番簡単だとおもう。
フラグのカラムつけてあれこれすることもできるが
たぶんtable lockのほうが速い
>>500 なるほど。
mysqlのページで調べてみたらちゃんとSQLの構文にLOCK/UNLOCKって
いうのがあるのね。
ど素人の質問に答えてくれてありがと!
502 :
NAME IS NULL :04/01/10 21:14 ID:DJnacX8F
mysqlのデータベースをウェブで参照するにはどうすればいいのでしょうか? sqlデータベースをプロバイダのサーバにアップすることって可能なんでしょうか?
503 :
NAME IS NULL :04/01/10 21:24 ID:lIfTZTWW
だれかヘルプキボンヌ。 デフォルトの文字コードを with --with-extra-charsets=complex でコンパイルしていて、現在、いくつかのデータベースを すでに作成中です。 この場合、文字コードをujis に変更しようと思ったら、 データベースに問題とか発生するのでしょうか?
検索結果の表示順を決めるために、データ文字列中に含まれる検索 文字列の数を数えたいのですが、MySQL(3.23)で可能でしょうか? 「あなたのお仕事についておうかがいしますが、あなたのお仕事は...」 といったデータがTEXTで保存してあって、「仕事」で検索した時には、 「『仕事』がいくつあるか」(この場合は2)という数値でソートしたい のです。 検索Webを作ってるのですが、いったんPerlとかPHPにデータ読み出さな いと無理っぽいでしょうか?
>>497 かねやんとかのGUIフロントエンドを使っては?
MySQLが、手でデータを打ち込むような用途に向いているとは、あまり、
思えませんが。
>>502 MySQLを使わせてくれるプロバイダでないと無理です。
(そんなプロバイダは少ない/あるけど料金高いはず)
506 :
NAME IS NULL :04/01/10 22:43 ID:34wcE9mY
>495, 496 どうもありがとうございます。 ご指摘どおり、一つ目を更新日時にしましたら、OKでした。 んでですね、データをすべて消してあらためて CSV から load しなお しました。 するとですね、auto_increment を設定しているMNの値がどんどん増えて いくんです。まあ、当然といえば当然か。 これを初期化する方法はありますでしょうか? 質問ばかりで恐縮ですが、もうひとつ。 CSVデータをあらかじめ加工しておいたんですが、これがなかなか手間。足りな い項目には「,,」を付け加えたり。 加工せずに load する方法、つまりデータの順序を指定する方法はありますで しょうか? load はこんな風にしました。 load data infle "../list.csv" into table JIICHI fields terminated by ",";
507 :
NAME IS NULL :04/01/10 22:46 ID:34wcE9mY
508 :
505 :04/01/10 22:56 ID:???
>>506 tableをdropしてまたcreateすればauto_incrementは戻るんじゃないかな。
510 :
NAME IS NULL :04/01/11 18:14 ID:ic1DxtB5
フィールド数25、レコード数1500のデータがエクセルにありまして、 これをMySQLのテーブルにしたいんですけど、 どうすればよいのでしょうか?
>>510 1.テーブルのスキーマ(項目名と型)を決める
2.データベースとテーブルをcreateする
3.ExcelからCSVとして保存する
4.loadする
正規化とかはとりあえず気にスンナ
CSVよりはタブ区切りTEXTのほうがいいと思うな。 CSVだと,が文字列にあるとおかしなことになる。
513 :
NAME IS NULL :04/01/11 22:04 ID:ic1DxtB5
apache,mySQL,PHPを使って、 ブラウザでデータベースを検索することを考えてます。 (自分のPCに上記プログラムをすべてインストールします) そこで質問なのですが、 ネットワークが繋がっていれば他のPCでも利用(検索)できますか? 自分のPCを立ち上げておけばOKですよね??
>>513 apache入れてあるんだろ。ならできるよ。
っていうか、そのためにapacheとPHPでシステム組むんだろ。
515 :
東芝不買運動 :04/01/11 22:07 ID:rgclmQgG
インラインビューが使えないなんて もうだめぽ
Array型まだぁ〜
520 :
NAME IS NULL :04/01/13 09:53 ID:GqeGALgK
かねやんMySQLAdminをダウンロードして使おうと考えた。 しかし、接続できない。ユーザー名パスワードはMySQLで登録したもの を入力。ホスト名は、IPアドレスとサーバホスト名をそれぞれ試した。 ポートは3306。省略したほうがいいのかもしれないと入れたり消したりした。 しかし接続できない。 もちろん、IEなどブラウザからはPHPで接続可能。Linuxさばなんだが、 TELNETでログインした後は普通にmysql -u asdfa -p とかで使える。 接続できないのは、何が考えられる?
521 :
520 :04/01/13 10:00 ID:GqeGALgK
おれ、520だけど。 libMysql.dll が悪いのかと思って、パッケージについていたサイズ140Kb 以外に、別途ダウンロードしたサイズ212Kbのものも試した。 だめだった。
522 :
NAME IS NULL :04/01/13 18:31 ID:SNyg6NiP
MySQL Control-Centerの日本語言語パックというのがあると 雑誌に出てたのですが、検索してもヒットせず何所にあるのかわかりません。 ご存知の方いらっしゃいませんでしょうか?
>>520 myodbcのライブラリとか必要なんじゃないの?
つみきもそうだけど、dllのヴァージョン違うと動かない。
ってか、MysqlCC使えばいいじゃん。日本語打てないけど。
かねやんとかいって名前もダサイし
524 :
520 :04/01/14 16:18 ID:9Z+e8Log
>523 教えてくれてどうもありがと。 で、MySQL-CCもインストールしてみた。が、しかし使えなかった。 それでも許可されないというメッセージがでるのだった。3306ポートは ちゃんとあいているし(nmapで確認)、ほかの何かポイントはあるかな? エラーコードは1130。 「Host 'hoge' is not allowed to connect to this MySQL server」 あれこれ検索したんだけど、わからなかったのだった。
525 :
520 :04/01/14 16:44 ID:9Z+e8Log
ごめん、わかった。 このメッセージどおり、ホストネームを追加しておかないといけないんだ。 新しくユーザ登録をして、ホストネームの追加があったので行ったら、 すんなり接続した。俺が悪かった。
526 :
NAME IS NULL :04/01/15 21:36 ID:80HolyYg
詰まっています。 1台のLinux上でJSPサーバ、MySQLを動かしているんですが、冗長化の必要が出て きて JSPサーバとDBサーバを分離させようかと計画中です。 userテーブルへのアクセス権の設定はクリアしているとして、JDBCでコネクション を張る引き数 "jdbc:mysql://localhost/...." を分離させる DBサーバのIPアドレ スに(例えば "jdbc:mysql://192.168.x.x/....")と変更するだけで動いちゃうもの なのでしょうか? 先ほどからテストしているのですが、 java.sql.SQLException: Invalid authorization specification: Access denied for user: が出てしまいます。 (userテーブルへのアクセス権の設定がクリアされてないのかなぁ?) MySQL 3.23、JDK1.41 です。 何か情報ありましたら。よろしくです。
527 :
526 :04/01/15 22:04 ID:80HolyYg
>>526 自己解決しました。
やっぱ、mysql user テーブルでした。
単純なIPミスです。
お騒がせしましたぁ。
528 :
NAME IS NULL :04/01/15 22:26 ID:lej+LunJ
質問ですがinnodbは行ロックでmyisamは表ロックとなってますが、 違いがわかりません。 LOCK TABLESコマンドはテーブルしか指定できないし。 MySQLの行ロック、表ロックってなんですか。
>>529 なら他のDBはどのように行ロックかける、もしくはかかると思う?
ポスグレしか知らないんですが、ポスグレだと LOCKモードにROW SHAREとかROW EXCLUSIVEとか設定できます。 MySQLのinnodbの行ロックって、トランザクションの隔離と関連ありますか?
RedHat9にソースから入れた人! コツがあったら教えてください。 なんかgcc2.95だと良いらしいんだけど・・・・
>>531 myisamにはトランザクションがない。
でも、それだけ不要なロックがないので
速度が速いのよ。
selectとinsertが主用途ならmyisamいいよ。
>>531 ポスグレのTABLE LOCKの話だよな、それって。
ポスグレで明示的に行ロックかけるにはどうする?
>> 534 つまり、質問というのはロックの粒度についてなのではないか。 POSTGRESならロックレベルを7段階くらいだっけ、指定できて それらが競合しない限りロックを設定できる。 そのときの粒度はレコード(行)、つまり内部的に行毎にロックを かけることができているし、それを実感できる。 MySQLはInnoDBとBDBが内部的に行ロックを実装しているのは事実だが、 それがはっきりと分かるような例を見つけるのは難しい。 なにかある?
質問者はロックの粒度とトランザクションのisolation levelを混同してると思われ。
537 :
NAME IS NULL :04/01/18 15:03 ID:uEdULsoD
あるテーブルのすべてのフィールドに対して検索をかける場合は どうしたらいいのでしょうか? select * from テーブル名 where * like '検索文字列' これではダメでした。
538 :
NAME IS NULL :04/01/18 15:45 ID:uEdULsoD
selectで抽出したデータをcsvにダウンロードするには どうしたらいいのでしょうか?
539 :
◆ARQ3/knKfg :04/01/18 17:25 ID:rLxnZ9Vv
環境は Windows + Apache 2.0.48 + PHP/4.3.4 + MySQL 5.0 です。 データベースの勉強用にと、本を見ながらMySQLをインストールしました。 PHPから、mysqlにconnectするときに PHP Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in スクリプトのパス.php on line 3 という警告が出て接続できません。 使用するスクリプトの3行目は $con = mysql_connect("localhost","php","php"); となっています。どなたか、解決策を教えていただけませんか? 情報が不足していましたら、ご指摘下さい。
MySQL 4.0.17にしたらできますた。 あぁ〜これで半日潰れた。_| ̄|○
>>537 フィールド名全部検索条件指定してorでならべる。
>>538 SELECT ... INTO OUTFILE 'file_name' 使う。
あるいは、
echo 'select ..... ' | mysql dbname
とシェルで打ち込むとtab区切り形式で出てくるので
Excelに入れてcsv。
>>539 とりあえず5.0つかうのやめれ。あれはテスト用だ。
542 :
NAME IS NULL :04/01/18 21:58 ID:uEdULsoD
select * from テーブル名 ↑で全部のフィールドを表示しますが、 あるフィールド以外全部というのはどのように指定するのでしょうか?
【ゴールデンボール】 このレスを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください。 そうすれば14日後に立派なゴールデンボールになってます。 好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です 俺もはります。
> 質問者はロックの粒度とトランザクションのisolation levelを混同してると思われ。 質問者ですが、混同しているわけではありません。 > MySQLはInnoDBとBDBが内部的に行ロックを実装しているのは事実だが、 > それがはっきりと分かるような例を見つけるのは難しい。 まさにこういうことなのですが、分かりやすい例はないのでしょうか。
>>545 >はっきりと分かるような例
とは何を示せば分かったことになるのかいまいち分からない。
ポスグレでいいからどの機能を指すわけ?
547 :
NAME IS NULL :04/01/19 18:58 ID:lIKV0uA8
csvファイルをデータベースにインポートする時、 あるフィールドはすべてデータが入っていないため、 nullとしたいのですが、どうしたらいいでしょうか? ''←これではnullは入らないようです。
>>547 UPDATE table SET field=NULL WHERE field='';
>>545 2スレッドでトランザクション書いてみればわかるんじゃないの。
テーブルロックだとロックでもう一方も止まっちゃうから。
551 :
NAME IS NULL :04/01/20 11:40 ID:xZEEOmlG
教えてください。 ユニークなフィールドは auto_incrementで定義されたIDだけでその他は何が 入るか解らないテーブルがあるのですが、レコードを追加した直後にそのレコー ドの auto_increment値を知る方法はないでしょうか?
>>551 ここらへん。
mysql_insert_id()
LAST_INSERT_ID()
553 :
NAME IS NULL :04/01/20 12:53 ID:vEEDGO/W
>>551 LAST_INSERT_ID で分かりますよ
554 :
551 :04/01/20 13:16 ID:xZEEOmlG
>552-553 おお!ありがとうです。 できましたぁ!
555 :
NAME IS NULL :04/01/20 17:15 ID:/YZmz9BF
abcと言うフィールドへ文字列を追加したいのですが、 上手く追加でき無いので教えて下さい。 update table1 set abc = abc + "aiueo"; このSQL文で、 エラーは起こらないのですがaiueoがabcへ追加されません。 abcのデータ型はtextで、デフォルトはNULLです。 色々と試して見たのですが、ダメでした。 どうすれば文字列が追加出来ますか? 宜しくお願いします。
>>555 CONCAT(abc, 'aiueo')
>>556 abc = "aiueo" + abc
abc = abc."aiueo"
abc = abc,"aiueo"
abc + "aiueo"
などです。色々やった為全ては覚えていません。
後は、
PHPと併用しているのですが
このSQLの前にabcの値をselectで取得してから
その値に"aiueo"を足してからupdate table1 set abc = "PHPで編集したデータ"
としました。
しかし出来ませんでした。(かなり効率の悪いやり方ですし)
>>557 できました!!
ありがとうございました。
ここで聞く質問からちょっとズレるかもしれんのですが、C#とMySQLで遊んでて いつもコマンドラインからあらかじめCREATE DATABASE ??????とかってやって データベースを作っておいた上で、ファイルDSNを作成しておいたやつを プログラムから利用しているんですが、C#に限らずデータベースの新規生成 ってのはコマンドラインで生成するしか手がないんですか? イメージ的にはC#アプリケーションから新規にデータベース生成してそれを 利用するようにしたいんですが・・・ もしかしてこーゆうのはできない??
>>560 普通のやり方でできるかどうかはしらないけど、
MySQLのポートにクエリを流し込めばできるよ。
>>560 簡単にできたら怖いけどな。
「運用中に動的にデータベースを生成してくれ」とか言われかねない。
MySQLのフィールドの型にファイルを直接格納できるようなバイナリ型ってのは ありますか? 画像を直接データベースに格納したいのですが、可能ならどれぐらいのファイルサイズ まで扱えるんでしょうか
半分自己解決?LONGBLOB型がそうなのかな? でも定義した後にどうやってファイル突っ込むのかわからんです。 SQL例文ぷりーず!えろいひとおながい。
565 :
NAME IS NULL :04/01/21 10:59 ID:v8jvkKny
MySQLの文字列フィールドに 'c:\mydata\myphoto' という文字列を入れたいのですが、¥が入りません。 スラッシュを使わずに、あくまで¥マークで対処するにはどうすれば良いでしょうか?
567 :
NAME IS NULL :04/01/21 11:59 ID:LSiYbCTx
568 :
565 :04/01/21 12:03 ID:???
エスケープ関係が続くな。
>>564 MySQL Language Referenceの6.1.1文字列に
>バイナリデータを BLOB フィールドに挿入したい場合、
>次の文字をエスケープシーケンスで表す必要があります:
とある。
それが嫌なら、0x0011223344556677....
でも良い。
あとmax_allowed_packetも考慮すべき。
>>565 'c:\\mydata\\myphoto'
>>568 その状態なら間違っている。
どの言語上でやっている?
jJDBCのPreparedStatementとかなら自動でエスケープしてくれるからなぁ。
かねやんで見たとき、'c:\mydata\myphoto'が正しい。
571 :
568 :04/01/21 12:41 ID:???
>>569 それでできました。ありがとうございました。
>>570 ごめんなさい。勘違いしていました。
ちゃんとできました。ありがとうございます。
MySQLクックブック( ゚д゚)ホスィ・・・ 今日本屋に行ったけど田舎だから売ってなかったよ
VOLUME2は今月の27日に発売されるらしいね ホスィけど高い
クックブック購入して一通り目を通したんだが、なんか分厚さのわりに 内容が薄い・・・個々の事例に対してPerl、PHP、Python、Javaでの 例示があるせいで「どの開発者でも対応できる。けど内容薄い」って 印象です。 難しそうでとっつきにくい印象だけど実際には初心者向けの本だと 思いますね。 Vol2に期待してまふ。 あ、これからMySQLはじめようって人には最適な本だと思いますよ。 LinuxでもWindowsでも問題ないように書かれてるし、上に書いた 4言語を網羅してるし。 インストール&セットアップの情報が付録として巻末にまとめてあって 便利です。 値段は高いけど入門書としてはオススメ。
PHPクックブックマダー(AAry って板違いか。
最近、「標準MySQL(SOFTBANK)」 でMySQLを触り始めたけど、分かりやすくていい。 窓も犬もOK PHPとJSPについてがメイン。 Perl、ASPは触りだけって言う感じ。 MySQL,Apacheのインストール法、各プログラミング言語環境の構築法から のっていて初心者も安心 俺はPerl+DBIなので、ソースコードは参考にならんかったが それでも満足できる。 特に関数一覧やコマンドリファレンスが見易い。 なんか信者みたいだが、全体的に参照しやすい構成だったと思う。 俺はこの本+本家のドキュメント見ながらやってます。
>>572 amazon, bk1, 紀伊国屋 いくらでもネットで買えるだろうが
糞ボッコが
テレビにニュース速報が入る。 俺は慌ててパソコンを立ち上げ、そして気付く。 「あぁ、2chは閉鎖したんだっけ……」 テレビからは現場の慌しい状況が伝わってくる。 もし2chがあったら、どういうスレが立っているのだろう。 重複スレが沢山できて、それで荒らしとかやってきて…… テレビでは相変わらず、レポーターが必死で現場の状況を伝えている。 可愛いレポーターだ。俺は、頭の中で「萌え〜」というレスを つけている自分を想像した。 後ろの群集がテレビに向かって挑発的なポーズを取っている。 「なんだ、あのドキュソ」「厨房氏ね」…… 俺はたまらなくなり、無いとは分かっていながら再び2chにアクセスした。 しかし、画面には一言「閉鎖したのです。。。」とだけしか表示されない。 何度リロードしても変わらない。あの日以来、2chは止まったのだ。 どうやら犯人が逮捕されたようだ。相変わらず可愛いレポーターが その状況を伝えている。 「さよなら、にちゃんねる」 俺はお気に入りから2chを削除し、そして騒がしいニュースを涙目で 見るのであった。
しばらくMySQLを使わない予定なので、 MySQLadminの自動起動を解除したいのですがどうすればよいでしょうか?
Winの場合はスタートアップから消すだけでいいが Linuxは知らんのでほかの回答者を待つ
これだからWin用つかうやつは・・・
排他的な考えの香具師多いな
583 :
NAME IS NULL :04/01/24 15:39 ID:hSeNjxli
フィールドのタイプを変更するにはどうしたらいいのでしょうか? varchar(60)をvarchar(120)にしたいのですが。
insert文を使うとき、 insert TABLE名 set COLUMN名='内容' みたいにupdate文形式でも使えてしまうんですが、この文体で書いても問題ないんですか?
>>586 問題ない。
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression, col_name=expression, ...
WinXP Apache1.3.28 + PHP4.3.4 + MySQL4.0.17でホームサーバー構築したんですが、 PHPは正常に動くんですがMySQLに接続できません。 mysqlはD:/mysqlにインストールし、sysENVにD:\mysql\bin\を設定し、my.iniのデフォルト(C:\mysql、C:\mysql\data\)ドライブをDにして mysqladminでは青信号で、コマンドラインからテーブル操作、ユーザー操作など全てできるんですが、 何故かPHPから接続できません。 phpmyadminを起動すると、Can't connect to MySQL server on 'localhost' (10061) という典型的なエラーが出ます。(勿論青信号の状態で) いろんなサイトを参照しましたが、同じ通りにやっても出来ません。同じプラットフォームで運用されている方、どうかご教授願います。
590 :
NAME IS NULL :04/01/28 00:54 ID:mKy/8tCr
ODBCの設定ができなくて困っています。 ODBC(システムDSN)の設定画面でTest Data Sourceを押すと、 Client does not support authentication protocol requested by server. consider upgrading MySQL client というアラート画面が出てしまいます。 環境はWinXP pro/MySQL-4.1.1/MyODBC-3.51.06です。 どうぞ、よろしくお願い致します。
>>589 PHPからの接続ユーザ&パスワードの部分のように思える。
コマンドラインで確実に使えるアカウントをPHP側に設定しているか、
PHPからMySQLへの接続設定をちゃんと確認してみそ。
"本当に設定として読み込まれている"php.iniと
phpスクリプト(この場合はphpmyadmin)の2箇所。
phpスクリプトはもっと適当なスクリプトで、アカウント情報を
ベタ書きしてチェックする方が良いと思うけど。
あるユーザー登録型の大規模掲示板をPHP+MySQLで 作成してもらったのですが、設置しているうちにかなり欠点があることがわかりました。 細かいところを挙げればきりがないのですが、もっとも気になったのは 投稿者と管理人に記事が投稿されたと言うメールが来ないという事です。 (もちろん、発注前に相談しました) その制作者とは上記のとおり、いい加減なため契約を解除したので 修正してもらう事ができません。なので外注を考えています。 話が長くなりましたが、こういう場合の修正+追加機能を付ける作業と言うのは MySQLを扱う方々からみて容易なのでしょうか?それとも他人が作ったのは 余計に時間がかかるのでしょうか?発注の目安にするのでアドバイス いただければと思います。
そのスクリプトの設計しだいだけど、 他人が作ったものをいじるのは面倒なことが多い。 メール送信くらいなら、難しくないけど。 MySQLというよりPHPの話だね。
MySQLでBCPって使えます??
>>591 >"本当に読み込まれている"
というのはC:\WINDOWS\php.iniのことでよろしいのでしょうか。
このiniはどこの説明サイトにも、デフォルト状態でMySQLに接続できるとあったので
最低限のカスタマイズしかしてません。(モジュール,Docroot等)
phpmyadminの場合、MySQLサーバーに接続してから弾かれるのではなくコネクション自体が出来てないと思うので、
どのphpからmysqlを呼び出してもおそらくこのエラーが出ます。。
現に違うphpからmysqlを呼んでも同様のエラー(接続不可)がでます。
WinMySQLAdminでmy.iniを参照しましたが、特に解説サイトと異なる環境でもなく、設定も間違ってはいないと思うんですが。。
MySQLってどれくらい速いの?
>>595 変な常駐ソフト使ってたりしない?
まぁローカルホストへの接続を落とすようなソフトはないと思うけど。
>>595 >というのはC:\WINDOWS\php.iniのことでよろしいのでしょうか。
PHPの読み出しの優先順位や、あなたの環境に依存する話なので
実際にphpinfo()で見て確認してください。思い込みが一番厄介。
そしてついでに表示されるMySQL関係の設定部分の値もコピペしてください。
あとMySQLのstatusコマンドでConnectionの欄がどういう値になっているか
教えてください。何もしないでmysqladminで繋がっているようので、
Windowsの場合のデフォルト(Port#3306経由)だと思いますけど、一応。
>597 サーバー用途以外の常駐は一切ありません。(mysqladmin,mysqld-max-nt,apache)ファイアーウォールはルーターでやってます。 >598 phpinfo()より、 Configuration File (php.ini) Path C:\WINDOWS\php.ini extension_dir D:/php/extensions D:/php/extensions include_path .;D:\php\includes .;D:\php\includes PATH C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS\;C:\WINDOWS\COMMAND\;C:\WINDOWS;C:\WINDOWS\system32\WBEM;D:\mysql\bin;D:\php phpinfo内mysql欄 Active Persistent Links 0 Active Links 0 Client API version 3.23.49 mysql.default_host no value no value mysql.default_password no value no value mysql.default_port no value no value mysql.default_socket no value no value mysql.default_user no value no value お手数お掛けしますがお願いいたします。。
>>599 特にPHPの設定で「変な値」に上書きされてるってことも無いようですね。
じゃあ純粋にPHPのスクリプトで指定しているMySQLのアカウントかな。
PHPで指定しているMySQLのアカウントとパスワードの組み合わせって、
コマンドコンソール上で「mysql -u MySQLのアカウント -p [ENTER]」として
「Enter password:」となったときに入力して、接続できるパスワードとの組と
本当に相違ありませんか。
間違っていなければ、次は、phpmyadminよりも簡単なスクリプトでチェックしてみましょうかね。
>>600 度重なる適切なアドバイスありがとうございました。
改めて設定がおかしい場所を挙げて虱潰しに試したところようやくphpでの接続が出来ました。
本当に有難う御座いました!
原因?と思われる所の修正箇所は、SQLのmy.ini内#bind-address=192.168.1.2(インスコ時デフォルト)
を#bind-address=127.0.0.1に、XPのコンピュータ名をオリジナルから、LOCALHOSTに。以上です。
my.iniの#は恐らくコメント扱い(?)だけど関係無さそうですかね。。だとするとコンピュータ名に問題があったのかも?しれません。
いずれにせよ、正常にMySQLを稼動させる事が出来ました。
今度は逆に出来る限りサポート出来る様にマスターします(つД`)本当に有難う!
EUC-JPのデータと、S-JIS のデータ、同じサーバ上に保存しても問題ない?
>>602 問題ない。ただし表示する側でいちいち変換しないとダメなので混在は薦められない。
MySQL上のデータであればエクスポート操作するときに文字コード変換が出来るので
一度データベースごとSQLファイルにエクスポートして、再度データベースを登録すれば文字コードが統一される。
なるべく統一することを薦める。
>>601 益々原因が判らん。
・bind-address→コメントになっているので関係ない
・Windowsのコンピュータ名をLOCALHOSTに
元々Win-XPでも、"localhost"の名で127.0.0.1のループバック
アドレスにアタッチされているので、通常は最初から名前が引ける筈。
Windowsのコンピュータ名を変えて、localhostが引けるようになった
ということは、localhostの名前解決にDNSじゃなくて、次善のWindowsコンピュータ名
による名前解決がされているということ。
http://www.rtpro.yamaha.co.jp/RT/FAQ/Windows/Windows2000.html#notes-4 の2番目と同じようなシチュエーションなのかな。コンピュータ名の変更じゃなくて
ちゃんとDNSサーバかWindows-XPのhostファイルで静的に設定し直した方が良いと思う。
605 :
604 :04/01/30 00:35 ID:???
下で「DNSサーバに登録」といってるのはローカルにDNSサーバを 立ててればの場合で、外部のDNSサーバを使っているのなら、hostsで指定。
606 :
604 :04/01/30 00:57 ID:???
それ以前にブラウザからlocalhostのApacheを指定したときは DNSで引けてるのか…つまりDNSで名前解決してる。 ごめん、原因が推測できない。
607 :
NAME IS NULL :04/01/30 07:47 ID:xXOAnU3q
MySQLの4.1、5.0を使ってる人感想お願いします。
611 :
NAME IS NULL :04/01/30 19:53 ID:Jo0zL4j+
5.0の安定版がでるのはいつの話になるんだろうか?2年後くらい?
クックブック1、2買ッタ━━(゚∀゚)━━!! ついでにデスクトップリファレンスも買っちゃったけどこれはいらなかったな。
613 :
Nori :04/01/31 19:58 ID:8IvlYtoB
614 :
Nori :04/01/31 20:00 ID:8IvlYtoB
最近PHP+MySQLに目覚めて掲示板を作ってみたりして遊んでいる初心者です。 いろいろやってみたくなって画像貼り付けできるようにしようとしたんですが 最初はPHPでファイル受信部かいてディレクトリに適当に放り込んで ファイル名をMySQLで管理してHTML生成時にファイル名を埋め込んで 表示させていたんですが、MySQLのフィールドに直接画像情報を格納することは できないんでしょうか? 妄想でいったんサーバにテンポラリ受信しておいてそのファイルを SQL命令で取り込めるんじゃないかとおもってマニュアルと格闘したのですが それらしきものが見つからなくて;; MySQLの先輩方、フィールドに直接ファイルをバイナリ格納するための SQL文を教えてくださいまし。おながいします。
617 :
NAME IS NULL :04/02/01 02:39 ID:gVnaH4Br
どうしても、4.1を使いたいのですが、 どうやってインストールすれば良いのでしょうか? setup.exeがないのですが・・・
618 :
615 :04/02/01 02:58 ID:???
>616 ええとそこまでは調べたんですが、具体的にどうやれば良いのか見当がつかなくて;; たとえばimagelistデータベースにLONGBLOB型のimagefileフィールドがあるときには INSERT INTO imagelist (imagefile) VALUES (ファイルパス); とすれば良いのでしょうか?なにか良いサンプルソースとかあれば 教えてください・・・
619 :
NAME IS NULL :04/02/01 03:38 ID:z2QFx6ei
>>617 窓版が良いの?
UNIX版じゃ駄目かな。
>>618 base64エンコードすると文字列で扱えるので楽。
ただ、サイズが4/3倍になる
621 :
NAME IS NULL :04/02/01 03:59 ID:gVnaH4Br
>>621 cygwin 入れて make すれば?
>>618 ファイルパスを直接指定するLOAD DATA INFILE文はテキストしか扱えないので、
何らかのスクリプト内でファイルを開いて読み込んで、INSERT文で値を投げ込むだけですよ。
INSERTの構文はあらゆるところで見つかるので、ちゃんと調べましょ。
サンプルソースっても…それするだけだから。
import MySQLdb
conn = MySQLdb.connect(host="localhost",
user="root", passwd="pass", db="test")
cursor = conn.cursor()
dat = file("file.bin", "rb").read()
cursor.execute("""INSERT INTO tbl_name
(file_data) VALUES (%s)""", (dat))
cursor.close()
conn.close()
な感じでよい?
>>621 4.0はインストーラあり(mysql-4.0.17-win.zip)と
インストーラなし(mysql-4.0.17-win-noinstall.zip)が公開されています。
4.1はインストーラなし(mysql-4.1.1-alpha-win.zip)のみ公開されています。
SETUP.EXEを実行するのはインストーラありの場合です。
インストーラなしの場合は解凍すると直接MySQLディレクトリができます。
mysql-4.1.1-alphaという名前なのでmysqlにリネームしてください。
その下のbinフォルダにパスを通してください。
mysql\bin\winmysqladmin.exeでMySQLサービスが起動します。
625 :
NAME IS NULL :04/02/01 14:51 ID:bRYMFPE6
>>624 ご回答ありがとうございます。
解決しました。
>623 ありがとうございます。参考になります。 いろいろ試してみてなんとかデータベースに取り込めるようになりました。 ただコマンドラインからやっていてどうしても理解できなかったのが >INSERT INTO images (fileimage) VALUES (LOAD_FILE('c:\\temp\\test.gif')); このコマンドが何故か失敗してしまうんですが >SET @tempbin = LOAD_FILE('c:\\temp\\test.gif'); >INSERT INTO images (fileimage) VALUES (@tempbin); これだとちゃんと取り込めるようなんです。でも毎回SET文使うのもヘンな話だし、 どうしてできないのか不思議で試してるうちに徹夜になってしまった;;
>>624 あ〜、すごい大人だ…
「"setup.exe"だぁ?」と読んだ途端にプルプルしてしまった漏れ、
大人気ない…_| ̄|○
とりあえず(winに)入れてみたって人が、 ちょっと分からなくなったからって ここに聞きにくる。ここはそういう場所。
630 :
NAME IS NULL :04/02/03 18:40 ID:zCbpO9nh
RHLinux9+3.23.53 複数のMYSQLインスコしようとしてるんだが mysqld_multiの使い方がマニュアル読んでもいまいち理解できないです 詳しく乗ってるページのURLか 手ほどきよろしく
RH9に4.1.1入れてみたら、ktermから日本語が入れられません。 (by cannaもだめ, cut & ペーストもダメ)日本語は文字として受け取ってくれないで、 なんの変化も起こさない。 4.1.0では入れられたのに。 皆さん、4.1.1での日本語の入力、どうなってますか?
632 :
NAME IS NULL :04/02/03 20:22 ID:eG+7xF1E
MySQLを社内のシステムとして使う場合と お金どれくらいはらわなきゃならないの?
633 :
NAME IS NULL :04/02/04 00:12 ID:RJ4QJV+9
MySQLでデータの更新を頻繁にした場合、データファイルが 壊れることってやっぱりあります?
635 :
634 :04/02/04 00:55 ID:???
ああ、あと社内でシステム作って(構築)、社内で使うだけ(外販しない)なら 社内ルールをきちんと決めておけば、GPLのでも構わんと思うぞ。 ところで社内でGPLのシステム使ってて、社内規則で従業員に 「データを含まないシステムの持ち出しを禁止」や「ソースを見せない」 ってできるのかな?従業員を第三者ととらえると「再配布の禁止」や 「ソースを渡さない」にあたるから、GPL違反になりそうな感じもする。 GPLのFAQでの「法人内限定で使う場合」の雰囲気からすると、 むしろ「持ち出しを禁止」しないと、それ(法人内限定で使う)が 成立しない感じではあるが。
636 :
DB太郎 :04/02/04 01:06 ID:byvL/4O2
win32最新版のMYSQLを入れたんですが 同じくwin32のPostgreSQLに比べて UPDATE速度が、かなりに遅いのですが。どなたか解決策を御存知ないでしょうか? ちなみに設定項目は、両方ともデフォルトのままで DBへのアクセスは、libpq.lib(PostgreSQL)とlibmysql.dll(MYSQL)を使ってます。 30000件のレコードのINSERT速度は、若干MYSQLの方が速いのですが そのINSERTした全レコードの複数のフィールドに対して UPDATEを実行すると、PostgreSQLの10倍くらいの時間がかかります。 最初はバッファ領域が足りないのかと、MYSQLのチューニングサイトを参考に 設定ファイルを色々変更したりしたんですが、あまり変りませんでした。 何かいい方法があれば、教えて頂けませんでしょうか? よろしくお願いします。
>>633 これで壊れたらDBMS失格だろ
HDDが壊れることはあるだろうがw
>>636 使用しているDBは何ですか?(多分MyISAMかな)
アプリの作りをそのまま(どういう作りになっているかは知りませんが)
で、特に更新系の比重が大きいなら、取り合えずinnoDBを採用されては?
それにしてもポスグレの10倍とは「作りが最適化されてない」ような気が。
>>636 バージョンは4.0.x?
それ以降は使わないほうが良いのでは?
>>637 ファイルシステムに依存する話だと思うが。
(HDDが壊れることにあたるのかな)
FATで使ったとき、結構不具合でたよ。
myisamchk -rで直る程度の不整合だけど。
>>632 上の人も書いてますが、自社内のみで使うんならGPLなら金払わないでいい
>>633 まともなファイルシステムならまず壊れないよ。
>>636 少なくともポスグレよりは速い。なんか間違ってるのでは?
>>636 非常に興味があります。
どんな設計か見せてもらえない?
MySQLの使用しているディスクサイズを知る方法はないでしょうか。 できればデータベース単位で分かると幸いです。
645 :
644 :04/02/04 16:13 ID:???
すいません。 環境書くのを忘れてました。 Redhat9 + PHP4.3.4 + MySQL 3.23.58 を使用しています。 よろしくお願いします。
647 :
NAME IS NULL :04/02/04 22:25 ID:H7awUCE+
1つのデーブルの最大レコード保存数はどれくらいでしょう? 現在、数万件のレコードを 8個のテーブルで分けて使用してますが テーブル結合して柔軟な条件検索が出来ないので 1つのテーブル9万件のレコードを入れようと思っています
>>647 1000万件ぐらいまでは普通に使える。
億超えてくるとちょっと遅いこともある。
もちろんインデックスちゃんとしてるときね。
650 :
/dev/null :04/02/05 02:46 ID:0Z1nuTls
Google様を支えているMySQLのバージョンを教えて下さい。
GoogleはMySQLなん?
652 :
/dev/null :04/02/05 03:13 ID:0Z1nuTls
うん。どうも、あのGoogle様はmysqlば使いよるごたんって噂ばってんがほんなことやろうか?
本屋に寄ったらMySQL4.1の本が出ていました。
買ってきたばかりですが良本と判断したので紹介します。
『実践MySQL4』
http://www.sbpnet.jp/books/products/detail.asp?sku=4797326379 >MySQL4.1を対象とした管理者ガイド
>MySQL4から新たに装備された、
>トランザクションやサブクエリー機能などの新機能に焦点を当てて詳解しました。
>Javaによるサンプルコードも豊富に掲載し、
>MySQLの新たな可能性に迫るサーバ管理者向けの実用書です。
MySQL4.xの新機能を使いこなしたい人にお勧めです。
特にJava+MySQL4.1の組み合わせで使う人にぴったりです。
CとDelphiからMySQLにアクセスする方法もちょっと載っています。
PerlとPHPからのアクセスは扱われていません。
PHPで書かれたXOOPSについては付録で詳しく説明しています。
655 :
NAME IS NULL :04/02/05 14:32 ID:Nhx4sbQ8
>>654 宣伝ご苦労様
買ってきたばかりで良本とわかるとはすごいね。
リンクはamazonに貼ったほうがバレにくいよ。
>>654 そうだね。かなりまとまっていたと思う。
でもあれくらいの内容なら、買う必要がない。
これから覚える人にはいいんじゃないかな?
>>654 目次晒せyo。ソフトバンクの書籍情報、駄目杉
「MySQL徹底入門」よりどの位深い?>JDBC
>>655 Amazonにはまだ登録されてないみたいだ象
658 :
654 :04/02/05 17:18 ID:???
>>657 「6-2 JavaでMySQL4.0/4.1の新機能を使う」にあたる物は
3年前の本である『MySQL徹底入門』にはありません。
『実践MySQL4』目次
1 MySQLの概要 1
2 インストールと設定 13
3 MySQLの管理 35
4 MySQLで使えるSQL文 81
5 MySQLを利用した開発 147
6 JavaでMySQLを利用する 169
A1 DelphiでMySQLを利用する 255
A2 XOOPSについて 281
A3 本書で取りあつかったコマンド 317
6章「JavaでMySQLを利用する」詳細
6-1 Javaを使ったMySQL操作 170
6-1-1 JavaとRDBMS 170 / 6-1-2 MySQL JDBCドライバ 170
6-1-3 MySQLの実行環境 174 / 6-1-4 Javaインストールから実行までの手順 177
6-1-5 Connector/J JDBCドライバのインストール 179 / 6-1-6 MySQLサーバへの接続と切断 179
6-1-7 更新系クエリの実行 183 / 6-1-8 参照系クエリの実行 186
6-1-9 ResultSetを使ったDB更新処理 191 / 6-1-10 executeBatchの実行 199
6-1-11 PreparedStatementを使った更新系クエリ 202
6-2 JavaでMySQL4.0/4.1の新機能を使う 207
6-2-1 文字コード 207 / 6-2-2 外部キーの利用 212
6-2-3 副問い合わせ(Sub Query)の利用 219 / 6-2-4 副問い合わせのネスト 227
6-2-5 トランザクションの利用 231 / 6-2-6 トランザクション分離レベルの利用 235
6-3 バイナリーデータの入出力 238
6-3-1 BLOBデータの挿入 238 / 6-3-2 BLOBデータの取り出し 242
6-4 日本語の取扱い 246
6-4-1 日本語を表示させる 246
6-5 終わりに 253
Win2k+MySQL4.1を使ってるんだけど mysql \s した時Client charactersetが「latin1」ってなってる。 sjisにできないの?
MySQL本ってなんでJavaとかPHPの説明のほうが多いの? 半分以上apacheやPHPの説明と使えないWEBアプリの解説で、 MySQLについての説明が大味のものばかりだよな。 MySQLはバージョン毎にかなり違うし、オンラインドキュメントの翻訳もいまいちだから、 MySQLだけきちんとフォローした本があると重宝すると思うのだが。
これで654=658が目次だけでなく、 原稿ごとさらしてくれるとありがたいんだが。
いや、オンラインドキュメントで十分。
オンラインドキュメントはなんでも書いてあるけど、 分かりにくい構成だよな。SQLも関数もバラバラに配置されてるし。 分量も半端じゃないから探すの大変。
全部落としてgrepかけるかgoogleでサイト内検索すれ
665 :
NAME IS NULL :04/02/06 11:14 ID:zEP3TBF5
DQNな質問で申し訳ありませんが、宜しくお願いします。 私が、在庫管理システムを販売したとします。 その在庫管理システムは、一つの事務所で使用するだけなら、 MySQLを使用しません。 しかし複数の事務所で使用する場合、 「私が開発したオープンソースのフリーソフトウェアを介してMySQLサーバーを使用します。」 つまり、MySQLを使っている部分のソフトウェアはフリーでオープンソースですが、 これだけでは何の役にも立ちません。 別途、有料で非オープンソースの在庫管理システムと組み合わせる事で初めて 存在意義があります。 このような場合、MySQLのライセンスを購入する必要はあるのでしょうか?
>>665 貴方が開発するフリーソフトウェアはGPLですか?
そのフリーソフトウェアと在庫管理システムとはどのような手法で接続されますか?
MySQLのライセンスがサーバと接続ライブラリとで別で、
金額もライブラリは格安だったらあれこれ考える時間考えると
CMライセンス買えって言えるのにな。
667 :
665 :04/02/06 12:44 ID:???
>>666 レスありがとうございます。
フリーソフトの部分は改変自由、再配布自由、オープンソース、で問題ないので、
GPLと言えると思います。
このフリーソフトと在庫管理ソフトとはSocketを使用してメッセージのやり取りをします。
また、このフリーソフトは在庫管理ソフトが使っているDB(このDBは非公開)にアクセスして、
内容を解析し、それをMySQLのデータベースに書き込むという動作をします。
ライセンスを買う買わないという選択肢は顧客にあるので、私が決める事ができません。
無料のDBを使えば良いと顧客には言われていますが、私は今回の案件は
高速性を優先したいのでMySQLを使用したいと思っております。
>> 664 マニュアル読めばわかることを質問してくる人が集うこのスレの存在意義は?
>>667 先ず、件のフリーソフトと在庫管理ソフト間が、socket経由での
メッセージ通信ならば独立性が保たれていますので、
在庫管理ソフトにMySQL社関係のコード(MySQLサーバ及び接続ライブラリ)
が含まれていない限りMySQLのライセンスを必要としません。
次に直接MySQLに接続する、件のフリーソフトの方ですが
これがGPLであれば問題なくGPL版のMySQLサーバが使用できます。
GPLでないフリーソフトの場合にはコマーシャルライセンスが必要。
# 正確にはプログラム作りにもよる。例えばPHPでプログラムが組まれていて
# PHPのバンドルのmysqlライブラリの場合、GPLでなくても大丈夫だったりもする。
コマーシャルライセンスが必要な場合でも、OSIに準拠したオープンソースソフトであれば
費用が無料となるケースもあります。そうでなかった場合でもMySQLサーバ単位でライセンスを
購入するだけで済みます。個人的にはサーバ単位であれば予算的にも余り厳しくはないと
思いますし、GPLによる事務リスクや保証のことを考えると、コマーシャルライセンスを得た
MySQLサーバでサービスを提供した方が良いのではないかと思います。
#イメージ的にはASPの様なものを作るように思えるので。
あ、あと フリーソフトの全てがGPLなものではないですし、 オープンソースソフトの全てがフリーソフトではないです。 細かく言えば日本語の"フリーソフト"と、FSFで言うFreeSoftwareも違います。 GPL版のMySQLと"組み合わせ"られるのは"GPLのFreeSoftware"だけです。 #上の"組み合わせ"のは、GPLで謳われている意味でのこと。
671 :
665 :04/02/06 15:33 ID:???
>>669 >>670 非常に詳細な説明、本当にありがとうございます。
>GPLによる事務リスクや保証のことを考えると、コマーシャルライセンスを得た
>MySQLサーバでサービスを提供した方が良いのではないかと思います。
私もそう思います。
フリーソフトの件はかなり際どい判定になりそうなので、客を説得するか、
ダメならFireBardなどに乗り換える事を検討してみます。
失礼しました。
672 :
梵 :04/02/06 17:33 ID:BHjyE4Sx
今言われそう。 必死に仕様書から除外してる。
673 :
梵 :04/02/06 17:34 ID:???
誤爆しましたさようなら。
センスのない誤爆だ
675 :
630 :04/02/06 22:05 ID:???
>642 英語マニュアル読んだら、一発解決でした。サンクスコ 日本語に訳してんの誰だよ・・・
RH9でMySQL 4.1.1.をtarボールのソースをコンパイルしてインストールしましたが、 mysql_install_dbの実行で下のエラーがでます。 sqlスクリプトの構文エラーのようですが、 こんなことってあるんでしょうか? インストール方法のどこかが悪いのでしょうか? # ./bin/mysql_install_db Installing all prepared tables ERROR: 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '"REPLACE works exactly like INSERT, except that if an old\nrecord in the table h' at line 1 040207 12:57:26 Aborting 040207 12:57:26 /usr/local/mysql/libexec/mysqld: Shutdown Complete ./bin/mysql_install_db: line 274: 4139 パイプが切断されました cat $fill_help_tables Installation of grant tables failed! .....
>>676 良く判らんが、mysql_create_system_tables.sh内で発生しているエラーっぽい。
古いMySQLの管理テーブルとか残ってない?
678 :
676 :04/02/07 14:44 ID:???
>古いMySQLの管理テーブルとか残ってない? まっさらな状態でのインストールです。varディレクトリも新規作成されてます。
原因はshare/mysql/fill_help_tables.sqlで、 中のhelp_topicsテーブルへのinsertコマンドが4つくらいエラーを出してました。 運用には問題ないので、エラーを出すinsertコマンドを削除してmysql_install_dbを実行しました。 単純なバグっぽいし、OSやディストリビューションに依存するものでもなさそうですが、 どこにもバグ報告がないのが不思議。4.1.1を使ってる人いないのか?
安定版の4.0.17を入れなさいってこった
681 :
NAME IS NULL :04/02/08 02:32 ID:YRR/Exoo
PHP絡みなんでスレ違いかも知れませんが。 二つのクエリーをまとめて実行したいんですけど、どうも"error"が返されます。 方っぽだけ実行すると成功するんです。それをまとめちゃうとダメなんす…。 どなたか教えてください。 $sql = "INSERT INTO diary_comment VALUES('$myID','$name','$myID','$mail','$url','$comment','$target');"; $sql .= "UPDATE diary set db_comment=db_comment+1 WHERE id=$target;"; $newData = mysql_query($sql) or die ("error");
682 :
NAME IS NULL :04/02/08 02:35 ID:YRR/Exoo
なんかIDかっちょいい
mysql_query()は単一のクエリーしか実行できないのでは? 理由は実装上の制限だろうが、論理的に考えてもダメでしょ。 もしもINSERTコマンドが失敗したらUPDATEしていいの、それともダメなの? こういったロジックはPHP側できちんと作り込まないとダメ。 ちなみに、他のDBMSならストアドプロシジャにするとかできるけどな。
>> 683 メチャクチャ納得しました。ありがとうございます!
>>679 使ってません4.1.1。4.1.0から結構変わってるので様子見
管理DBのhelp項目って、4.1.1から新規に追加されたんだよね。
人柱ってことで、ひとつバグレポートよろしく(笑
686 :
NAME IS NULL :04/02/08 10:36 ID:hssIMXNc
MySQL ABはもう5.0に気が移っちゃっているようだし4.1.xはあんましバグフィックスする気がないのでは
>>686 いやいや。4.1.0→4.1.1の変化をみると
「バグフィックス」じゃなくて「仕様変更(追加)」の気がアリアリですよ。
メンテナンスモードはどちらかというと4.0.xの方。
5.0 の目玉ってVIEW?
4.1系列と5.0系列を同時に開発している意味がよく分からんのですが、 どういうポリシーで開発やってるんですかMySQL ABは? どこかに書いてますか?
4.1が副問い合わせ+UNICODE 5.0がストアドプロシジャ+トリガ らしいけど。 しかし、5.0も副問い合わせ+UNICODEはサポートされるわけだし、 4.1が目指すGOALってどこ? 4.1のGOALは5.0なんじゃないの?なのに並列開発するのって何故なんだ。 ぜんぜんわからん。
正直ストアドが実装されてないRDBMSは片手落ちだと思う。 5.0からが本番だろう。
693 :
NAME IS NULL :04/02/09 00:00 ID:ACD/1njR
パッケージのインストールの際、依存チェックで引っかかりました。
メッセージにバージョンが書いてない場合、何をインストールすればいいのでしょうか?
環境と経過
RedHatLunix7.3 に mysql をインストール
# rpm -ivh mysql-3.23.49-3.i386.rpm 完了
# rpm -ivh mysqlclient9-3.23.22-6.i386.rpm 完了
# rpm -ivh mysql-server-3.23.49-3.i386.rpm 完了
# rpm -ivh mysql-devel-3.23.49-3.i386.rpm 完了
http://tomo.no-ip.com/goodstream/server/mysql/linux/mysql73.html#MySQLのインストール 引っかかったパッケージ
# rpm -ivh MyODBC-2.50.39-4.i386.rpm
メッセージ
error: failed dependencies:
unixODBC is needed by MyODBC-2.50.39-4
libodbcinst.so.1 is needed by MyODBC-2.50.39-4
そこで検索
unixODBC と libodbcinst.so.1
検索の結果
unixODBC が色々表示されて何が必要なのか不明?
i386でも PLD Linux Distribution とか A complete ODBC driver manager for Linux が有り、
バージョンも色々。.
参考:現時点でコマンド入力すると mysql は表示される。
> mysqlshow
+-----------+
| Databases |
+-----------+
| mysql |
| test |
+-----------+
宜しくお願いします。
694 :
NAME IS NULL :04/02/09 05:16 ID:cyRUdfa2
悪いことは謂はん。Linuxなんて玩具は捨ててOpenBSDのportsを使ひなされ。
>>691 だからポインタに示したページにも書いてあるやん。
MySQL5で予定している機能の内でも、顧客要望が非常に高い
機能についてMySQL4をベースにしたMySQL4.1を起こしたって。
GOALは「MySQL5よりも安定度の高い(だって5は全然まだまだ)、
MySQL4を使って、急かされてる機能を市場にすばやく提供すること」だよ。
あと元々MySQL4(4.0の頃)とMySQL5の開発は並行。
それがMySQL4(4.1+4.0メンテ)とMySQL5となっただけ。
例えがふさわしいかちょっと疑問が残るのだが、
Win9xとWinNTというプロジェクトがあって、安定したWin98SEを
ベースにWinXPの機能を先にWinMEで提供しましょう見たいな感じ。
# XPの基のWinNTはかなり先行してとか、WinMEはベースのWin98SEよりも
# 全然安定してなかったとか、そもそも顧客の要望してた機能じゃない
# ものばかりを盛り込んでたし等々は目をつぶれ。
>> GOALは「MySQL5よりも安定度の高い(だって5は全然まだまだ)、 >> MySQL4を使って、急かされてる機能を市場にすばやく提供すること」だよ。 安定しないものを素早く提供されても.....誰も使わない。
687 名前:NAME IS NULL :04/02/08 11:52 ID:???
>>686 いやいや。4.1.0→4.1.1の変化をみると
「バグフィックス」じゃなくて「仕様変更(追加)」の気がアリアリですよ。
メンテナンスモードはどちらかというと4.0.xの方。
4.1.0->4.1.1でもいろいろ仕様変更されてるし、
細かな部分ではreadline関連もいじられてるし、
DBとは全然関係ないhelpなんぞくっつけて且つBUGってるし。
>>MySQL5よりも安定度の高い
>>MySQL4を使って、
4.1.xが安定しているようにはとても思えん。
ほんとは4.1系はもっと早く安定して4.0からすぐに4.1に移る予定だったんじゃないの。 でも予想外に手間取っている (機能の実装そのものや、SAPなど商売関係にリソースを喰われたなど) ので 今のような中と半端な状態におちいっているのでは。
>4.1.xが安定しているようにはとても思えん。 ベースのMySQL4.0.xは酷くはないよ。 # 今客先に4.1.x入れる度胸があるかといえば、 # 度胸はあるがそんな無責任なことは出来ん。 MySQLがそういう羽目になっているのは、開発の不手際か 営業面での泣く泣くのリリースかしらんけど。 余計なものも「ついでに」と入れてる気は確かにある。 ペーパーをリリース側(営業)とモノをリリースする側(開発)で すれ違ってるか、表と裏の考えがるのかもね。所謂技術知らない 経営者(発注者)に、アピールするのも大事だから。 とは言え、4.1.xはαリリースってこと忘れてないか?
外部キーで接続されたテーブルを一括でupadteって出来ないんでしょうか? 各種情報テーブルが3つあって、関連付けられています。 更新されるたびに3つのテーブルを個別にupdateしております。 これだと微妙に効率悪いような・・・? 一応ぐぐったり書籍で調べたところ「MySQLにそのような機能は無い」と結論付けたのですが
>> とは言え、4.1.xはαリリースってこと忘れてないか? 4.1も5.0もα。で並行開発中。なんだかなあ。
>> すれ違ってるか、表と裏の考えがるのかもね。所謂技術知らない >>経営者(発注者)に、アピールするのも大事だから。 MySQL ABの場合、 経営者=MySQL開発創始者 じゃなかった? >> とは言え、4.1.xはαリリースってこと忘れてないか? これ↑ と『5.0まで待てないユーザのために4.1を素早く投入』 とはまったく整合性の取れない話だな。
>>701 4.0.8から、CREATE TABLEに"ON UPDATE CASCADE"を設定することができる。
705 :
NAME IS NULL :04/02/09 20:21 ID:zxec2+Vx
>>703 その文で「経営者(発注者)」が指してるのは、
買う側(顧客)の話ッス。
MySQL ABの方は SEO=MySQL開発創始者はそだけど、
アップルの例もあるからねぇ、会社という組織になると。
(HPとかもそうか)
>まったく整合性の取れない
開発進捗度がこのまま足並み揃えて同じようならそうだな。
でも、MySQL5のストアドが結構掛かりそうだから、先にまとまりそうな
部分を先出ししてんじゃないの。だとしたら同じスピードならば
単純にストアド分は先に上がるな>MySQL4.1
折れはストアドもサブクエリもどうでも良いけど、レプリケーション
(今の擬似じゃなくて)を上げて欲しいよ。
706 :
NAME IS NULL :04/02/10 15:56 ID:2IOk3KMr
LinuxサーバにMySQLを入れてWEBアプリケーションを作成しようと思っていますが、 漢字コードで迷っています。 htmlは携帯向けなのでS-JIS、insertはWin機からAccess一括とWEBから、updateは WEBからの予定です。 MySQLは4.0.17をrpmで入れました。WinにはConnector/ODBC 3.51だけを入れました。 そこで質問ですが、この様な場合のMySQLの漢字コードはEUC、SJISのどちらにすべ きなのでしょうか。またその時の注意点や参照先等がありましたらお願いします。 ちなみにAccessで漢字コードをDBのcharに入れたらselect文でしっかり検索でき ました。
Shift_JIS にしておいた方が無難なんじゃねーの?
同意 > 707
709 :
NAME IS NULL :04/02/10 18:51 ID:2IOk3KMr
>>707 >>708 即レスどうもありがとうです。
「Shift-JISデータを使うにはソースからmakeが必要」とどこかで見たのですが、
rpm版で大丈夫でした。
mysqldumpのバックアップのinsert文は、Accessからにすればイイや。
と言うことでS-JISでいきます。
MysqlのrpmとODBC入れただけで何もしていないのに、Accessで使えます。
意外と簡単でいいですね。>MySQL
知れば知る程MySQLの汚さにうんざり。 じゃあ使うのやめれば > 俺 いろいろあってつき合わないといけないんだよお!
スレ違いかもしれないんですが質問があります。 PHPでMySQLにアクセスする関数を使えるようにするために php-mysqlというパッケージを入れないといけないのですが、 rpmをインストールしようとするとライブラリが足りないという メッセージが出てインストールできません。そのライブラリを 入れてもやはり同じメッセージが出て失敗します。 いろいろ調べてみて、リンクをはる場所が違うのでシンボリック リンクを張りなおさないといけないというのを見つけたのですが、 うまくいきませんでした。 どうしたらいいのかもうわかりません。 ご教授よろしくお願いします。 環境: RedHat7.3 MySQL4.0.17(rpmでインストール) PHP4.3.4(ソースからインストール。オプションは指定なし)
PHP+MySQL連動の検索エンジンを作成しようと考えてます。 あくまでも速さ最優先で表示はGoogle式を考えてます。 タイトル (日付) 内容 のような。ユーザーは登録のみ行え、削除機能はありません。 データの書き換えは管理人のみが行えると言う。 上記のような検索エンジンを作成しようと考えたところ これって1行掲示板を作る要領でいけるのではないか?と思ったのですが いかがでしょうか?
>>711 回答1:ソースからインストールしなさい。
回答2:RH7.3なんぞ古いものは捨てなさい。
回答3:他人も状況把握できるようにエラーメッセージもさらしなさい。
>>712 ダメ。
DBの検索と全文検索の区別ができないうちはモノをつくろうとするな。
時間の無駄。
>>711 少なくてもエラーの内容はそのままコピペせんと…
全然どこから手をつけて良いか判らないのなら、ソースレイアウトに近い
i386用Linux"バイナリ"(RPM管理でないもの)のMySQL4.0.17の使用を薦める。
read_buffer_sizeってどんな場面で効果を発揮するものなんでしょう? デフォルトの値から1Mにかえたところ、insert select文の実行に3倍近い時間が かかるようになってしまいました。今はデフォルトの値に戻しているのですが、 どういう場面で効果を発揮するのか教えていただけませんか?
716 :
715 :04/02/12 10:28 ID:???
補足です。 insert select文では、インデックスのみで解決できる値をselectしています。
717 :
NAME IS NULL :04/02/12 20:45 ID:h5NKhQUi
洋書でもいいんですが、MySQL本でオススメってありますか? 「これだけ知ってればかなりのMySQL通」と言われるような本がいいです。 オンラインドキュメントを超える本はない、とかいうレスでも可です。
えー、おれRedHat7.3つかってるよ 9でやったら、うまくコンパイルできなかったし。 おすすめのディストリあるんすか? rpmは嫌いなのよね
3.23から4.0に変えたのですが unsigned同士を引き算した場合、型変換されずに小さいものから大きいものを引いた場合でも マイナスにならなくなりました。 マイナスの値を得たい場合はcast( A - B as signed)と一々しなければならないのでしょうか?
>>719 UNSIGNEDがサポートされたのって4.0からだったっけ?
3.23と4.0で挙動が違うって話?
>> unsigned同士を引き算した場合、型変換されずに小さいものから大きいものを引いた場合でも
>>マイナスにならなくなりました。
UNSIGNEDってそういうものじゃん。
補足すると、 例えばBIG INTEGER UNSIGNEDは0〜18446744073709551615が使えるが、 次の計算をした結果: 1 - 18446744073709551615 = -18446744073709551614 は残念ながらBIG INTEGERで扱える範囲を越えてるので、 表示できないでしょ。 だから、無理矢理UNSIGNEDの数値で負数を表現しようと、 減算しても、結果は補数表示されるのは、しかたないし、 そういうもんだ。
>>720 挙動が違うって話です。
言葉足らずでスマソ。
例えば、
A|B|A-B
75219 | 13669591 | 18446744073695957244
(A,Bはともにmediumint unsigned)
3.23の頃は暗黙の内にキャストされて負の値が表示されてたので
4.0に移行したら急にプログラムが動かずに焦ったのです。
演算自体はBIGINT SIGNEDに変換されてから行われてるはずなので
結果がマイナスの場合は負数として扱ってくれてもよさそうなものなんですが…
721の例は仕様として、演算に用いる場合は9223372036854775807より大きな値は
使用しないことが前提のようですし。
まぁ仕方ないですかね。
> 4.0に移行したら急にプログラムが動かずに焦ったのです。 なんつーか……。 まず変更点ぐらい調べてからアップデートしようよ。 3.23 から 4.0 ってメジャーバージョン変わるんだしよ。 自業自得。 これ関係ないんかね。外してたら悪いが。 > - Added NO_UNSIGNED_SUBTRACTION to the set of flags that may be > specified with the --sql-mode option for mysqld. It disables > unsigned arithmetic rules when it comes to subtraction. (This will > make MySQL 4.0 behave more like 3.23 with UNSIGNED columns).
725 :
NAME IS NULL :04/02/15 13:34 ID:YhUAblRp
GROUP BY を使うときに、指定したフィールドの値が 最大な行を残すことって、SQL文一発でできるでしょうか? 副問い合わせを使えばできると思うのですが。 [table] PKはid,no id | no | data 0 | 0 | あ 0 | 1 | い 1 | 0 | か 2 | 0 | さ 2 | 1 | し 2 | 2 | す で、 id | no | data 0 | 1 | い 1 | 0 | か 2 | 2 | す っていう結果が欲しいのです。 id でグループ化して、それぞれのグループ内で noが一番最大になっている 行が欲しいという感じです。
>>725 一度tmp tableに落としてjoinしないと出来ないとおもうな。
727 :
NAME IS NULL :04/02/15 14:35 ID:R54KCBiH
>>725 select a.id, a.no, a.data from table a,
(select id, max(no) no from table
group by id ) b
where a.id = b.id
and a.no = b.no;
こうかな。間違ってたらごめん。
あと速度もわかんないしもっといい方法あるかも。
729 :
725 :04/02/15 14:58 ID:YhUAblRp
>>728 ありがとうございます
でもそれって副問い合わせじゃないんですか?
つまり副問い合わせを使わないと不可能ってことですよね。
>>726 の言うとおり。
でもまあやってみます。
>>727 繋がるぞ。
でも確かに、たまに落ちてるな。
731 :
711 :04/02/15 22:35 ID:???
MySQLとPHPをソースからインストールしてみました。 使っているディストリビューションはRedHat8です。 それぞれのインストールはうまく行っていると思います。 mysqlshowコマンドと<?php phpinfo() ?>と記述したファイルへの アクセスは成功しています。 ./configureのオプションは以下の通りです。 mysql ./configure --with-charset=ujis --with-extra-charsets=all php ./configure --prefix=/usr --with-config-file-path=/etc --e nable-force-cgi-redirect --enable-debugger --with-apxs2=/usr/local/apache2/bin/a pxs --with-regex=system --with-openssl --with-mysql=/usr/local --enable-mbstring --enable-mbstr-enc-trans で、あるソフトをrpmパッケージでインストールしようとしたところ、 依存関係のエラーでlibmysqlclient.so.10がないというエラーが 出ていました。 他のサイトでパスを通せばよいというのがあったので cp /usr/local/lib/mysql/libmysqlclient.so.10.0.0 /usr/lib/libmysqlclient.10.0.0 ln -s /usr/local/lib/mysql/libmysqlclient.so.10 /usr/lib/libmysqlclient.so.10 というコマンドを実行しました。 (実際には、/usr/local/lib/mysqlにlibmysqlclient.so.12.0.0とlibmysqlclient.so.12しか なかったので名前をlibmysqlclient.so.10.0.0とlibmysqlclient.so.10に変えてコピーしてあります。 また、そのサイトでは cp /usr/local/mysql/lib/mysql/libmysqlclient.so.10.0.0 /usr/lib/libmysqlclient.10.0.0 ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib/libmysqlclient.so.10 と書いてあったのですが、ソースからインストールしたので上のように変えてみました。) しかし結果は同じでした。 本当に初心者なので、パスを通すということもよくわかっていません。 どうしたらいいのか教えてください。お願いします。
>>731 なんで、RHL7.3→RHL8(否RHL9)なの?
>>732 もう一台マシンがあってそれに入ってるのがRH8だったからです。
でもこっちはスペックがしょぼいので・・・。
7.3の方はmysqlをrpmで入れて、いろいろやってたら
うまくいったんです。
8はCPUが特殊なやつらしく、rpmではうまくインストールできなかったんですよね。
そもそもなんでCPUが違うとrpmが違うのかが分かってないんですが・・・。
例えば、だ。 table a には auto_increment のフィールドがあって、1〜1,000,000 まで行があるとする。 都合があって、そのうち 100行くらい削除してしまっている。 その削除されてしまっている数値を知りたいのだが、これをSQLでするには 1 〜 1,000,000 までの数値が入ったテーブルを別に作って JOIN するしかないのか? このテーブル単体でやる方法は?
735 :
NAME IS NULL :04/02/18 01:12 ID:Qz2KSSIs
MySQL 3.23.58(PHPMyAdmin)で CREATE TABLE abc( create_time TIMESTAMP DEFAULT current_timestamp not null ); とするとエラーが出るんですけど、なんででしょうか?
736 :
NAME IS NULL :04/02/18 01:19 ID:AUmXWNix
まずエラーメッセージを書きたまえ
737 :
NAME IS NULL :04/02/18 01:26 ID:Qz2KSSIs
エラー 実行されたSQLクエリー : CREATE TABLE abc( create_time TIMESTAMPDEFAULTcurrent_timestamp NOT NULL ) MySQLのメッセージ --> #1064 - You have an error in your SQL syntax near 'DEFAULTcurrent_timestamp NOT NULL )' at line 1 ---- DEFAULTが認識されないんですかね?なぜかスペースが詰まります。
738 :
735 :04/02/18 02:34 ID:???
今までpostgresしか使ったことなかったんですけど、 MySQLのtimestampはデータ操作の日時を自動的に記録する 特別な型なんですかね・・・?これは混乱する。。 ちなみに、 CREATE TABLE abc( create_time DATETIME DEFAULT current_timestamp not null ); でもやはり同じようにエラーが出ました。
739 :
NAME IS NULL :04/02/18 10:44 ID:TxHqfBga
質問です INTなどのAUTO_INCREMENTを使用したフィールドで、 番号の終端に達した(例えばINT(4)で9999まで振られた)場合、 次にレコードがINSERTされた場合、 そのフィールドの値はどうなるのでしょうか? マニュアルなどを検索しましたが見つかりませんでした。 どなたかご存知の方よろしくお願いします。
>>739 MAXとった奴に+1した値を書き込んでるから、単純にレンジエラーじゃないの?
と思ったけどMySQLは数値の切り詰めを行うから、MAXと同値を書き込もうとするのかな?
そしたら重複値のエラーがでるか、AUTO_INCREMENT専用のエラーがあるか。
ループさせてやってみれば良いじゃん。
あと、INT(4)の最大値は9999じゃなくてINTと同じ2147483647だから。
ついでに符合なし指定して4294967296まで使えるようにしといた方が良い。
741 :
740 :04/02/18 14:51 ID:???
ERROR 1062: Duplicate entry '32767' for key 1 だそうだ。型は見ての通り「符号ありのSMALLINT」 勿論エラーでテーブルに反映はされない。
>> 741 4.0,4.1のtinyintで試してみたが、エラーにはならんかった。 つまりどんどんデータをINSERTできた。 AUTO_INCREMENTをつけたカラムの数値は126,127,127,.... と127(tinyintの正の上限)でどんどんデータがはいった。 4.1だとWARNING:1263 Data truncated, out of range for column 'i' at row 1 create table test (i tinyint auto_increment ,j int, index(i)) でテーブル作ったから、インデックス指定したカラムiに同じ数値127がいくつも入るのは解せんが。
743 :
742 :04/02/18 18:41 ID:???
> create table test (i tinyint auto_increment ,j int, index(i)) >でテーブル作ったから、インデックス指定したカラムiに同じ数値127がいくつも入るのは解せんが。 自己フォロー。 インデックスだからいいだよね。UNIQUEでもPRIMARYKEYでもないし。
744 :
741 :04/02/18 20:32 ID:???
ごめん。いつもの癖で主キーにしてた。
745 :
NAME IS NULL :04/02/18 23:14 ID:Qz2KSSIs
WHEREの後にLIMITするのではなく、 LIMITした後にWHEREで絞ることは可能ですか?
747 :
745 :04/02/19 03:14 ID:???
>>746 そうですか、どもども。じゃあやっぱりPostgresにするかぁ・・・。
>>747 4.1ならサブクエリ使える。
4.0, 3.23でもテンポラリーテーブルうまく使ってJOINすれば可能。
749 :
NAME IS NULL :04/02/19 20:53 ID:taQM15Qp
<?xml version="1.0" encoding="UTF-8"?> <element>あ〜〜〜</element> というようなXMLを一つのカラムに格納してるのですが、 取り出すと"〜"の文字が化けてしまいます。 これ以外の日本語は化けません。 何故でしょうか?
データベースのキャラクタセットは? mysqlクライアントのキャラクタセットは? どうやってINSERTしてんの?LOAD DATA INFILEならファイルの文字コードは?
>>749 そのカラム、binaryにしてみる(とか)
752 :
NAME IS NULL :04/02/20 07:59 ID:LVed7qy0
自分の個人サイトを、PostgresからMySQLに全部入れ換えることにしました。 (理由は、仕事でMySQLを使うことになったので、自習用に) そこで、こういう場合、どういう手順で作業をするのが安全でラクなのでしょうか? なお、途中でアクセスできない時間が長くても、かまいません。 どなたか教えていただければ幸いです。
753 :
NAME IS NULL :04/02/20 10:59 ID:klLy8DTO
RDB初心者なので、考え方がおかしいかもしれませんが、ご容赦下さい。 レプリケーションを使用したいのですが、下記のような事は可能でしょうか? マスター複数にスレーブ複数の構成で、PC1とPC2はそれぞれがマスターであり スレーブである。そして、PC1が変更になった場合すべてのDBとテーブルがPC2に 反映されるが、PC2が変更になった場合は一部のDBの一部のテーブルのみがPC1に 反映される。 マスターの権限の設定で出来そうな気がするのですが、如何でしょうか?
754 :
753 :04/02/20 11:06 ID:???
あ、その前に、一つのスレーブに複数のマスターという構成は可能でしょうか?
>>753 マルチマスタレプリケーション で検索してみるとか。
トランザクションの制御が難しいからなかなか簡単にはできませんよ。
>>752 確実なのは、スクリプトでデータを抜き出して
SQL文(主にINSERT)を吐き出すものを作る
LOAD DATA INFILEがうまくいきません。 LOCALを入れてもダメです。 local-infile=1の記述をmy.cnfに入れてもダメです。 何かご存知の方いらっしゃっいましたらご教授願います。
758 :
753 :04/02/20 13:07 ID:???
>>755 >マルチマスタレプリケーション
そんな用語があったんですね。
ありがとうございます。調べてみます。
759 :
753 :04/02/20 13:38 ID:???
マルチマスタレプリケーションはMySQLでは出来ないっぽいですね。
>>757 MySQLはPostgreSQLと違って、そこそこまともなエラーメッセージが返るんだから、
まずエラーメッセージくらいコピペしろ。
761 :
NAME IS NULL :04/02/23 22:53 ID:Hv9kpKUo
mysql 4.0.16でルートのほかにユーザーを作ってアクセス可能にしようと grantやmysql control centerでいろいろいじってみたのですがaccess denied になってしまいます。で、あるときmysql control centerでルートのパスワード が何故か16進数になっているのに気づきました。最初はちゃんと読める文字だった のがいつの間にか16進になっていました。しかしその状態でアクセスすると成功 します。これはどういう経緯でこうなったのか、どなたか心当たりのある方 いらっしゃいませんでしょうか?
>761 OSとかなによ
763 :
NAME IS NULL :04/02/24 17:03 ID:JjoMv34y
ORACLEからの移行って現実的じゃないですよね?設計思想が違いすぎるし。 更新系だし。
WAL見たいなログ取る機能ってありましたっけ?
読み取り一貫性の機能って無いですよね? ロック機能で補ってるの?
Mysqlccをつかっているのですが、テーブルのエンコーディングがujisのばあい、 MysqlccのクライアントをWinで動かすと化けますね。 Mysqlccでテーブルのエンコーディングを正しく表示させるにはどうしたらいいでしょうか
質問です。
このサイトを参考にさせて頂いてるのですが、
ttp://homepage1.nifty.com/gak/webdb/mysql.html こういうエラーが出てしまいます。
ERROR 1064: You have an error in your SQL syntax near '@ (id, name, birthday, me
mo)
values
(852101,
"宇多田 ヒカル",
' at line 2
なぜINSERT出来ないのでしょうか?
@ が含まれてるから。
768に補足するとSJISの全角スペースには、〜
>>769 やった。出来た!
2日ぐらい悩んでました。ありがとうございました。
↑ 関係者
773 :
771 :04/02/26 02:43 ID:???
↑ ハズレ。 LAMPが構築できないよママンって感じのに 悩まされているところの関係者。
selectに関する質問です。 例えば、テーブルABCに、フィールド名としてID,A,B,C,D,E,F,Gとあり、 各フィールドは、IDは通し番号で、他は0か1のみをIntとして保存しています。 テーブルDEFには、同じフィールド名があり、そこにはFloatで違う数値を 保存しています。表にすると下になります Table ABC +----+-------+-----+-----+-----+-----+-----+-----+-----+-----+ | id | pcode | 16A | 16B | 20A | 20B | 25A | 25B | 30A | 30B | +----+-------+-----+-----+-----+-----+-----+-----+-----+-----+ | 1 | 3100 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | +----+-------+-----+-----+-----+-----+-----+-----+-----+-----+ Table DEF +------+-------+------+------+------+------+------+------+------+------+ | trid | pcode | 16A | 16B | 20A | 20B | 25A | 25B | 30A | 30B | +------+-------+------+------+-------+----------+--------+--------+----- | 1 | 3100 | 1.00 | 0.00 | 2.00 | 0.00 | 2.50 | 0.00 | 3.00 | 0.00 | +------+-------+------+------+------+------+------+------+------+------+ ABC上で値が1の部分(IDを除く)項目のみをDEFから取り出すには、 どのようなSELECT文で書けば良いのでしょうか?色々見たのですが、 今ひとつうまくいかなく、どなたかご教授下さい。お願いします。
>773 レベルが低い関係者だな。とてもシステム構築など無理。
>>774 まずテーブルの設計から見直してみては?
>>774 サブクエリー。
でもMySQLはサブクエリーサポートしていないので、
778 :
NAME IS NULL :04/02/26 14:41 ID:TSOd2EjR
>>761 UPDATE mysql.user set password = password('hoge');
779 :
771 :04/02/26 17:07 ID:???
>>775 「システム構築など無理」は正解。
同じ環境をいちいち用意してテストできないので当たり前だ。
正直、ユーザ(相当)から金貰ってるわけでもないので、
アプリ開発者としてはインフラまで世話する気がないだけだが?
自分の環境とは違う、まして使ったこともないパッケージを、
作ってメンテナンスするって労力じゃないのか?
だったら他にも日本語対応させた色んなパッケージを
無償配布&メンテナンスしてるところある筈だろ、教えてくれ。
誰が作ったか判らん無保証で構わん、悪いが対価は払えんので。
つーか、客観的には喪前の"関係者"←"softagencyの関係者"
つうのが思考を狭めてる要因だと思う。あと"関係者"→"生業としてる人"でもない。
780 :
NAME IS NULL :04/02/26 17:30 ID:YtRubcux
Win版MySQL-4.0.18を入れてみました。 "mysql-max.exe" と、"mysql-max-nt.exe"は、どう違うんでしょう? "mysql-max-nt"でググっても、日本語ページ検索ではほとんど情報がありません。
>>780 "max"の付いていない、mysqld.exeとmysqld-nt.exeの違いについて調べると良い。
mysql.exe(クライアント)とmysqld.exe(サーバ)の違いにも留意。
簡単にいうと、
無印: 95/98/ME向け。デバックコードも含んでいるためサイズが大きく、動作は若干遅い。
opt: 95/98/ME向け。デバックコードは含まないため、無印よりも動作は速い。
max: optをInnoDB(トランザクションサポート)を付加してビルド
nt: optをNT/2000/XP向けに最適化してビルド
(NTサービスとして起動、名前付きパイプの使用)
なので、通常はOSが95/98/MEなら"max"、
NT/2000/XPなら"max-nt"という選択で構いません。
782 :
781 :04/02/26 18:45 ID:???
うーん、今の無印やoptにもInnoDBは付加されてるから、maxの説明がおかしいな。 「BerkeleyDB(トランザクション)が付加」ぐらいか。余り差異がないね。
783 :
NAME IS NULL :04/02/26 20:13 ID:YtRubcux
>>781 禿しくサンクスコ(・∀・)
とりあえず、max-ntをインスコして、InnoDBでトランザクション使えることを確認できますた。
これより修行開始です。
>>771 =779
> レベルが低い関係者だな。とてもシステム構築など無理。
こんな一文にこんなに反応するってのは、関係者臭がプンプンするな(w
>> 自分の環境とは違う、まして使ったこともないパッケージを、 >> 作ってメンテナンスするって労力じゃないのか? LAMPのなかで自分の使ったことないパッケージって何? Linuxインストールできないの?apacheインストールできないの? MySQLインストールできないの?PHPインストールできないの? そんなんで何を作ろうとしてるの(w
>>785 LAMPを構成するプロダクト群がパッケージとな?
パッケージはそのプロダクトを配布する形態だな
別に何の関係者でもいいんでねぇの
いや、祭を期待したんだが。燃料が不足だ。
788 :
NAME IS NULL :04/02/26 22:39 ID:V0krL/8h
MySQLの関係者って言ったって今はsoftagencyだけじゃないでしょ
789 :
771 :04/02/26 23:19 ID:???
>>775 rpm(srpm)とか、debとか、portageとか、slpとか、pkgとか。
tarballも入れる?
790 :
771 :04/02/26 23:23 ID:???
ごめん。同じ人かも知れないけど、
>>785 の間違い
質問ですが、MySQL4でCHECK制約は設定できるのでしょうか。 ドキュメントをみるとできるとなっているのですが、 create table tbl1 (no int, data int check(data > 0))TYPE=InnoDB; create table tbl2 (no int, data int , check(data > 0))TYPE=InnoDB; どちらもテーブルはできるのですが、checkは無視されています。設定方法が悪いのでしょうか? mysql> show create table tbl1; | tbl1 | CREATE TABLE `tbl1` ( `no` int(11) default NULL, `data` int(11) default NULL ) TYPE=InnoDB DEFAULT CHARSET=ujis | 1 row in set (0.11 sec) mysql> show create table tbl2; | tbl2 | CREATE TABLE `tbl2` ( `no` int(11) default NULL, `data` int(11) default NULL ) TYPE=InnoDB DEFAULT CHARSET=ujis | 1 row in set (0.00 sec)
MySQLでは、英文文字列の全文インデックスをサポート していますが、検索速度は、シーケンシャルな検索に較べ てどの程度(大雑把で)早くなるのか教えていただけない でしょうか? 自分で調べろ、と言われそうですが、私のレベルですと 調査するのに数日が潰れそうなので、情報をいただけると 助かります。
>>792 >全文インデックス
次のような検索のことです:
select フィールド名 from テーブル名 where match (フィールド名) against ('検索語');
794 :
NAME IS NULL :04/02/28 12:23 ID:qIsU3aqc
MySQL+Apache(mod_perl)でサーバ組んでいるんですが、たまに以下の エラーが出てしまいます。 Lost connection to MySQL server during query でも、再度アクセスすると普通に出来てしまいます。しかもずっと出るわ けでなく、忘れた頃にやってくる感じでまったく原因がわかりません。 ネットでも調べてみましたが原因も解決策も良くわかりません。 このエラーの回避法などありますでしょうか?
>>792 10万レコードぐらいのテーブルをlikeによる中間一致検索で2秒ぐらい
掛かっていたのが、0.5秒ぐらいになりますた。
796 :
NAME IS NULL :04/02/28 20:39 ID:0OBasi6A
postgresやOracleをちょっといじったことがあるだけなのですが。。 unionがmysqlにはないそうですが、 その変わりにはどういうSQLを書けばいいのでしょうか? たとえば 「select * from foo union select * from bar」 と同じことをする場合にはどうかけばいいのでしょうか?
797 :
NAME IS NULL :04/02/28 20:43 ID:ZeTJcTuF
>>796 当然マニュアル読んで唐の質問なんだろうな
>>794 貴重な情報をありがとうございます。全文インデックスは、
like に比べて4倍程度の速さがでる、ということですね。
私の場合、レコード数が10万から120万程度です。全文イン
デックスをかけるフィールどの文字数は、平均で60文字程度です。
フィールドの文字数によっても、検索速度は変ると思います。
今週、時間が取れたらば、自分で試してみて、結果をご報告
いたします。
クライアントに結果を返すときにPostgreSQLみたいに自動的に文字コードを 変換することってできますか? SJISで格納されているデータをEUCで読み取りたいのですが。
>>799 クライアントで変換くらいすればいいのに
801 :
799 :04/02/29 14:02 ID:???
>>800 それはつまり「MySQLではできない」という意味と捉えていいでしょうか。
>>799 MySQL単体では無理。文字コードの変換は他の(PHP,Perl,JAVAなどの)言語でやる仕事。
803 :
799 :04/02/29 15:06 ID:???
>>802 わかりました。どうもありがとうございました。
便乗質問。ソフトバンクの実践MySQL4という本では、 4.1からconvert(expr USING coding_name)でキャラクタコードcoding_nameで表示できるとな\ ってますが、 私の環境では、sjisで入れたデータをeuc端末で表示しようとconvert(hogehoe USING 'ujis'\ )してもダメでした。 皆さんは使えてますか?
805 :
アキ :04/03/01 17:11 ID:XoJMlHgP
mysqlでtimestampから30日経ったものを書き出したいのですが 下記の書き方だと1日以上経ったものは全て出てしまいます。 なにか良い方法はあるでしょうか? SELECT * FROM table WHERE (TO_DAYS(NOW())-TO_DAYS(timestamp)) よろしくお願いします。
SELECT * FROM table WHERE (TO_DAYS(NOW())-TO_DAYS(timestamp)) > 30
807 :
アキ :04/03/01 18:07 ID:XoJMlHgP
>>806 どうもありがとうございました!できました。
808 :
NAME IS NULL :04/03/01 18:54 ID:8iwloKkC
>>804 EUC-JP→SJISはいけたけど?
CONVERT( column USING sjis ) // コード指定のクォート要るの?
この機能、新しいlibmysqlでやってると思うので、その辺の違いはどう?
810 :
.Net初心者 :04/03/02 18:04 ID:OxutOzPu
MySQLを.Netで使おうとしています。 SQL文がよくわからないので教えていただいたいのですが。 SELECT * FROM table Where name = xxxx このxxxxの部分をパラメータで与えたものにする場合はどう指定したらよいでしょうか? (name = ? ではうまくいかないんです・・・)
MySQLかどうかに関係ないので、もっと適した場所を探してくれ。
812 :
NAME IS NULL :04/03/02 18:29 ID:ogpfvdhJ
SQLを最近勉強し始めたのですが、分からないことがありますので どうか教えて下さい。 +-------+--------+-------+------+ | name | kokugo | sansu | eigo | +-------+--------+-------+------+ | Aさん | 70 | 90 | 60 | | Bさん | 50 | 70 | 90 | | Cさん | 40 | 45 | 100 | +-------+--------+-------+------+ っていうのを作っておいて、70点以上を合格として、その人の名前 合格科目の点数を出すようにしたいのですができるのでしょうか? 例えば、Aさんの場合だと +-------+--------+-------+ | Aさん | 70 | 90 | +-------+--------+-------+ Cさんの場合だと +-------+--------+ | Cさん | 100| +-------+--------+ みたいな感じです。どのようにSQL文を書けば良いのでしょうか? 宜しくお願いします。
>>812 フィールド数を行ごとに可変長にするようなSQLは書けませぬ。
何らかのスクリプト言語を組み合わせて考えましょう。
なので、どこか違うところへどうぞ。
ってかテーブルの設計が甘いよね
815 :
812 :04/03/02 20:13 ID:???
>>813 レスありがとん。
JSP+MySQLで何とかやりますた。
816 :
NAME IS NULL :04/03/02 20:29 ID:LJPzxaWB
SELECT MAX(t_date) 〜〜〜 t_dateはDATETIME型で この記述を以下のようにしました。 COALESCE(MAX(t_date), NOW()) これはt_dateの最大値が取得できなかった場合(nullの時) 現在日時を取得するためです。 ただ取得はできているんですが、文字列に自動変換してしまうようで、 DATETIME型のままで取得するにはどうしたらよいでしょう。 MySQL最新版です。
キャラクターセットについて質問です。 3.23.58で複数のキャラクターセットを使うにはどうすればいいのでしょうか。 具体的にはsjisのデータベースとujisのデータベースを作ったり、 sjisのテーブルとujisのテーブルを混在させたいのですが。 4.0ならテーブル毎にキャラクターセットが設定できるようですが、 3.23だとどうすればいいのでしょうか。
>>817 単なるバイナリー列として扱う。
つか、元々ない機能を使おうと思ってるんだから頭使え。
googleはmysql使ってるの? 他に大きいサイトでmysql使ってるとこある?
>>819 米Ya!,Google,楽天。比率とか使ってる用途とかのソースは自分で探せ。
821 :
NAME IS NULL :04/03/03 09:01 ID:M5PAostn
MySQLで、作成したユーザで接続できません。 ### MySQLユーザを作成 $ mysql -u root -p Password: **** mysql> create database sample; mysql> grant all on sample.* to user1 identified by 'pw1'; mysql> quit ### 作成したユーザで接続 $ mysql -u user1 -p Password: *** ERROR 1045: Access denied for user: 'user1@localhost' (Using password: YES) パスワードは間違ってないのに。なんで?
>>821 GRANTした後、FLUSH PRIVILEGESした?
>>mysql> grant all on sample.* to user1 identified by 'pw1'; どこのクライアントから接続してるかわからんが、これがあやすぃ サーバが動いてるマシンからの接続だったら grant all on sample.* to user1@localhost identified by 'pw1'; をすれば解決するかも
824 :
age :04/03/03 11:15 ID:???
別のホストコンピューターへmysqlサーバーをミラーリングして 負担分散させたいのですが どうすればよいでしょうか?
826 :
NAME IS NULL :04/03/03 12:50 ID:dx1tL/i4
凄く初歩的な質問なんですが、 PHPでmysql_connect()で接続したコネクションを プログラム内で明示的にmysql_close()していない場合は、 コネクションがタイムアウトするまで残る物だと考えていいですよね。
いいえ
828 :
826 :04/03/03 13:53 ID:???
すみません。mysql_pconnect()でした。
mysql_pconnection()をページごと使ってると、
セッションはタイムアウトまで増え続けますよね。
>>827 さん
mysql_connect()はスクリプト実行完了後に閉じられるみたいですね。
>>826 >コネクションがタイムアウトするまで残る物だと考えていいですよね
いいえ。
この仕組みはPHPの範疇のことなので、
一度PHPのマニュアルの[第21章 持続的データベース接続]や
持続的リソース(persistent resource)について勉強してみてください。
あとWebアプリケーションの場合、コネクションやセッションは複数箇所で複数種張られますし、
それ故タイムアウトも同様に複数存在します。その言葉の指すものを正確に説明しないと
文意が定まらないので注意してください。
(一応 MySQLへのPHPからpconnectで張った接続についてと理解しました)
>>823 ありがとう。それが正解でした。
そうか、ホスト名も必要なのね。勉強になりました。
831 :
NAME IS NULL :04/03/03 16:44 ID:On/smcL1
MYSQLで 列名 LIKE %ン% とした場合列名にソが含まれるもののみを結果としてかえすと思うのですが、 「フ」と「ン」を同一のものと認識しているのか、 「ン」が含まれていなくても「フ」が含まれていると 結果としてかえってきます。 「ロ」と「レ」の場合も同様です。 正常な結果を返すにはどうしたらよいのでしょうか? どなたかご教授ください。
>>830 多分まだちょっと誤解してると思う。
手短にうまく説明できないのでマニュアルを読んでくれ。
833 :
826 :04/03/03 16:48 ID:???
>>829 ありがとうございました。
マニュアルを読みましたが、今ひとつ納得できないので、
PHPスレに行きます。
834 :
829 :04/03/03 16:56 ID:???
追加すると、
>>826 はPHPとMySQLの関係というより
PHPとWebサーバの関係ということが理解できるまで、
pconnectは使わない方が良いです。動作が変になったりしてハマるから。
836 :
NAME IS NULL :04/03/03 18:23 ID:On/smcL1
>>835 お返事ありがとうございます。
SELECT * FROM テーブル WHERE 列名 LIKE '%フ%'
こんな感じのSQLでphpMyAdminから実行しているのですが、
文字コードを適正とは?
DBはEUCで作ってます。
すでにンとソを混同している
>>836 じゃあ、MySQLにSQLで
→SHOW VARIABLESしてcharacter_setの項の値をコピペ
→MySQL4.1以上なら SHOW CREATE DATABASE dbname して
DEFAULT CHARACTER SETの値もコピペしてみ。
phpMyAdmin、つまりPHPのinternal_encodingがEUC-JPになっているかとか、
ブラウザからの入力→internal_encodingの変換がきちんと行われているのかは、
このスレの範疇じゃない(アプリの使い方の話)ので、確認の仕方はどっかで探して
実行したのをコピペ。
多分、確認したのを突合せてみれば、自分でも何処がおかしいか判るよ。
みんなわりと新しいの使ってるのね。 業務関係で 3.23.x を使い続けてるから、何か乗り遅れてる気がするなあ。 でもさすがに 4.1.x までは行きたくないな、まだ。
うちも3.23だよ。業務だしね。 myisam速くてさいこー
841 :
NAME IS NULL :04/03/04 08:47 ID:31Hmzdfi
MyISAMだと更新時はテーブルロックかかるから業務上更新系ではまずいこと 起こらない?
842 :
NAME IS NULL :04/03/04 09:05 ID:Wo5Jo0hK
テーブルロックで泣きみますた。 更新処理が多い業務系じゃ実用に成らん。 参照中心の情報提供系には、確かに爆速だけどね。
>>839 俺の環境だとなぜか3.x系はデータ量が増えると激重になるから
4.0系使ってる。
4.1は流石にまだ手が出ない。
844 :
796 :04/03/04 18:20 ID:hKn5SR09
>>797 亀レスですみません。
マニュアルはひととおりみたつもりなのですが・・・
あと、技術評論社のSQLポケットリファレンス(改訂新版。DB別に使えるコマンドがわかる)を
持ってるくらいなのですが、
足りないでしょうか?
3と4って速さ劇的に違う?
俺の環境(セレ1.7G,512MB RAM,Redhat7.2)ではJoinしまくると、 3系より4系の方が圧倒的に早くなった。 てゆーか3系がパフォ落ちすぎだった。
848 :
836 :04/03/05 11:19 ID:KP5OTsCY
>>838 お返事遅れました。返信ありがとうございます。
上記で質問したカタカナの誤判定に関しましては、
表示形式をBINARYとすることで解決したしました。
しかし、それとは別に先に記述したSQLで 『横』を検索すると
全角の『123』も結果として返ってきてしまいます。
原因として、EUCでは
横の文字コードは B2 A3 で
123の文字コードは A3 B1 A3 B2 A3 B3
とB2 A3の部分が同じためLIKE演算子を用いた場合結果として
返ってくるようなのですが、これを回避する方法は何かありませんでしょうか?
SHOW VARIABLES の結果
character_set は latin1 でした。
>>848 >SHOW VARIABLES の結果
>character_set は latin1 でした。
だからさ、まずはこれをちゃんと正しく設定しなよ。
850 :
848 :04/03/05 18:49 ID:KP5OTsCY
>>849 ujis への変更を行いましたが、
『横』検索で『123』が結果として
返ってくる結果はかわりませんでした。
MYSQLでは制御できないのでしょうか。
851 :
NAME IS NULL :04/03/05 19:34 ID:SMQByFh9
MySQLの文字コードって一般的にはEUC-JPなんでしょうか? 検索してもほとんどEUC-JPしか出てこないので。 Shift-JIS にすると何かデメリットあるでしょうか?
>>851 LAMP系を気取る香具師に「だっせー」と言われる
853 :
NAME IS NULL :04/03/05 20:41 ID:5IKhdMZ0
レンタルサーバ(ロリポップ)にMySQLをアップしたいんですけど、 やり方が書いてないんです。 どうやってアップすればいいのでしょうか?
>>853 それはCDに焼いて炉理ポップにインストールしてもらうしかない
郵送先はHPで自分で調べろ
856 :
796 :04/03/05 21:07 ID:ZlDYLo/B
>>845 すいません、みてたマニュアルがバージョン3のものだったみたいです。
ポインタ先のマニュアルには、
「UNION is implemented in MySQL 4.0.0. 」とあるので、MySQL4から可能ということですよね?
ということは、
バージョン3の場合、同じことをするには別の方法をしなければならないのでしょうか?
MySQL のマニュアルを漁ってもそれっぽいのが見つからなかったのですが、 PostgreSQL の配列(になってる列)みたいなものは MySQL には用意されてないのでしょうか。 何か違う方法を取らないといけないのでしょうか…。
>>850 本当に'ujis'に変更されてることを再表示して確認した?
rebootを忘れてない?
他は該当フィールド作成時にBINARY属性を付けてないか。
クエリを間違えて LIKE BINARY '%横%'のままにしてないか。
>>851 特に無いが、PHPスクリプトから利用する場合は
内部エンコーディングと合わせておいた方が変換がいらないので楽、
そして多くの場合、内部エンコーディングがEUC-JPのため。
最近はその辺全部UTF-8に統一することが多い>自分
常用するクライアントツールがSJIS/EUC-JP/UTF-8の
どれに対応してるかしてないかにも依存はすると思うよ>メリットデメリット
>>856 だから、User Comments嫁。
860 :
NAME IS NULL :04/03/05 22:15 ID:SyhNsF95
__ __ __ __ ___ __ __ ∠__∠__∠__∠_.∠_../ | __∠__∠__∠l__ ∠__∠__∠__∠__∠__/| | ∠__∠__∠__∠__/.|_ . ∠__∠__∠__∠_.∠_./| |/| ∠__∠__∠__/ /| |/| . / / ./ / / /! |/| | | / / /| ̄ ̄| |/| | | ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |/ |/| |_| ̄ ̄| ̄ ̄| |__|/| |/| __ _| |__|__|__|__|/| ̄ ̄| | ∠__|__|__l/ /| |/| | . / / | ̄ ̄| |.\/\/\. | | |__|/| | | | | ̄ ̄| |/| |/ | ̄ ̄| ̄ .| |/| ̄|\/\/ .|__|/| | | |__|__|__|__|/| |/| . ___|__|__.| ̄ ̄| |_|/\/ | | |__|/ | | | | | |/| | . / / / | |/|. |__|/| .|__|__|__|__|/| |/ | ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |. | | | .|_| | | |__|/ |__|__|__|__|/ |__|/ |__|__|/
861 :
NAME IS NULL :04/03/05 22:51 ID:DQKKrCoW
「LAMP系を気取る香具師」てどんな香具師? 漏れもLAMPエバンジェリストなんだが。
>>861 Unix系はEUC、WindowsはSJISと思い込んでる香具師じゃないの。
LinuxでもEUCという固定観念は古すぎだし、Unix系とひとくくりに
EUCと思い込む知らなさ過ぎ度を添加すると"気取る"含みがもたらされる。
863 :
NAME IS NULL :04/03/06 00:37 ID:cP0ARCYE
864 :
NAME IS NULL :04/03/06 08:42 ID:cDrzjSfc
# /からmysql.server start しても起動せんので cd /usr/local/share/mysqlとデレクトリーを変更して # mysql.server start しても起動しないのはなんでだろう? -bash: mysql.server: command not found だってさありえん、なんでだろう♪
ネタは勘弁
866 :
NAME IS NULL :04/03/06 09:54 ID:cDrzjSfc
>>865 ネタではない罠
# find / -name mysql.server
/usr/local/share/mysql/mysql.server
外からだとパス通してないんで無理だと思い
デレクトリー変更して逝ってみたんだが、
mysql.serverが見当たらんってのはおかしいと思うのは
洩れだけか??
パスにカレントディレクトリ”.”が含まれてなかった、ってオチ? まさかね? cdしてから./mysql.server startとか?
868 :
NAME IS NULL :04/03/06 10:18 ID:cDrzjSfc
>>867 スマン君の指摘とおりですた./mysql.server startとしたら
Mysql走りマスタ
まぁその前に
/etc/rc.local編集してマシンの起動時にMysql走らせるようにシマスタが
しょうもないおちですまんかった、逝ってきます
>>867 どもありがと
ネタじゃなかったのか・・・ on_
MySQL5.0まだぁ〜?
872 :
NAME IS NULL :04/03/07 08:05 ID:JFr1oAkQ
MySQL5はまだまだで良いが、MySQL4.1を早く安定させて、 結果多くのホスティングサービスで入れ替えが行われることを希望
874 :
教えてくん第536875号 :04/03/08 00:54 ID:z/w72B5N
教えてくんです。 教えるくんがいたら教えてください。 1).NET ASP(C#)でMySQL4.1とADOにByteFX MySQLClient0.75を試してます。Connectionオブジェクトcnを作った後、cn.Open()で「無効なP/Invokeです」となり、接続を嫌がられます。 なぜなのでしょうか。 2)また、SevenObjectsのMySqlClientを使った場合、接続オブジェクトcnを作って接続はできるのですが、 cn.CreateCommand()で「Not Implemented」と言われます。これは本当に未実装なのでしょうか。 (ついでに、このCreateCommand()の結果をMySqlCommand型変数に入れようとすると 「型が一致しない」系のエラーを生じます。キャストしたら「Not Implement」ですになります) Nativeのプロバイダを使おうとすると、こんな感じでつながらないか、クエリを実行できないかの どちらかになります。 素直にODBCを使えということでしょうかね・・・はぁ
ピーク時に常時200コネ以上接続がある状態で、 OSのload averageが50以上になり困っています。 max_connectionが200でtable_cacheが400で、 CPUペン4の3G、メモリ1Gです。 max_connectionがオーバーすると接続できないエラーが返ってきてます。 このとき、OS、DB、ハードそれぞれどこを弄れば解決するでしょうか?
877 :
875 :04/03/08 18:19 ID:???
>>876 これはMySQLの範疇を超えていると判断しろということですか?
大体MySQLではどのあたりまでのConnectionなら耐えられるものなのですか?
878 :
NAME IS NULL :04/03/08 18:41 ID:1Yv+JpU/
>>875 アプリ側で、コネクションプーリングとか使ってないのか?
コネクションが常時 200 も張られてるって、
普通に考えられるシステムならオカシイと思うんだが。
>>878 の言う通り、コネクションプーリングしる。
やっててそれなら、もう MySQL の範疇を越えてるとしか……(;´Д`)
880 :
875 :04/03/08 19:29 ID:???
>>878-879 WEB側はPHPなんですが、全て通常接続でした。
持続型接続の上限を設けて、持続型接続で接続するよう、
プログラムを書き直してみて、ピークに備えてみます。
ありがとうございました。
PHPってコネクションプーリングサポートしてないだっけ・・・ ぬるぽ
883 :
NAME IS NULL :04/03/08 22:13 ID:zHwlqeU6
∩___∩ | ノ ヽ/⌒) <ぬるぽ〜〜〜〜 /⌒) (゚) (゚) | .| / / ( _●_) ミ/ ∩―−、 .( ヽ |∪| / / (゚) 、_ `ヽ \ ヽノ / / ( ● (゚) |つ / / | /(入__ノ ミ <ぬるぽ〜〜〜〜 | / 、 (_/ ノ | /\ \ \___ ノ゙ ─ー | / ) ) \ _ ∪ ( \ \ \ \_)
ODBC経由で接続可能? それとM$SQLのストアドに相当するものある?
>>881 PHP(多分PerlにもRubyにも)にはコネクションプーリングはない。
持続リソースを使った持続的接続(Persistent Cconnection)はあるけど。
もともとAP鯖やDBMSに依存する話だし、それをPHPに持たせよう
と思ったら、どうやってリソースを維持していくか…
MySQL用のプーリングサーバ欲しいね。
(Postgresでは誰か実験的にやってた気がした)
886 :
885 :04/03/09 01:24 ID:???
ロードアベレージ50ってのはすごいなぁ とりあえず、レプリケーションして負荷分散とか いろんな手はあると思う。 php側で接続するサーバをランダムとかで変えてやればいいだけ。 pconnectは試したことあるけど、テーブルロックしたスレッドが 残ったままになって、止まっちゃったりしたことあって、使うのやめた。
>887 MySQLだけだったら、まだ分散処理までできないんだっけ? 双方向もできるようになってた?
889 :
880 :04/03/09 19:48 ID:???
駄目でした。 確かに処理は早くなってるのですが、 connection数の増加は変わらず、 軽々maxに達しました。 接続が残るだけあって、 load_averageの上がり方も変更前より激しいものがありました。 結局、connectionの上限に達し、load_averageもいつもの50になりました。 分散処理はユーザーの予算上無理だそうです。 もう、PHP+MySQLでは限界ですか? JSPにすれば少しは解決できますかね…。
それ、プーリングできてないと思うんだけど……。 pconnect 使うだけだと持続的接続しかしてくれないよ?
891 :
880 :04/03/09 20:11 ID:???
>>890 PHPでプールはできないので、
持続的接続にしたのですが、駄目でした。
返せば、PHPでは無理だということですか?
>>889 httpdとPHPの設定のすり合わせはやったのか?
そもそも肝心の構成は何よ、Zeus+PHP(FastCGI)とかか?
取り合えず両方のディレクティブ晒してみそ。
あと予算増やせず&JSPにすれば、むしろ悪化するな。
SQL Relay良さげだから、コネクションプールするだけなら使ってみな。
>>888 MySQLだけだと一方向です
複数のスレーブが1台のマスタを見に行く感じです。
マルチマスタやりたいですよ
だれか実践してる人いませんか??
894 :
880 :04/03/10 03:08 ID:???
>>892 Apache+PHP(DSO)です。
Apacheで
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 200
MaxRequestsPerChild 100
PHPで
mysql.allow_persistent On
mysql.max_persistent -1
mysql.max_links -1
です。
>>894 >MaxClients 200
>MaxRequestsPerChild 100
これだと単純に考えても同時に200クライアントから接続されたときに
別の200プロセス立ち上がって、全てが同等にMySQLに接続を持とうと思ったなら
(そういう設計なら)に、そのままMySQLに200接続要求しないか?
だからCONNECT→PCONNECTやMaxRequestsPerChildの値が意味ない。
MaxClients 150
MaxRequestsPerChild 0(=無限。本番は適度な大きさで実数を指定)
とかで、エラーはどうなる?
#正直200は多すぎ。キューに入れて待たせちまえ。
>max_connectionがオーバーすると接続できないエラーが返ってきてます。
これってどこの接続の話。httpd?、MySQL?
896 :
895 :04/03/10 07:01 ID:???
ごめん。max_connectionってるのでMySQLのコネクションね。 ところで逆にMaxClientsをそのくらい高く設定したい(前提/目標)として MySQLのmax_connectionはもっと大きく出来る余地はないのかな? ただね、そもそもMEM1Gでhttpd+PHP+DBMSなんでしょ。それでDBMSを使った コンテンツ配信だったら、精精MaxClients100ぐらいだと思うけど。 HTTPリクエスト中MySQLに接続する割合はどの程度あるの? 場合によっては非持続的接続の方が良いかもしんないよ。 (887氏の言うとおりロックが開放されないことも運が悪いとあるし) MySQLは接続コスト低いから、持続が良いかはMEMとCPUリソースの バランスで考えて。
>>897 ところどころ日本語の文字化けになるところとか、
IEだとレイアウトが変なところも残ってるみたいだけどね。
今のマニュアル(英語のも)、MyNAがベースにしてた頃の奴よりも
内容が減ってるような気がするんだけど気のせい?
ちょっと教えてください<(_ _)> 1000万件程度の売上データを格納して、データマイニングや 問い合わせに利用するつもりなのですが、 Win版のMySQLでも実用レベルで使えますか? Linux版がとても早いのは調べててわかったんですが、 Win版でもパフォーマンスが出るのかどうかがよくわかりません。 都合上Win2000上にて運用したいのです。 (CPUやメモリにはある程度コストがかかってもかまいません) 同じような環境でお使いの方や、そういった情報がわかるページを ご存知の方がいたらよろしくおねがいします。
>>900 あんたの言う「実用レベル」は、あんたにしか判断できないから、誰にも分からない。
あんたの作る「アプリケーション」は、あんたにしか分からないから、誰にも分からない。
903 :
901 :04/03/10 23:47 ID:???
ごめんなさい。 でました。
>>900 WINもLinuxもメモリを最低2G乗せて
ちゃんとチューンすればたいしてかわらんだろ。
OSなんでもメモリなきゃスピードがた落ち。
あと、Linuxで煩雑に書き込みするならext3の
ジャーナリングをwritebackにしないと実用にならない。
>>900 別にMySQLのWindows版も充分安定して動いてると思いますけどね。
OS共々サーバとして長期運用では使ってないけど、マイニングなどの
パーソナルな要件では問題ない。ただ個人的にはNTFSでもファイルシステムの
出来はあまり宜しくない気がする。でもこれは他のDBMS使おうがいっしょ。
事前に入手して試したりはOracleでもMySQLでも他のでも
無料で出来るんだから仕事ならやるべき。あとMySQLだって
別にオープンソースコミュニティの製品じゃなくて、MySQL ABという
会社の製品なんだから、直接会社に問い合わせすれば情報貰える。
(私は既に顧客だから窓口違うけど、営業窓口が使える筈)
日本の代理店がどの程度独自の情報持ってるかは知らんが、
代理店経由でも他のメーカと同程度の導入前の事前サービスは
普通に受けられると思う。
906 :
900 :04/03/11 10:39 ID:???
>>904 >>905 回答どうもありがとうございます。
代理店とか会社に問い合わせしようかと思ったのですが、
実際の利用者の生の声を聞いた方が実情がわかるかと思って
ここで聞いてみた次第です。
お二方の意見をうかがったところ、
きちんと運用すればWin版でも大丈夫そうですね。
どうもありがとうございました<(_ _)>
907 :
http://bulkfeeds.net/app/search2?q=mysql&sort=date :04/03/12 22:20 ID:3bJr9OvP
909 :
NAME IS NULL :04/03/14 17:14 ID:fdxvL1t2
PHP+MySQLの組み合わせで、商用Webを作成しても MySQLの商用ライセンスを購入しなくても良いと、聞いたことがあるような気がするのですが 本当でしょうか?
>>909 GPLライセンスつかえば有料ライセンスいらない
911 :
909 :04/03/14 17:42 ID:???
>>910 レスありがとうございます。
GPLライセンスを使うという事は、無料で利用でき、ソースコードを公開し、改変配布自由に
するという事ですよね?
そうではなくて、商用で(つまりWebを使用して頂く為には利用料が必要で)PHPの
ソースコードは非公開です。
この条件でも商用ライセンス不要だと聞いた気がします。
>>911 そのアプリケーションを他者に配布するか、自分が使用するか、の
違いじゃないの?
商用アプリケーションを「自分が使う(自分が設置して、利用者を募る)」のであれば、GPLで無問題。
でも、そのアプリケーションを「他者に配布する(他者に譲渡して、他者が設置する)」なら有問題。
913 :
909 :04/03/14 18:31 ID:???
>>912 なるほど。では私の場合は前者なので無料で組めます。
別のDBに移行する必要があるかもと不安だったので助かりました。
ありがとうございます。
それから後学のため次の場合はどうなるか教えて下さい。
譲渡ではなく、サーバ機器ごとレンタルする場合。
(つまり自社で客先にサーバを設置して、クライアントはそのサーバを管理して
エンドユーザーがWebを有料で利用するという案件の場合)
>>913 サーバ機器ごとシステムのレンタルは「配布」に相当すると考えられるので
クライアントに対してGPLに基づいてライセンスしないと駄目。
エンドユーザはアプリを操作する(出力/入力)だけなのでライセンスは関係ない。
MySQLの商用ライセンスなんて安いんだから、仕事で使うなら買った方が良い。
そもそも商用ライセンス分の費用が気になる程度の利益の案件は、最初から請け負っちゃ駄目。
貴方の人件費がいくらかしんないけど、それは"お金を稼ぐ"という点では成り立たないレベルの仕事よ。
仕事で使うなら買ったほうがいいっていうのもある意味事実だが、 実際のとこGPLで用が足りることがほとんどだからいらないのも事実。 GPLだと困るなら、Linuxベースで組んだシステムを外に出すことなど できなくなってしまう。 配布する場合はライセンス買わなきゃいけないってこともないよ。 ちゃんとGPL守れば。この仕事してるならGPLぐらい読もう。
>>915 オープンソースで無料配布ならGPLで良いんだよな。
ソース晒したくない場合はコマーシャルライセンスだよな。
要はただで運用したいヤツは、ソース晒す準備しとけってことでいいのかな。
>>916 自分のところのサーバー上での運用ならばGPLでいい。
ソースの公開も必要ない。
コマーシャルライセンスにしないといけないのは
MySQLそのものを売る場合に、MySQLに付随する
自作のソフトのソースを公開しない場合のみ。
918 :
NAME IS NULL :04/03/15 08:03 ID:Qj7JvU57
たとえば、CGI屋さんが、 (1)お客さんのサーバーに (2)MySQLのインストール/セットアップを行って (3)PerlなCGIを組んで、 納品する場合、 ソースはクライエントに公開してるんだから、GPLで良いのだ。 # ...で良いんだよね?
920 :
:04/03/15 09:20 ID:4Mo4OYhT
>>918 GPL なので、お客さんが CGI ソースを再配布したり改造できたりしちゃうけどね。
>>920 んん?
>>918 の言っているのは、あくまで MySQL をお客さんに GPL として配
布して良いかどうかであって、この場合の Perl な CGI のラインセンスがど
うであるかは関係ないんじゃないかな。
もちろん、この CGI を GPL として渡せば
>>920 の言うとおりだけど。
もっとも、
>>918 の場合は CGI をどういう形で渡すにせよ問題はないと思う
ですよ。とにかく、MySQL 自体に手さえ加えてなければ GPL で問題なしと。
GPLってMySQLのライセンスだよね。 ということは、既存のMySQLを立ててる客に、 CGIやPHPのスクリプトのみ配布する場合は、 MySQLのライセンスを意識しなくて良いということだよね。 では、MySQLをFTPからダウソし、インストールしてあげて、 一緒にスクリプトを導入する場合でも、 GPLで構わないってことで良い?
923 :
NAME IS NULL :04/03/15 10:25 ID:M95yj3XT
MySQL MLにも上がっていたが、GPLでないフリーソフトウェアライセンス
(どのライセンスに限るのかはリンク先参照)に限って、GPLでも商用でもない
第三のライセンス-FOSSライセンスができたみたい。
ただしコレはlibmysqlつまり、MySQLクライアントライブラリの話で
MySQLデータベース本体は従来どおり。
http://www.mysql.com/products/foss-exception.html つまり今まで現行のGPLのlibmysqlを使ってMySQLにアクセスする
PHPアプリケーションの場合は、GPLにすることが必要であったが
今回クライアントライブラリにFOSSのものを選択できるようになり、
これによってPHPアプリケーション自体には自由にライセンスを設定
できるようになる。BSDライセンスなクライアントソフトなんか作ってる人にも朗報。
MySQLデータベースの方は従来どおりなので、商用を選択するか、
GPLを選択するかのどちらか。
誰か表でも作って、これまでの話で出てきた「こういう場合はこのライセンス」というパターンを整理してくれ。 もちろん、その表のために使うテーブルは正規化してくれ。
925 :
920 :04/03/15 10:33 ID:4Mo4OYhT
>>921 ご注文 / MySQL ライセンス
http://www.softagency.co.jp/order/license.html > GPL の MySQL を使用する製品は、その製品を GPL にする(GPLに矛盾しないようにする)必要があります。
> GPL の MySQL や MySQL を使用した製品を売ろうとしているが、
> ソースの引渡し要求を拒否したい場合は GPL に適合しなくなります。
この「MySQL を使用」をどう解釈するかによって変わってくると思うんだけど、
単純に解釈すると、
「GPL ライセンスの MySQL」 を使ってる製品は GPLにしなければならない、ってことだよね?
だから Perl な CGI も GPL にしなければならないと考えた。
926 :
923 :04/03/15 10:47 ID:M95yj3XT
ついでに指摘しておくと
>>920 >Perl な CGI のラインセンスがどうであるかは関係ないんじゃないかな。
CGIは現行のGPLなライブラリを使っていれば、GPL以外は駄目。
>>922 >GPLってMySQLのライセンスだよね。
>ということは、既存のMySQLを立ててる客に、
>CGIやPHPのスクリプトのみ配布する場合は、
>MySQLのライセンスを意識しなくて良いということだよね。
MySQLデータベースの方は意識しなくてもよいが、MySQLクライアントライブラリのライセンスは意識する必要がある。
いままで問題になっていたのはMySQLデータベースがGPLだからというより
そのクライアントライブラリがGPLだから。PHPでmysqlの関数を使う前提で
書かれたプログラムは、このライブラリを使うということで、
ライブラリがGPLなら、PHPプログラムはGPLにしなくてはならなかった。
じゃあ今までみんなGPLにしてたか?そうではないでしょ。
実は今までPHPにバンドルされていたのは、かなり昔のクライアントライブラリで
GPLではなく、PDSとして公開されていたものをずっと使い続けてきた。
PHP5でそろそろ新しい現行のライブラリに入れ替えたい(古いのはMySQL4.1の
新機能が使えない)と考えたら、それはGPLしかなかったから問題が顕著になった。
# 多分PerlやRubyなどでもバンドルライブラリの話は一緒
今でもクライアントライブラリのライセンスは意識する必要はあって、
新しい"FOSSライセンス"または古い"PDS"のもの、それか商用ライセンスでなければ、
(つまるところ残るはGPLでライセンスされたライブラリな訳だが)
アプリケーションはGPLにする必要があるよ。
927 :
923 :04/03/15 10:56 ID:M95yj3XT
新設のFOSSライセンスじゃなくて、GPLライセンスのものにFOSSに対応した 例外条項を追加するみたいだね。GPLに例外条項を設定できたっけ? GPLではない例外をGPLに入れて、GPLと言えるの?という点。
>>926 > CGIは現行のGPLなライブラリを使っていれば、GPL以外は駄目。
おぉぅ。そっちの方をすっかり失念してましたよ。
山手線に飛び込んできます……
930 :
923 :04/03/15 16:19 ID:???
>>926 文章中ライブラリは以前はLGPLで...のくだりがあったんで、
ああ、LGPLだった時もあるのを忘れてた。こまかく覚えてないので
調べてみたが、MySQL3.23.19β(2000年)より本体がGPLで、libがLGPL。
ソースから確認したところ3.23.56まではLGPL、MySQL4.0.9gではlibもGPL
つまりMySQL3.23付属のがLGPLで、MySQL4.x付属のがGPLかな。
だから、このLGPLのライブラリをバンドルしてる言語もあるだろうね。
Debianは以下のポリシー
http://packages.debian.org/unstable/libs/libmysqlclient10.ja.html PHPの方はCVSの方確認してみたが
/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
This file is public domain and comes with NO WARRANTY of any kind */
だった。LGPLのじゃなくて、やはり古くても敢えてPublicDomainを選んでる感じ。
多分PHPグループのポリシーとして、LGPLものでもバンドルはしない
(BSDライセンスやApacheライセンスとかの、PHPライセンスと親和性の高い
ライセンスじゃないと駄目っぽい。PECLなど見てもそんな感じ)のだろう。
まあMySQLはライセンスが色々変わったり、範囲が解りにくいというのは言える。
件の改正も結構わかり難いままだと思う。ここは改善して欲しいな。
あとlibだけの安いコマーシャルライセンスの設定も。
931 :
930 :04/03/15 16:23 ID:???
>>929 の間違いだった。
CNETの記事は知らなかったんでサンキュー
MySQL5.0まだぁ?
933 :
NAME IS NULL :04/03/15 19:12 ID:9Pp1+SZn
FreeBSDでMySQL4.0なんですが、 SELECT part_tmpl_var_cd FROM part_tmpl_var_table WHERE part_tmpl_var_name IN ('path','home','hoge') のSQL文で、 これを、 part_tmpl_var_name の値がPATHやPathなどの大文字であっても一致する(selectされる)ようにするには、 どうSQL文を書き換えればいいのでしょうか?
いま一番安定していて新しいバージョンは、どのバージョンなのでしょうか?
935 :
933 :04/03/15 20:39 ID:???
すいません、自己解決しました。 LOWERというのをはじめて知りました。 SELECT part_tmpl_var_cd FROM part_tmpl_var_table WHERE LOWER(part_tmpl_var_name) IN ('path','home','hoge') でOK
>>934 MySQL4.0.18かな。MySQL4.1.1aも使ってるけど、
個人的には安定はしてると思うけど、新機能に関してはバグは多いみたいね。
どうしてこうもMySQLのページを読まない香具師ばかりなのだ? GPLの解釈については漏れの英語力もあやしいが、 「枯れたバージョン」については、見たままじゃないか…
mysql> desc table; +-----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+----------------+ | id | int(11) | | PRI | NULL | | | UserName | varchar(64) | | MUL | | | | GroupName | varchar(64) | | | | | +-----------+------------------+------+-----+---------+----------------+ こうやったときに、 Keyのカラムに MUL ってのがあるんですが、 これってどういう意味なんでしょうか?
939 :
NAME IS NULL :04/03/15 23:23 ID:cW3rjrDX
MUL
Multi User Lingaphone
MySQL4.0なんですけど カラム名にマルチバイト文字はいいんでしょうか? SQL文は発行できるんですけど、、正式なサポートはありますか? ちなみに、文字コードはEUCです
942 :
938 :04/03/16 11:32 ID:???
>>944 ハァ?
釣るなよ。
俺のはunique属性つけたらMULって出るし。
クライアントによって表示される文字が違うってか?
>>945 not null付けてないフィールドにuniqueインデックスを指定すると、desc tablename
で「Key」の欄がMULになるね。
not nullを付けてると、PRIかUNIになる。
948 :
947 :04/03/16 13:42 ID:???
>>947 は4.1.1-alphaで確認したので、他のバージョンでは違うかも。
>>947 ああ、NOT NULLか。それは忘れていた、スマソ
#そういやNOT NULLなんてしたことないなぁ・・
950 :
941 :04/03/16 13:59 ID:???
あの、僕は
952 :
941 :04/03/16 14:45 ID:???
ということは、正式にサポートしてないってことでいいんですね? いいんですね?
>>952 カラム名にマルチバイト文字を使おうと思ったことがありません
ですから調べたことがありません。
よって知りません。
>ということは、正式にサポートしてないってことでいいんですね?
>
>いいんですね?
ご自分でご判断ください。
954 :
941 :04/03/16 15:22 ID:???
使えね
955 :
NAME IS NULL :04/03/16 15:31 ID:q69hCdAh
RedHat7.3に、MySQL4.0.18をrpm -i mysql... でインストールしました。 で、どうすりゃいいの?
rpm -e mysql...
958 :
941 :04/03/16 15:48 ID:???
>>957 使える
何でもいいのか、thx。日本語にできてよかった
>>941 マルチバイトのカラム名とかは、バッククォートで括りゃ
確かに動作してるように見えるし、大方支障はないと思うけど
使ってるファイルシステムにも絡む部分だったり、よっぽどのことがない限り
余計な問題を避けるために最初から使わない。他のDBMSからの移行でも
DBMS変更にまつわる修正作業に含めちまって、変更するのが普通だぞ。
本などの例で日本語で記述してるのは、判りやすく説明するためで
別に著者も実際に日本語で書くのを薦めたりしちゃいないよ。
961 :
941 :04/03/16 21:50 ID:???
>>960 そうですか。
テスト成績を保存するDBを作ってるんですけど
DBのカラム名に教科名を日本語で入れたら楽なんだけどなぁ。。
今は、カラム名を英語で書いてます、Japanese,Math等。
そして、subjectと言うテーブルに
Japanese->国語
Math->数学
とやってるので、
2回テーブルからデータ取得しないといけないんで面倒なんですよね。。。
>>961 そういうときは迷わず日本語で書いた方がいい
多言語対応するつもりも無いだろうし
いまさら多バイト文字がダメンじゃ処理系なら
黒く塗りつぶせ
>>961 モデリングっていうか、カラムの構成が間違ってるような気がする…
>>963 ドウイ。
>>961 自分の分だけなのかクラス全員分なのか知らんけど、カラム名をsubjectにして
1人分に対して教科数分のレコードを作ったら?
教科マスタみたいなテーブルには
1->国語
2->数学
って入れとく。
965 :
941 :04/03/16 23:20 ID:???
>>963 そうなんですか。。
test_2003_4テーブル(2003年度4回目、つまり学年末試験)
No | Japanese | Math | Digital | English1 | English2 |
---------------------------------------------
1 54 84 70 98 100
2 51 21 100 75 43
test_date_infoテーブル
TableName | JpName |
---------------------------
2003_3 2003年後期中間
2003_4 2003年学年末
test_subject_info
ColmnsName | JpName |
--------------------------
Japanese 国語
Math 数学
Digital デジタル回路
English1 英語T
English2 英語U
こういうような感じなんですが
>>965 本来的な話だと正規化したほうがいいよね
それならカラム名の問題も出てこないし。
でも、Excelから入れる程度のデータ量っぽいので
無理に正規化しないほうがいいのかも。
967 :
941 :04/03/17 00:35 ID:???
>>966 正規化、とはどういう風にすればいいのでしょうか。
DBは何分無知なもので・・・
是非ご教授お願いします。
>>965 げぇ、ExcelからCSVでそのまま持ってきましたね?w
あくまで私見、として見てほしいんですけど
scoredata テーブル
No | StudentID | InfoID | SubjectID | scorel |
--------------------------------------
1 1010 20033 1 54
2 1010 20033 2 84
3 1010 20033 3 70
4 1010 20033 4 98
5 1010 20033 5 100
6 1011 20033 1 51
7 1011 20033 2 21
8 1011 20033 3 100
9 1011 20033 4 75
10 1011 20033 5 43
date_infoテーブル
ID | Name |
---------------------------
20033 2003年後期中間
20034 2003年学年末
subject_info テーブル
ID | Name |
---------------------------
1 国語
2 数学
3 デジタル回路
4 英語T
5 英語U
student_info テーブル
ID | Name |
---------------------------
1010 モナー
1011 ギコ
969 :
NAME IS NULL :04/03/17 00:36 ID:8f9bk80H
LinuxとPHPとMySqlをはじめたばかりですが、 <?php $ID= mysql_connect("localhost","",""); if($ID != FALSE) { print "The connection to the server was made successfully."; } else { print "The connection to the server failed."; } mysql_close($ID); ?> という文を書き実行すると、Call to undefined function, mysql_connect とでてきます。mysql_connectという関数を認識していないみたいですが、 ウィンドウズの方で同じ文を書き実行すると正しく表示されます。 Linuxのほうのmysqldは起動しています。アパッチもきちんと動いてます。 Red Hat Linux 9をフルでインストールして、その後の設定は行って いません。何が原因でmysql_connectという関数がよびだされないんでしょうか?
970 :
941 :04/03/17 00:38 ID:???
>>968 >げぇ、ExcelからCSVでそのまま持ってきましたね?w
え?、これ手打ちですけど・・・
なんか、テーブル同士の関連付け?みたいな、そんな高度なもの全然知らなくて、テーブルは切って考えてました。。
InfoIDはそうすれば一つにまとめまればきれいですね。
始めたばかりのときに、問い合わせのWHEREもしらなかったので試験日ごとにテーブル分けてました。
>>968 のつづき。
んで
select Name.student_info,Name.date_info,Name.subject_info,score from scoredata
left join student_info on StudentID=ID.student_info
left join date_info on Info_ID=ID.date_info
left join subject_info on SubjectID=ID.subject_info
where StudentID = 1010;
アドリブで手打ちしたので動作確認してない→動かなかったらスマソ
これやらないと、RDBを使ってる意味がない…
972 :
941 :04/03/17 00:54 ID:???
left join〜ってのがそういうことですね。なるほど、勉強になります
973 :
971 :04/03/17 01:08 ID:???
>>972 強引にMySQLの話題に戻すと、注意点は
・日本語入ってるカラムはバイナリ指定が吉。
・日本語入ってるカラムは主キーにしないw
ってところかなぁ。
ガイシュツだけど、2バイトコードは悪さする&多言語対応は考えられないので
>969 マニュアル嫁
975 :
941 :04/03/17 01:10 ID:???
>>973 主キーにはしてませんね。ユニークキーにはしてますけど。
バイナリがいんですか、varcharでやってました・・・
976 :
971 :04/03/17 01:39 ID:???
>>969 マニュアル嫁2
MySQLはインストール直後にrootのPass設定しなくちゃダメだわさ。
そんなことは、どんな解説本にも出ているわさ。
んで、最悪でもrootのアカウントとPassは入れとかなくちゃ動かないわさ。
(ふつうは、別アカウント作って制限かけるけどナー)
なんでWindowsでは動いてるの?
そっちのほうがおかしいぞ
977 :
NAME IS NULL :04/03/17 07:37 ID:AGUZPTGB
>>969 RedHat9は触ってないから推測だが、PHPが--with-mysqlオプション付きで
コンパイルされているのかな。phpinfo()の情報見てみれ。
ソフトエイジェンシーからLAMPパッケージを取ってきて入れ替えて見るのが
良いかと
>>976 あれっ、LinuxだとMySQLユーザのrootにpasswd必須だっけ?
取り合えずWindowsは、ビルトインユーザのrootにはpasswdは無くても動く。
# passwdを無しで使うシチュエーションもそんなにないが。
>>969 件のPHPの吐いてる Call to undefined functionは
>>977 の考えてる理由かな。
Windows版はMySQLエクステンションをPHP本体に静的に組み込み済み。
RHLの方はphp-mysql*.rpmパッケージにより、後で動的に組み込む必要があるが
それが上手くできてない。本当はフルインストで入る筈だけどね。
因みに動的組み込んだエクステンションは、phpinfoのconfigureのところでは表示されない。
RHL純正rpmのPHP本体だとマルチバイト機能も不足してるから、必要ならsrpmを使って
再ビルドして組み込まないと駄目。
貴方くらいだと素直にソフトエイジェンシーのrpmを取ってきた方が良いよ。
979 :
978 :04/03/17 09:41 ID:???
980 :
NAME IS NULL :04/03/17 09:46 ID:vWVqCFS9
次スレ、まだぁ?
テンプレにGPLについての簡単解説載せてくれ
984 :
981 :04/03/17 14:52 ID:???
梅
埋
産
(゚д゚)ウマ-