乙。まあコレといってネタは無いんだが…
7 :
NAME IS NULL:04/10/05 18:56:49 ID:z90Cepph
自宅のPC
winXP
mysql4.0.18
コマンドプロンプトから接続して、
show databases;
をやると
mydb
mysql
とでます。mydbを削除したいので。
drop database mydb;
を打ちました。
Query OK, 0 rows affected (0.00 sec)
こうなってしまい一向にけせませんがどうすればよいでしょうか?
以前は普通に消せたのに;参りましたorz助けてくださいm(_ _)m
8 :
7:04/10/05 19:08:21 ID:z90Cepph
試しに一個適当なデータベースを作って消したら普通に消えました。
mydbだけ無理なようです。どうしてでしょうか?
9 :
NAME IS NULL:04/10/05 20:01:01 ID:IgcG9IUi
>>8 mydb って自分でつくったデータベース?
10 :
7:04/10/05 20:32:44 ID:???
>>9 はい自分で作ったやつです。以前は問題なくけせましたが、いきなり消せなくなりました;
そもそも消せないデータベースなんて存在しまsんよね。
mysqlですら確か消せたはずですし
どうすれば消せるでしょうか?
11 :
NAME IS NULL:04/10/05 20:33:17 ID:rRh5O26X
大学のPCで
・WindowsXP(Pro)
・mysql3.23.54
でやっています。
>mysqladmin -u root -p 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'
と出てしまいます。他のコマンドをやろうとしても、
上記のメッセージが出てきます。自宅では設定できたんだけど、
どうして学校だと無理なんだろうか・・・。
>>11 で、
> Check that mysqld is running on localhost and that the port is 3306.
> You can check this by doing 'telnet localhost 3306'
は試してみたんだろうな?
>>10 権限の問題だったらDROPでエラーが出る筈だし、
もっと根の部分かも。
ファイルシステム上で何かロックが掛かってない?
14 :
7:04/10/06 01:56:21 ID:???
>>13 ファイルシテム上?
根本をしらないのですが、例えばユーザの管理はmysql.user内でやってますよね。
しかしDbの管理はどこでしてるのでしょうか?
drop database mydb;
Query OK, 0 rows affected (0.00 sec)
これが気になるんですよね。成功してるのに消えてないっていうところが。
で、ここまで書いてちょっと思いだしました。確かDBはどっかにファイルが作られてることを。
で \mysql\data\ で見つけました。mydbファイルを。
中身を見たらなんと以前に作ったSQLファイル(SQL文が書かれたもの)が
ありました。多分これがあったせいでファイルを消せずにいたんだと思います。
このSQLファイルを手動削除後に、接続してdropしたらしっかりけせました。
完全解決です!!!
正直どっかいかれたかなと思いましたが、
>ファイルシステム上で何かロックが掛かってない?
これ最高でした^^はしゃぎすぎてごめんなさい。それでは失礼しますm(_ _)m
15 :
NAME IS NULL:04/10/06 16:02:59 ID:CAYkiHre
mysql 4.0.18
コマンドプロンプトから
C:\mysql\bin> mysql -u root -p mydb < query.sql
とするとquery.sqlの中身にかいてあるSQL文を実行させることができますよね。
これってログインしてからではできないのでしょうか?
mysql> mydb < query.sql;
としてもエラーになるのですが、やり方が間違ってるだけで本当はできるのでしょうか?
いつも一旦ログアウトするのが面倒なので;
ちなみにquery.sqlの中身は初期設定です。
>>15 mysql> source query.sql
または
mysql> \. query.sql
17 :
NAME IS NULL:04/10/06 19:05:56 ID:Pmz2VZOq
INT UNSIGNED AUTOINCREMENT の項目を
Primary Key にしようと思ったのですが、
自動的に採番されるが故に、この項目での関連付けができません・・・。
なにか巧みな方法がありましたら、お教えください。
CREATE TABLE table_a (
no INT UNSIGNED AUTOINCREMENT,
a VARCHAR(16) NOT NULL,
PRIMARY KEY idx_primary_key (no)
)
CREATE TABLE table_b (
no INT UNSIGNED NOT NULL,
b VARCHAR(16) NOT NULL,
PRIMARY KEY idx_primary_key (no)
)
insert into table_a (a) value ('aaa');
insert into table_b (no, b) value (???, 'bbb');
table_a と table_b を no で関連付けたいけれども、
table_bをinsertするときにnoが決定できないということです。
素直にAUTOINCREMENTをやめて、
自分でselect MAX(no)するのが普通でしょうか?
>>17 insert into table_b (no, b) values (LAST_INSERT_ID(), 'bbb');
あるいは、アプリケーション側でmysql_insert_id()を使ってIDを取得しておいてからinsertする。
19 :
17:04/10/06 19:49:39 ID:???
>>18 ありがとうございます!!
言われて調べたら、MySQLマニュアルに載ってますね orz。
お手数おかけしました。
ちと、マルチスレッドが気になりますが、
もうちょっと深く調べてみます。
20 :
15:04/10/06 20:34:46 ID:???
21 :
NAME IS NULL:04/10/07 11:31:36 ID:5L2/XJS/
一括更新とかできないんですか。
excelとかでファイルつくって、読み込ませたいんです。
いきなり何を言ってるんだ?
質問です。
MySQL 4.0 で、JOIN 句を使っているのですが、
フィールド名が違うテーブルを結合するには、やはり ON句しかないのでしょうか?
5つぐらいのキーのあるテーブル同士を結合したいのですが、フィールド名が
ひとつだけ違っていて、USING句が使えないのです。
おかげでズラズラとON ... AND ... AND... AND... AND... と書いております。
何か良い方法をご存知の方、お教えください。
>>24 SELECT * FROM t1 JOIN t2 USING(f1, f2, f3, f4) WHERE t1.f5_1 = t2.f5_2;
ちゃんと最適化されるかどうかは知らないので、EXPLAINで調べてね。
27 :
24:04/10/07 18:13:59 ID:???
すみません、言い忘れていました。
外部結合(LEFT JOIN)なのです。だからWHERE 句で = では結合できません。
Oracle には WHERE 句で外部結合する演算子がありました。
MySQL4.0にもそれがあるでしょうか?もしあれば、それで何とかできそうです。
for($i = 0 ; $i<5; $i++)
{
$result = mysql_query("lock table Table1 WRITE");
print(mysql_error());
sleep(1);
mysql_query("unlock tables");
}
このPHPを二つ同時にアクセスしているのですが、ロックされているテーブルにさらに他のプロセスがロックしようとすると
エラーが返ってくると思っているのですが違うのでしょうか・・。
書き忘れていました、スマソ。↑では何も表示されません。
>>28 すでにprocess A に lock write されてるテーブルがあるとする。
そういったテーブルを別の process B がロックしにいったとする。
そうした場合は、process Aが unlock tables するまで、process B は
待ち状態に置かれる。つまり、process B のqueryは送られたきり
table unlock が起こるまで返ってこない。返ってきたときは
process A は unlock していて process B がめでたく lock write
したあとだから、当然 OK status となる。
>>30 順番が回ってくるまでそこでprocess Bが待たされているんですね。
分かりやすく説明していただいてありがとうございます^−^
flockみたいにロックできなかったらエラーを返すと思っていました・・・。
32 :
30:04/10/09 23:35:23 ID:???
ロックできなかったよ、アクセスできなかったよといってqueryがすぐ
返ってきちゃう実装だと、プログラムするのがかなーり面倒くさく
なっちまうわけで。
>>31
memberlist(リスト)
+-------+
| member|
+-------+
| 梅0号 |
+-------+
| 梅1号 |
+-------+
| 梅2号 |
+-------+
| 梅3号 |
+-------+
attendance(出席簿)
+-------+
| member|
+-------+
| 梅0号 |
+-------+
| 梅1号 |
+-------+
という二つのテーブルがありまして欠席者一覧(memberの中でattendanceに無い人)が欲しいのですが
サブクエリが使えない環境でどのようにクエリを書いたらいいのでしょうか?
>memberの中でattendanceに無い人
memberlistの中でattendanceに無い人
でした。(´・ω・`)
>>34 left joinして、nullかどうか見ればいいんじゃない?
手元にないんでやってないけど。
memberを使ったmemberlistとattendanceの外部結合で、
attendanceがnullのmemberlistを表示したら?
ううっ、勉強になります・・。
何時間もこのことだけで試行錯誤したり、テンポラリテーブル使ったりやってみたんですが
やっと解決です。
ありがとうございます。
MySQLの特定のデータベースにあるテーブルの最終更新日を簡単に
取得できる方法はありますか?
(目的としては、特定のテーブルがある期間内で更新されたかどう
かを求めたいのです。)
只今試行錯誤しているのですが、テーブルのカラムにUpdate日付
を持つようにするしかないのでしょうか?
タイムスタンプフィールドを作る
あるデータベースで検索結果のヒット数が15件あったとします。
1ページ当たりの表示件数を10件としている場合、
1ページ目で10件表示され、「next」や「次へ」を押すと残りの5件が表示されます。
ここで質問なのですが、その際のソート順を『ORDER BY RAND()』にしている場合、
1ページ目に表示される10件も2ページ目に表示される残り5件も全てランダムに表示されるのでしょうか?
つまり両ページともランダムなので、1ページ目に表示された項目が再度2ページ目に現れてしまうのでしょうか??
そうすると重なって表示される項目が有る為、逆にそのせいで表示されない項目も出てきてしまいます。
今、私が作ってるデータベースがあるのですが、上記の様な状態になりました。
これは『ORDER BY RAND()』を使う場合はやむを得ないのでしょうか・・・。
もし解決策があったらご教示下さい。
mysqlで正しくInnoDBが正しく入っているか
使用できる状態か確認するコマンドはありますか?
44 :
41:04/10/12 19:56:52 ID:???
>>42 即レスありがとうございます。
seedについてマニュアルで調べたところ、『RAND(seed)』と発見しました。
今までPHPに記述していた『RAND()』の代わりに『RAND(seed)』と記述してみます。
ありがとうございました。
43です。
解決したのでレスを取り下げます。
無駄レススマソ。
46 :
NAME IS NULL:04/10/13 12:24:01 ID:/ZR/ODZM
質問させてください
mysql-4.0.20d-win を使って自鯖でmysqlを勉強し始めたのですが
create table test (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(40),
amount VARCHAR(20),
place VARCHAR(20),
unique (Name,place),
block VARCHAR(1),
time TIMESTAMP(14) NOT NULL
);
このようなテーブルを作って予めデータを数件入れている状態です。
通常はName,placeを一意のユニークとして重複するものは上書きREPLACE
しています。
このような状態で、同じplaceフィールドのblockフィールドだけに値を入れたいのですが
どうしたらよいのでしょうか?
select replace(block,'1') from test order by block
いろいろ読み漁ってこのような感じにしたのですが構文エラーがでてしまいました。
当方、perlからmysqlを使っているので一旦、select name from test where place in (場所の名前);
として一意のユニークキーを抜き取ってからそれを元にREPLACE INTOで書き換えようかと思ったのですが
スマートじゃないですね・・
お力添えしていただけるとうれしいです。
>>46 UPDATE test SET block='1' WHERE place='場所の名前';
> いろいろ読み漁ってこのような感じに
なにを読んだんだろう…
48 :
46:04/10/13 15:08:53 ID:???
>>47 ありがとうございました。
ばっちりいけました。
ぇっと・・mysqlマニュアルを読み漁ってました・・ゴチャゴチャになってしまったのかな。
my.cnf設定についてご教授を…
[client]
port= 3306
socket= /var/lib/mysql/mysql.sock
[mysqld]
datadir = /var/lib/mysql
port= 3306
socket= /var/lib/mysql/mysql.sock
skip-locking
skip-innodb
set-variable= key_buffer=256M
set-variable= max_allowed_packet=2M
set-variable= table_cache=256
set-variable= sort_buffer=2M
set-variable= net_buffer_length=32K
set-variable= myisam_sort_buffer_size=32M
set-variable= max_connections=300
set-variable= record_buffer=2M
log-bin
server-id= 1
こんな感じで設定しているのですが、もっとこうした方が早くなるよって設定ありますか?
51 :
NAME IS NULL:04/10/14 01:08:55 ID:LVPksM5U
マシンのメモリとか、CPU数とかわからんとわからん。
何に使ってるか(WEBのバックエンド?)とかも
わからないと答えられない。
>50
メモリの設定は、マニュアルに目を通したほうがいいよ。
log-binは、レプリケーションつかわないなら
外した方が速くなりそう。
53 :
50:04/10/14 11:40:37 ID:???
>>51 すみまんせん、確かにそうですね(^^;
CPU Pen3 1.2G 1個
MEM 768M
使用用途はXOOPSの為のDBです。
色々なモジュールを突っ込んで、それぞれで大量の情報を書き込んでいったら
かなり遅くなってしまい、ページを表示させるのに何十秒もかかってしまいます。
HDD1枚はつらいかなぁ・・・ RAIDを組むべきですかね?
以下のようなテーブルとインデックス構成で、データを大量登録
しようとして、途中でエラーが発生し登録ができなくなりました。
create table A (
SitenNo integer unsigned not null,
InOutTime datetime not null,
PersonNo integer unsigned not null,
:
:
);
create unique index IndexA on A (InOutTime,SitenNo,PersonNo);
create index IndexB on A (SitenNo);
Duplicate entry '2004-09-15 08:45:00-1-12' for key 1
このエラー↑は同じデータを2重登録しようとしたというので
わかるのですが、下のエラーの原因がわかりません。
Duplicate entry '1' for key 2
key 2 とは IndexB を指していると思うのですが、unique 指定を
していないのにDuplicate entry エラーが出る理由がわかりません。
このエラーが出る前には同じ支店Noでデータが大量に登録されている
のですが、このエラーが出た後は以後、同じエラーが発生し、データ
登録ができなくなります。
>>54 SitenNoが主キーになってる気がする
56 :
55:04/10/14 17:37:58 ID:???
「このエラーが出る前には同じ支店Noでデータが大量に登録されている」だから違うか。
支店No=SitenNoでしょ?
57 :
NAME IS NULL:04/10/14 22:48:17 ID:LVPksM5U
>>53 そんな遅いマシンで使ったことないのであれだけど、
何十秒っていうのはそもそも設計が間違ってるんじゃないの?
>>57 どうせブラウザの[Go]を押してから、レンダリングされて
画面描画までの時間というユーザのスタンスでの計測でしかないから
「サイト全体としての」設計が間違ってるとは言えるが、
データベースやアプリの設計が間違ってるとは断定できない。
極端な話、必要があって数十秒寝る処理があるのかもしれん。
良く判らなければ、今日日ハードウェアに金掛けるのが
端的で良いと思うけど、RAID?とか細かいこと言うなら
ちゃんとDiskI/Oがボトルネックになってるか調べてから
じゃないと無意味な投資。判らないならあらゆるもの全部に注ぎ込め。
>>53 たぶん、いらないものが多すぎるだけだとおもうな。
よけいなものはずせ。
たぶんDBの問題じゃない。
>>55 自分が作ったシステムではないので不確かですが、
create Table文とcreate index文は(名称は変えてますが)
書いたとおりの分しかありません。
Primary Keyの指定はしてないようなんですが....
>>56 支店No(SitenNo)がunique指定なら、同じ支店の別の人の
データを登録しようとした時点でエラーが発生するはずです。
そうではなく、ある支店の月次データを大量登録している時に
途中から突然エラーが発生したんです。
ちなみに障害なんですが、既存データをアプリでCSV出力した後、
テーブルとインデックスを削除&再作成し、既存データと新規の
CSVファイルを再度取り込ませた所、エラーも出ず取り込めました。
インデックスが壊れていたのかなぁ。
show fields from A
Windows2000+MySQL4.0.21での質問。
エラーメッセージをShift-JISにしようと思い、
『C:\mysql\share\japanese』のerrmsg.txtとerrmsg.sysをそれぞれ
euc_errmsg.txtとeuc_errmsg.sysとファイル名を変えてバックアップ。
euc_errmsg.txtを文字コードをShift-JISに変換したsjis_errmsg.txtを作成。
C:\mysql\binにはパスを通してあるので、コマンドプロンプトで
c:\mysql\share\japaneseに移動し、『comp-err sjis_errmsg.txt errmsg.sys』と入力してerrmsg.sysを作りました。
しかしならが、my.iniでlanguageを指定してもサービス起動時にエラーがでます。
そこで、今度は最初にリネームしておいたEUCでのエラーメッセージでerrmsg.sysを作ってみましたが、
同じようにサービス起動時にエラーとなります。
MySQLをインストールしたときのデフォルトのerrmsg.sysだとエラーになりません。
ちなみに、サービス起動時のエラーメッセージは
『エラー1067:プロセスを途中で強制終了しました。』と出ます。
上記の事から、インストールした時のerrmsg.txtを使って生成したerrmsg.sysでもエラーが出たので、
comp-err.exe自体に何か問題があるかと思うのですが、
解決方法をご存知の方が居ましたらご教授頂ければと思います。
63 :
NAME IS NULL:04/10/18 00:08:41 ID:uKFn7As4
MySQL 4.0.21で、blob型に入れたUTF-8のデータのdumpに
関する質問です。
MySQL純正のMySQL Administratorでバックアップを取ると文字を
コード化してくれるのですが、
例
create table test.test (txt blob)TYPE=MyISAM;
txtにUTF-8で"日本語"とインサート
MySQL Administratorでバックアップしたときのinsert文
→insert into test (txt) values (0xE679A5E69CACE8AA9E);
mysqldumpでダンプしたときのinsert文(オプションは --opt)
→insert into test values ("日本語");
mysqldumpでダンプを取るときも上記のように符号化したいのですが、
どのようにすればよいでしょうか?
マニュアルを読んだ限りではそれらしいオプションが無いのですが。
WindowsServer2003でnonインストーラーバージョンのMySQL 4.0.21を設置して、
XPとかと同様の操作でセットアップしたんですが、どうもサーバーは正常に動いてるんですが
他のアプリからDBに接続することが出来ません。何か特殊な設定が必要なのでしょうか?
>>64 >どうもサーバーは正常に動いてるんですが
>他のアプリからDBに接続することが出来ません。
これだけでは何が起こっているのか分らないよ
66 :
64:04/10/18 18:09:40 ID:???
>>65 unzipしたファイルをc:\mysqlにいれ、winmysqladmin.exeを起動し、
自動的にmysqld-ntでサービスを開始し、青信号になった状態です。
root@'%'でパスも設定しました。
勿論ログインし、テーブル作成やアカウント作成は可能な状態です。
しかし、MySQLを利用するアプリからローカルIP(192.168.1.2)を
指定したところ、接続不可能と言われます。
IISでphpmysqladminを使って接続を試みましたがやはりDBに接続できないといわれます。
>>66 >ローカルIP(192.168.1.2)を指定
localhostかループバックアドレスで無い場合は、
MySQLからみるとネットワーク越しの接続になる筈。
ユーザ設定とネットワーク接続の設定を確認。
68 :
64:04/10/19 15:33:41 ID:???
>>67 ローカルグループ・ユーザーのアクセス権等も設定見直ししましたが、
全てAdministratorで実行してます。
あと、ためしにループバック(localhost,127.0.01)でも接続出来ませんでした。
winmysqladminは青信号で、認識してるIPアドレスはコンピュータ名と192.168.1.2でした。
XPが良くてWS2003がダメだとしたらかなり萎えます・・・。
解決してないので、もう少し粘った後バージョンアップしてやってみたいと思います。。
MySQLで一般ユーザーを追加後、
一般ユーザーでSHOW DATABASEできないようにしたいのですがどうしたらいいでしょうか?
SHOW DATABASES つう priviledgeがある。
Manualを検索してみれ
>>69
SHOW DATABASESっつうprivilegeあるみたいですね。。。
でもどうやっていいのかManualみてもいまいちわかりません
どなたかご教授お願いしますm(_ _)m
73 :
NAME IS NULL:04/10/20 14:16:47 ID:FjFr83vk
レンタルサーバーでFreeBSD 4.10,Apache/1.3.31,MySQL 4.0.20という環境でphpMyAdmin 2.6.0
を使ってテーブルを作成しデータを登録しました。それをブラウザで表示したり
phpMyAdminの画面からは普通に表示されるのですが、
select * from xxxx like '%天%';
などとすると'天'を含まないフィールドが抽出され、ブラウザではその箇所が文字化けして表示されます。
同じページの'天'を含む箇所は正常に表示されます。
phpMyAdminの画面では文字化けはしませんが本来抽出されないデータも
表示されています。
ウインドウズのローカル環境では問題なかったです。文字コードの問題
だと思うのですが、ご教授お願いします。
EUC-JPにする
Windowsであってもキャラクタセットの指定がないのは危険だからな
mysql.iniはかならず修正が必要
このへんセットアッププログラムでいじれたり
管理ツールで選択できるようになってればいいんだが
所詮といってはなんだがフリーのプロダクトはこういうのが弱い
76 :
73:04/10/20 21:19:19 ID:???
ローカルの時もEUC-JPで統一していたのですが、レンタルサーバーは
共用なのでmysql.iniはいじれなくて、テーブル作成などもphpMyAdmin
から行なうようになってます。
ja-eucを選択してテーブルを作成すればdefault-character-setもujis
になるかと思ったのですが...
表示自体は能とかも問題なくlike %演算子を使ったときだけ不都合が
おきます。phpMyAdminにも設定などが必要なのか、サーバーがわざわざ
sjisに設定してあるのか...わかりません。
サーバにはmysqlはサポート外なのでわかる人だけ使ってくださいといわれ
ました。
>>76 酔っ払ってるので話半分で読んでね。
まず、テーブルとスクリプトの文字コードを一致させる。
できない場合は問い合わせるキーワードをテーブルの
文字コードに合わせる。
また、日本語で比較するときはbinary演算子を付けると
幸せになれるかも。
79 :
全文検索ヲタク:04/10/20 23:57:03 ID:WgoI9BEk
mysqlヲタク&神々にお尋ねします。
当方,現在テキストデータ(平均サイズ1kB),約700万件を
mysql5.0にぶち込んでmysqlの全文検索機能を使って検索システムを
構築中です。↓mysql全文検索の資料
http://dev.mysql.com/doc/mysql/ja/Fulltext_Fine-tuning.html ですが,やはり速度が出せず1,2分かかってしまうこともあります。
誰か全文検索機能のチューニングのこつをご存じないでしょうか?
(テーブル最適化 myisamchk -r _table は実行済み)
ちなみに環境は
OS: Linux(kernel2.6)
CPU: Pen4 2.8GHz
memory: 1GB
Version: MySQL 5.0.1-alpha
MyISAM table のフィールド
int
varchar(400)
TEXT
date
該当INDEX
varchar+TEXT からのFULL-TEXT INDEX
80 :
NAME IS NULL:04/10/21 01:24:29 ID:yiQrtLs2
すいません、教えてください。
オートインクリメントをリセットする方法ってないでしょうか?
オートインクリメントを解除する方法はあっても、リセットする方法って探しても出てこなくて・・・
どなたか、ご存知の方お願いいたします。
83 :
71:04/10/21 06:49:31 ID:???
>>83 あなたのやりたいことはmysql.userテーブルで設定するがよろし。
SQLコマンド中で、別のファイルのSQLを処理できますか?
>>86 mysqlのコマンドラインでか?
そりゃ無理だろ。
postgresだと\iでできるけど。
90 :
73:04/10/21 12:02:12 ID:???
ありがとうございます。
テーブルはja-eucで作成して、スクリプトはEUC-JPで統一して、念のため
検索キーワードもmb_convert_encodingでEUCに変換してみたのですがダメ
でした。
フィールドをBLOGで作成したり、xxx like binary '%xx%'などともしてみたの
ですが結果は変わりませんでした。
はぁ〜。
92 :
NAME IS NULL:04/10/21 12:55:24 ID:Vu2F5W+/
>>フィールドをBLOGで作成したり、xxx like binary '%xx%'などともしてみたの
カラムがBLOB型で、かつ
SELECT * FROM table WHERE column LIKE BINARY '%天%';
ってやってみた?
これでうまくいかないとなると、本当に変だね。
>>91 SQL構文はともかく、SQL"コマンド"なんてないから
SQLコマンドプロンプトのことだろうと汲み取ってやっても良いだろう?
87氏も訊きなおしてるし。
俺はアンタのようなキチっとした香具師も好きだが。
94 :
NAME IS NULL:04/10/21 14:42:05 ID:sNXQEQyG
>>85 当方,英語文献の検索システムを構築中です。
日本語対応はまだかと思われ。
単語分解してindex貼れば可能かと思われますが。。。
95 :
73:04/10/21 17:08:09 ID:C5NJIhw2
カラムをBLOBにしても変化なかったのですがbinary演算子をつけたら
誤ヒットが大幅に減って使えるレベルにはなりました。
TEXTのままでも変わらないみたいです。
しかし前後の文字によって'天’などがやはり不必要にヒットしてます。
mb_detect_encodingでキーワードをチェックすると問題を起こす漢字たち
だけはUTF-8になってました。
これを強制的にEUCに変換すると今度'天'を含んでいてもまったくヒットしなく
なってしまいました。化けて表示されるよりヒットしない方がいいかな
と。
それに中国人ではないので漢字一文字での検索はしないと強く言い張って、
今日こそ家にかえりたいなぁ。
大事なデータベースで誤ヒットが減ったとかそんないい加減な考えでいいのか?
そんなレベルならものによっては自作したほうがいいんじゃね?
97 :
73:04/10/21 17:58:59 ID:???
そうです、すいません自分がまちがってました。
しかしこのレンタルスペースを利用することは動かせないわけで、
スクリプトからできることでなにかアドバイスがあれば是非ご教授
願いたいのですが。
自作というのはmysqlなどを利用するのではなくCSVのログファイル
みたいなものを自作するということでしょうか?
mysqlを使わずにってことね
どこからcsvとかログファイルというのが出てきたかわからんが
XMLベースでXPathとか勉強するといいかもね
99 :
73:04/10/21 19:42:11 ID:???
がーんXPath...とは名前すら知らない。
やっとPHPをやっとの思いで、やっと
namazu使うとか
>>99 俺はPHP4.3.9+MySQL 4.0.21を使っていて、UTF-8で文字検索してる。
当然PHP側はUTF-8でMySQLはBLOB型ね。
PHPを使っているということは、php.iniのmbstringの設定で
出力時の文字コードを勝手に変換しているのではないか?
php.iniをチェックされたし。
レンタルサーバってphp.ini見れるの?
>>73 とりあえず、ブラウザに出力されるときのエンコーディングと
スクリプトのソースのエンコーディングと、MySQLに格納されている
データのエンコーディングが全部合ってるか確認しる。
> ブラウザではその箇所が文字化けして表示されます。
多分出力されている文字列の実際のエンコーディングはsjisで、
HTTPヘッダやmetaで指定しているエンコーディングと食い違って
いる、とかそのへんじゃないか。
でもどうせ
> select * from xxxx like '%天%';
とかやるんだったらインデックスもへったくれもないし
いっそのこと select * from xxx; とやっといて
スクリプト側で全部なめて検索しても変わらないんじゃないの?
# つうかそこでXPathが出てくるか普通?
>>102 php.iniをいじれなくてもini_set() で設定すればいいだろ。
>>103 シンプルなデータを扱いときに便利だよ>XML
106 :
73:04/10/22 01:53:41 ID:???
スクリプトの文字コードとmetaのキャラセットはEUCで統一して
表示もmb_detect_encoding表示ではEUCになってました。
php.iniは自分のディレクトリでいじれてこのようにしてます。
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
文字化けはヒットしたキーワードをタグでハイライト表示させると起きるので
やっぱりスクリプトの問題だと思うのですが、like '%天%'で 津軽地方 に
ヒットしてしまいます。
MySQLに格納されているデータのエンコーディングはどうやって調べるか
わかりません。phpmyadminでja-eucを選択してテーブルを作成しました。
107 :
NAME IS NULL:04/10/22 03:21:26 ID:6g/IdAI6
ソフトエージェンシーにライセンスについての質問メールを
出したのですが、無視されてしまいました。
本名書いて丁寧な文章にしたのですが、無視が基本なのか
困りました。返事が貰えないと社内システムで使えるかどう
か判断つかない・・・。
>>106 俺は問い合わせの返事もらえてるけど?
どんな内容か知らないが、貴方の日頃の行いが…なわけねぇか。
どっち宛(一般/MySQL)に出したん?
109 :
NAME IS NULL:04/10/22 04:40:04 ID:6g/IdAI6
>>108 返事もらえてるんですか・・・・やっぱり日頃の行ないが・・・orz
問合せ先は licensing です。
「ライセンス供与に関するご質問は
[email protected]にお問い
合わせください。当社からアドバイスをさせていただきます。」
と書いてあったので。
改めて別なアドレスに出してみます。
>>109 それってMySQL AB宛のアドレス(それもインターナショナル)だから、
英語で書かんといかんでしょ。向こうも日本語で貰っても当惑しちまうよ。
日本語で問い合わせたいなら、国内代理店宛。
俺はMySQL AB直とソフトエイジェンシー以外からは買ったことがないが、
今はソフトエイジェンシー以外の国内代理店が複数ある。
(それぞれ、分野毎で住み分けてるみたいだけど)
>>110 ありがとうございます。お恥ずかしいかぎりです。
国内代理店宛に聞いてみます。
ありがとうございました。
MySQL5.0.1とかねやんMySQLAdmin1.43を使用しているのですが、
root(アドミ)から一般ユーザーa_userを登録して、そいつにa_bataというデータベースに参照や、挿入権限など一通り与え、
passもa_passと登録したのですが、かねやんを再起動させるとa_user:a_passでログインできなく、
又、rootからログインしてmysql内のuserテーブル内を見ると、passwordがrootにも設定されていたり、
a_userにも設定pass文字数と違った数が設定されていたり、何がなんだかよくわからない状況になっています。
設定した一般ユーザー名:passでログインするには、どうしたらいいんでしょうか?
113 :
NAME IS NULL:04/10/22 15:24:41 ID:Adho7nKC
;' ':;,, ,;'':;,
;' ':;,.,.,.,.,.,,,;' ';,
,:' : :、
,:' \ ,,. 、./ ノ( ::::::::',
:' ● ● ⌒ :::::i.
i ''' (_人_) '''' * :::::i ぬるぽー!!!
: {+ + +} :::::i
`:,、  ̄ ̄ ::::::::: /
,:' : ::::::::::::`:、
,:' : : ::::::::::`:、
>>112 かねやんMySQLAdminのそのバージョンとMySQL5.0.1での動作実績&対応は?
MySQL4.xあたりでは同様の操作で問題なかったか?
MySQLのコマンドラインでやった場合はどうよ?
115 :
112:04/10/23 04:06:29 ID:???
>>114 すっきりした頭でよくよく見てみたら、5.0.1の動作実績なさそうでした。
mysql-4.0.21-winでやったところ、指定したpassでログインできるようになりましたが、
ちょっと5.0.0で試したところ、112と同じ状況になりました。
5.0.0と5.0.1で共通するのはrootログイン時の警告で
このキャラクタセットでは文字化けを起こす可能性があります。;
サーバのキャラクタセット->
クライアントのキャラクタセット-> sjis
というのが表示されること。
4.0.21では
サーバのキャラクタセット-> latin1
となっていました。
あと、5.0.0、5.0.1でa_userのpassを空白にしてから、かねやんでログイン(ID:a_user pass:"NULL")したところ、
上記の警告文は表示されるもののログインには成功しました…けど、このまま使用するのはちょっとまずいですよね?
やっぱりこのキャラクタセットがキーだと思って検索してみたのですが、MLのログらしきものしか引っかからなく、
(時間も時間なんで)斜め読みしてみたのですがちょっと、これを解決するにもいたりませんでした。
4.0.21でこのまま使用し続けて問題がないのならいいのですが、卒研の残り時間もあまりないので、躓くとちょっと時間的に厳しい…
キャラクタセットの警告文に対する処理方法はどうしたらよいのでしょうか?
環境:win2k Apatch2 PHP4.3.9 MySQL4.0.21(5.0.1)
ローカル環境でやっています。
mysq.liniにキャラクタセットの指定がないからじゃない?
117 :
112:04/10/23 11:25:32 ID:???
>>116 ごめんなさい、その通りでした。
もっとよく考えてからくるべきでした…すみません。
今のところ問題がなさそうなので、このまま製作続けます。
…なんか後1つ2つ壁がありそうなんですけど、その時にまた来てもいいでしょうか?
118 :
NAME IS NULL:04/10/23 22:46:39 ID:ih/ucCB8
すいません、MySQLでの質問です。
動作環境は自作の
CPU 2.4G
OS XP
でMySQLのプロンプトを
開こうとすると本体から
「ブッ!」と言う短い
音が出てすぐに閉じて
しまいます。この音は初めて
聞く音です。これはどう
やって回避したらよいの
でしょうか?まともに動く
ようにしたいのですが…。
教えてください。
使っている本は
「いますぐ導入!PHP+MySQLで作る最速Webシステム」
http://www.tsware.jp/publish/phpmysql/index.htm バージョンは
PHP 4.3.2
Apache 2.0.45
MySQL 4.0.14
>mysql -u uname -p
でパスワード入れたら落ちるの?
120 :
NAME IS NULL:04/10/24 07:06:30 ID:WaBYIAQk
ssssc
118は、mysqlとは関係がないwindowsレベルの話でしょう
質問です。
WindwosマシンにMySQLのクライアント向けのツールを入れたいのですが、
ServerとClientが一緒になってしまいます。
Linuxの場合はClientのみインストール可能のようですが、Windowsの
場合は不可能なのでしょうか?
124 :
ff:04/10/24 17:50:03 ID:PhhLLhOO
Mysql初心者です、調べても解りませんでしたのでどうか。。
os:winXp pro sp2
mySQL:4.0.21
上記をインストールし、mysql.exe上でshow databases;としてもtestしか見えません
インストールフォルダにはmysqlとtestデータベースが確かにあり、MysqlManager.exeでは見えます。
WinMySQLAdmin.exeのdatabaseタブでは右クリックでもCreateDatabaseがでてこないので、権限が低いことは予想で解りました
ところが、MySqlマニュアルにあるように、mysql.exe上で
mysql> mysql -u root mysql;
と打ってもsyntax errorを返します
何度かinstallし直しましたが、どうしても上記現象を繰り返します
修正方法を教えていただけないでしょうか
>>124 mysql の使い方が全然なってないんだよ。とりあえず、
餅ついてよくマニュアルを嫁。 mysql> プロンプトが見えてる
つうことは、mysqlクライアントにはもう入れているつうことだ罠。
したら、mysql> の「あとに」show databases; と入れて見れ。
セミコロンは必要だかんね。
mysql> show databases; <cr>
んで最後の<cr>はリターン。「mysql」というデータベースが見えたら、
mysql> use mysql <cr>
mysql> show tables; <cr>
と進む。色々出てくるだろ。
126 :
ff:04/10/24 22:58:45 ID:PhhLLhOO
>125
同じことをしていますが、出てこないのです
mysql> show databases;<cr>で出てくるのはtestのみです
ここが、不可解です(>124でも書きましたがmysqlデータベースはあります)
ユーザーでしょうか
引き続き、どのように対処したらよろしいでしょうか
ログインしているアカウントの権限が弱いのだよ
rootで入れ
mysql.exeをダブルクリックじゃだめ
コマンドプロンプトから
C:\mysql\bin> mysql -u root mysql
しなきゃ
いまチュートリアルで遊んでいるのですが、画像そのもののデータとか
動画のイントロ部分そのもののデータとかをデータベースに格納できたり
できるのでしょうか?初心者なのでデータベースというと住所録や成績表のよ
うなプレインテキストででもできるようなものしか浮びません。
mysql> select version();
+------------+
| version() |
+------------+
| 4.0.21-log |
+------------+
どうやるのでしょうか?ポインタだけでも
>>131 普通にバイナリ型(BLOB)で入れるだけ。
サイズの上限はファイルシステム依存でしょうか?
135 :
134:04/10/25 12:45:33 ID:nDUqVSTn
>128
ありがとうございます
この方法で解決致しました
136 :
134:04/10/25 12:47:03 ID:???
134ではなく124でした
しかもsage忘れました...スイマセ
137 :
スレ違いだったら申し訳ないです。:04/10/26 00:53:10 ID:bAPWfiki
すみません。どうしてもMySQLを覚えないといけない
事態が起きまして、さらに独学で学ばないといけない状態なのです。
SQLの絵本という本を購入したり、いろんなサイトさんを
巡って来たのですが、分らなくて、こちらに辿りつきました。
ものすごい初歩の質問なのですが、WindowsXPに
MySQLをダウンロードする手順とお勧めのバージョンを
教えて頂けないでしょうか。
どこのサイトさんでも、インストールはここ(公式HPのURL)と
リンクを貼って下さっているだけで、行った先は英語なので
全く理解不能で…。インフォシークのサイト丸ごと翻訳で公式
HPを翻訳してもらったのですが、ダウンロードのボタンを
押すと、ノットファウンドになってしまうんです。
どなたか教えて頂けないでしょうか・・・・。
英語ぐらい嫁
>>138 読めないんです…。
そこを、なんとか……
>>140 そこも一通り見たんです_| ̄|○
でも、mysql/ja/Installing.htmlでどうしたら良いかを
書いてくれているものの、入手先、という所で
mysql/ja/Getting_MySQL.htmlに飛んで、公式ページ
(
ttp://www.mysql.com/)か、ミラーサイトに飛べ、
と指導されて、素直に飛んで行ったのですが
両方とも英語で……_| ̄| =○
142 :
140:04/10/26 02:37:02 ID:???
>>142 ううぅ。ありがとうございます。
上司の命令で『覚えろ』って。ううぅ。
中途採用して頂いて、他の先輩方が今一番忙しい
時期で、仕事を教えている暇がないから、今の内に独学で
覚えておきなさいとの事で、『出来ません・無理です』なんて
口が裂けてもいえるわけがなくって…_| ̄|○
ダウンロード出来ました♪
ほんとうに140さん、多謝です!
Windows (x86)で、良いのですよねっ?!
今から、初期設定頑張りますっ。
本当に、ありがとうございました。
144 :
ぎゃー:04/10/26 05:02:44 ID:bAPWfiki
何度もすみません。
無事インストールが出来て、初期設定も出来たので
調子にのって、テーブルにデーターを追加する、という
のをやってみたのですが……。
my sql>
の後に、ダカダカと入力したら my sql->
という⇒つきかっこが出てきて、うわ、間違えたんだと
思って一旦quitと入れて終わろうとしたのですが
my sql->が出てくるんです。終われないーと焦って
bye とか exitとか入れてみたのですがmy sql->
しか帰ってこないんです。 こういうときって
どうやって終わったら良いのでしょうか……
すみません。ご指導お願いいたします。
145 :
ぎゃー:04/10/26 05:56:24 ID:???
すみません。解決しました。\cを入れたらちゃんと->が
消えてくれました。
お騒がせ致しました
すみませんが、質問です。
MySQL 4.0(サブクエリが使えない)版で、あるテーブルのSUMの値を使って、
他のテーブルのレコードを更新するには、どんな方法があるでしょうか?
サブクエリが使えるなら、
・あるテーブルのSUMをとる。
・それをサブクエリとして、他のテーブルとJOINしてUPDATEする。
というやり方で簡単に済むのですが。
今のところ、あるテーブルのSUMをテンポラリテーブルに収めるつもりです。
しかし、たった一回しか使わないのに、わざわざテンポラリテーブルを作るのが
うれしくありません。
何かもっとスマートな方法は存在しないでしょうか?
SQLだけでやらないというのであれば毎回SQL発行してもいいだろう
速度的に問題がないのならね
ところでこれってJoinとは何の関係もないよな?
>>146 単一の値を保持するだけなら一時テーブルじゃなくて変数を使うほうがいいかも
1) SELECT @sum_num := sum(foo) FROM T1 GROUP BY ... ;
2) UPDATE T2 SET bar=@sum_num WHERE ... ;
同じコネクションで発行すれば覚えててくれる。
149 :
146:04/10/26 11:36:08 ID:DK8n0e0z
質問の意図が不明確だったようですので、コードで例を示します。
仮にMySQL 4.0 でサブクエリが使えたとしたら、このように書ける
であろうと思われるのです。
-- TABLE_B の INCOME を SUM して、その値を TABLE_A の同じ USER_ID の
-- レコードの SARALY フィールドに 0.7 倍してセットする。
UPDATE TABLE_A A
JOIN
(
SELECT
USER_ID
, SUM(INCOME)
FROM TABLE_B
GROUP BY USER_ID
) B
USING (USER_ID)
SET
A.SALARY = B.INCOME * 0.7
MySQL の UPDATE は JOIN 句が使えるので便利ですが、結合したい内容に
グループ演算があると、とたんに不便になります。
何かうまい方法はないでしょうか?
150 :
146:04/10/26 11:42:33 ID:DK8n0e0z
訂正です。すみません。
× , SUM(INCOME)
○ , SUM(INCOME) AS INCOME
>>143 スレ違いじゃないけど、おまいさんプログラマーには向いてない。
替わりはいくらでもいるので替わってやれ。
152 :
143:04/10/27 01:55:47 ID:???
>>151 自分でもそう思います_| ̄|○ デザイン担当で採用して
頂いた筈だったんです……。
母子家庭なので、幼子抱えて中途採用してくださる会社なんて
そうそうある訳がなくって、やっとの思いで採用して頂いた
会社なんで、「やれ」と言われた事には食いついて行く覚悟です。
昨夜はスレ汚してすみませんでした。
お母さんの替わりはいない。
基本的なSQL文くらい、まとめてあるサイトでさらっと覚えれないときついぞ。
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ |
彡、 |∪| | J
>>143 / ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
新しい DB が /var/lib/mysql 下につくられるのを /home/hoge/.db や
/home/cvsroot 下につくりたいんですかどうやればいいんでしょうか?
ま、「英語が読めない」というのは、「英語を読む気がない」という意味以外の何者でもないがな。
ま、「韓国語が読めない」というのは、「韓国語を読む気がない」という意味以外の何者でもないがな。
ま、「北京が読めない」というのは、「北京語を読む気がない」という意味以外の何者でもないがな。
ま、「空気が読めない」というのは、「周りの空気を読む気がない」という意味以外の何者でもないがな。
北京が読めない?
英語は、使われている文字もなじみがあるアルファベットだけだし、曲りなりに何年か学校でならってるわけだし、技術文書は難しい表現なんてほとんどないし、英和・和英のサイトはたくさんあるし、読めば読める。
>>160 当然!当然!当然!当然!当然!当然!当然!当然!当然!
当然!当然!当然!当然!当然!当然!当然!当然!当然!
当然!当然!当然!当然!当然!当然!当然!当然!当然!
当然!当然!当然!当然!当然!当然!当然!当然!当然!
一人で使ってたらトランザクション必要ないよね?
一人ならMySQLが必要ない
膨大な量のエロペグの整理に mysql を使おうと思います。
そうすることで他人に容易に漏の財産にアクセスできなくなるし( ゚д゚)ウマー
169 :
NAME IS NULL:04/10/27 21:04:52 ID:+mjtUbe2
マスタの停止なしに
InnoDB形式のテーブルでレプリケーションが
狂ってしまった場合、復旧させる方法はありますか?
MyISAM形式では、テーブルのファイルコピーで無理やり整合性を
保っていたのですが、InnoDBでも可能でしょうか?
>>167 1人で複数プロセスで接続してりゃいるよ。
同時接続が1つで、その接続ごとに前後の関連性がいらなけりゃ、必要なし。
>>167 間違えたときにロールバックできるのが便利といえば便利。
4.1正式リリース
4.1.x 系初の安定版、4.1.7 リリースしますた
サブクエリage
176 :
NAME IS NULL:04/10/28 04:40:54 ID:2+mfln94
4.0.21から4.1.7に移行したんだが、
かねやんが接続出来なくなりました。
4.1.*からパスの変更がなんたら〜と書いてあるので
それかなと思います。
多分passwd=NULLなら大丈夫だと思うんですが...
177 :
NAME IS NULL:04/10/28 04:48:46 ID:2+mfln94
パスを設定しなければ、接続可能でした
178 :
T:04/10/28 05:03:15 ID:6+EbDy7N
MySQL(Ver 3.23.55)を使ってます。
2つのテーブルAとBのいくつかのフィールドを同時に
更新したいのですが、Update構文で2つのテーブルを内部結合して
一発で更新なんてことはムリなんでしょうか?
実際エラーになったんですが・・・
各テーブルの更新を順番に別個に実行したとすると、クエリーAが成功した後、
万一クエリーBが失敗した場合に、クエリーAの更新をキャンセルすることが
できないため、なんとか一発で更新処理を実行したいんですが。。。
MySQLのバージョン4あたりからCommit./Rollbackとかが使えるように
なってるらしいんですがMySQLのバージョンアップは考えておらず...
最初のクエリーの実行を一時的に保留にして、両クエリー成功時のみ更新を
反映させるなんて方法はないものでしょうか?
こういうケース、皆さんはどう処理されているのでしょう?
どうぞお知恵をお貸しください。
よろしくお願いいたします。
マルチするのならマルチしますと書け
829 ナマエ:T メル: ヒヅケ:04/10/28 04:46:02 ID:d4m97dka
PHP+MySQLでウェブアプリを作成中です。
バージョンはPHP4.2.2、MySQL3.23.55です。
mysql_query()で2つのテーブルAとBのいくつかのフィールドを同時に
更新したいのですが、いろいろ試してみても方法が見つらず困ってます。
まず、mysql_query()では一度に一つのクエリーしか実行できないですよね?
で、各テーブルを別個に更新するクエリーAとクエリーBをそれぞれ順番に
mysql_query()で実行したとして、クエリーAが成功した後、
万一クエリーBが失敗した場合に、クエリーAの更新をキャンセルすることは
できないでしょうか?
MySQLのバージョン4あたりからCommit./Rollbackとかが使えるように
なってるらしいんですがMySQLのバージョンアップは考えておらず...
最初のクエリーの実行を一時的に保留にして、両クエリー成功時のみ更新を
反映させるなんて方法はないものでしょうか?
苦しまぎれにUpdate構文で2つのテーブルを内部結合して一発で更新、
なんて方法も試してみましたが、これもエラーに。
この方法もやっぱりムリなんでしょうか?
こういうケース、皆さんはどう処理されているのでしょう?
ちょっとMySQL板寄りの質問かもしれませんが、PHPのコードでなんとか
できる部分があればどうぞお知恵をお貸しください。
よろしくお願いいたします。
>>178 素直にMySQLをバージョンアップさせろよ。
バージョンじゃなくてInnoDBを使っているかが問題だと思うけど>トランザクション
3.23.xでもInnoDBを使ってれば使えなかったっけ?
正規化どうやんの?
>>181 その通り使える。InnoDB以外のトランザクションをサポートしてるタイプでもね。
しかし、バージョン依存性とか高度な(と言っていいのか?)問題じゃないだろうと
大半の人は予想してるので。
InnoDB使うのに再コンパイルが必要なら、バージョンをあげても手間はかわらんでしょ。
いきなり4.1系や5系へあげるならともかく。
4.1にしてかねやん接続できなくなった
4.1はなぜか文字化けが・・・
UTF8にすると一部だけ文字化けと多少改善されるが
UNICODEのマッピングではSJISは文字化けするし、
MS932がないようなのでUTF8は使えないし
4.0にもどそう
って検索すると4.1は文字化けたくさんひっかかって
化けるのが普通らしいですね・・・
ヴァヂョンを4.0.20から4.1.7にしたら
既存のテーブルのvarcharフィールドが
勝手に切りつめられたよ!
気をつけれ!
>>188 メジャーバージョンを上げるのにchange logも読まんのか?
その調子じゃバックアップもとってなかったりしてw
コード指定の話やVARCHARの話は、前々から散々パラ
気をつけることと、MLに出てる話題なんだが…
191 :
NAME IS NULL:04/10/28 23:03:29 ID:Zhqr6LfP
何らかの計算結果をDBに書き込むプログラム(VCで)を作りたいのですが、
GetSystemTime(&s_time);
year = s_time.wYear;month = s_time.wMonth;
day = s_time.wDay;
mysql_query(mysql, "insert into weight values(0, year, month, day)");
としてもDBには「0 NULL NULL NULL」としか記録されていません。
つい2,3日前にmysqlを使い始めたばかりで本やネットで調べてみても
よく分かりませんでした。
どなたかCの変数をDBに記録する方法を教えていただけないでしょうか?
あとDBは以下のように作りました。
mysql> create table date_info(
id int(2),
year int(4),
month int(2),
day int(2)
);
よろしくお願いします。
>>191 MySQLの初心者以前に、プログラミングの初心者?
"insert into weight values(0, year, month, day)"という文字列が
引数に与えるつうことは、int型で設定されてるフィールドに"year"とかの
文字列を指定することでしょ。
"insert into weight values(0, 数字, 数字, 数字)"という文字列になるように
自分で引数を組み立てる。
>>190 MLおわないとだめな状況だと普及は難しいね
mysql.exeによるコマンドラインSQLがインストールした状態だけでは
まったく動かないってのはかなり問題だよね
もちろん1バイト文字はきれいに通るけどSJISはだめ
namesやらcharactersetやら設定して初めて動くというのがイマイチ
今まではmysql.iniでデフォルトキャラクタセット設定だけでよかったのにね
194 :
NAME IS NULL:04/10/28 23:33:04 ID:Zhqr6LfP
>>192 ありがとうございます、そうなるようやってみます。
ネットで検索してたらmy_query()の中に
+とか\とか@とかの記号が入ってるのを沢山見たので
何か上手い方法があるのかと思ってました。
>>193 いや、ChangeLogにもUPGRADEの注意事項にも勿論書いてある。
それが具体的に、特に日本語圏でどういう影響があるか/ないかは
MLなり(このスレも同様)を見て調査すべきだと思うよ。
196 :
NAME IS NULL:04/10/29 04:20:42 ID:8LEG2pvJ
カラムの型で True or False が無い?みたいですが
int(1) で 0 or 1 としたらいいでしょうか?
>>196 TINYINT(1)か、MySQL4.1以降ならそのシノニムであるBIT/BOOL/BOOLEAN。
ただし今後シノニムでなくなる可能性もあるので、BIT/BOOL/BOOLEANが
使える環境で、代わりにTINYINT(1)を使うのはやめるべき。
またTINYINT(1)を使うならあくまでもTINYINT型であることを念頭に置いた上で使う。
(TINYINTに0/1でなく、FALSE/TRUEと入れるなってこと。)
なんでわざわざ使いにくくしたんやろ。
文字コードのこと?
まあ、Perl5.6的な過渡期ってことでしょ。
ちなみにmy.cnfに設定できたと思うけど>標準の文字コード
4.0まではデフォルトキャラクタセットが有効になってたようだけどね
それにJDBCがうまくつながる?
201 :
NAME IS NULL:04/10/29 19:57:35 ID:kdxbtcrv
WinXP で
4.1.4-gamma -> 4.1.7 バージョンアップしたいんですが
そのまま上書きインストールでOK?
それとも一度アンインストールしてインストールしないとだめですか?
既存のテーブルは、どちらの場合でも残りますか?
mysql.user とかも
>>201 多分大丈夫だけど一応 mysqldump でダンプとっとき。
文字化けが心配なら MySQL Administrator でバックアップ
するのが簡単。
203 :
NAME IS NULL:04/10/30 16:15:29 ID:oXG7AAAj
いまみんな4.1ためしてるの?
そして苦労している・・・らしい
4.1.x。早めに試用してたけど、リビジョンアップの度に気が抜けない。
やっと正式版になったんだからこれからでしょ>4.1
漏れは半年は控える
4.0.22 揚げ
MySQL4.1.7でまた文字の扱いが変わってない?
utf8で定義したテーブルに文字をインサートしても、
ASCIIに変換されて格納されているような気がするんだけど。
4.1.4まではそんなこと無かったけど。
某所の日記見て思ったが4.1.7はUTF8以外はWin、Linux環境ともに
日本語は通らないそうだ
必ずUTF8経由での文字変換していてそのマッピングがSJISとEUCだけだから
一部文字列が通らない
具体的にはMS932とかそのへんだね
サーバーもクライアントもUTF8設定ならキャラクタ変換が起こらないので
クライアント側であらためて好きな文字コードに変換するしか今のところないみたい
バイナリ型はエスケープで失敗するしね
同じテーブル構成で同じデータが入っていて同じインデックス張って同じSQLを発行してるのに
何故かデータの取得時間が数百倍も違ってくるんだけど何が問題だと思います?
問題のSQL以外ならどちらも大して時間は変わらないんですけど。
片方は(速い方)はWindows版のMySQL(4.1.7)で片方はlinux版のMySQL(4.1.1)です。
MySQLのバージョンによる違いですかね?
あと違いと言えばインデックスは後付けで張ったんで
張る順番が違ってますがそれが関わってるんですかね。
どうもインデックスがうまく使われて無い様子。
>>212 >どうもインデックスがうまく使われて無い様子
と思うならちゃんとEXPLAIN掛けてみなよ。
不適切なインデックスが選択されてるか、
データレイアウトの違いが影響してるのかもな。
データレイアウトで数百倍差が出るなんて聞いた事ないけど
遅い方のDBを一度ダンプ&リストアしてみたら?
>>213 >と思うならちゃんとEXPLAIN掛けてみなよ。
EXPLAINの結果は出力される順番が違うだけで内容は同じです。
順番が違うのが怪しいんですがそれ以上のことは分からず・・・。
>遅い方のDBを一度ダンプ&リストアしてみたら?
なるほど、明日試して見ます。
序に両方のダンプリスト出力して比べてみます。
単にindexこわれてるんじゃないか?
myisamなら、myisamchkで直してみるのがいいかと。
216 :
NAME IS NULL:04/11/04 03:42:54 ID:5UN14Vng
4.1.7つかってます。
MySQL monitor でマルチバイト文字の入力ができなくて困ってます。
(表示はできます)
ビルド時のconfigureオプションはこんなかんじです。
--with-extra-charsets=all
--with-charset=ujis
--with-collation=ujis_japanese_ci
--enable-thread-safe-client
--enable-local-infile
--enable-assembler
--disable-shared
my.cnfのキャラクタセットはこんなかんじです。
default-character-set=ujis
ほかになんか指定しないとダメですか?
索引を作りたいんですが、日本語で詰まってます。
A、B、Cなどアルファベットはwhere name like 'a%' などで簡単にできたんですが
日本語はどうしたらいいんでしょう?
できれば、アルファベット以外のひらがな、漢字、カナはまとめて出したいんですが…
すみませんがご教授くださいまし。
>>218 「読み」が入っているカラムを作成すべし。
220 :
218:04/11/05 01:16:31 ID:???
>219
それはあるんですけど、ほとんどの名前が英語なので
読み順ではあまり意味がなく…
where != [a-z]みたいなことができたら、と正規化で検索してるんですけど
うまくいかないのです。
where name not like 'a%' && name not like 'b%' …とするのは最後の手段で(´・ω・`)
> 正規化で検索
それは正規化とはいわない。
カラムって後から追加変更削除できますよね?
正規化スクリプトとかありますか?
MySQLは4.1シリーズには外部キー制約が付いてるの?
225 :
218:04/11/05 11:08:19 ID:???
>222
そうそう、それです。
一応思い通りの結果になりました。
SELECT * from ほげー where name REGEXP "^[^a-z]"
正規表現って難しいなぁ。
226 :
NAME IS NULL:04/11/05 18:01:29 ID:LTKHZU61
--innodb_file_per_tableでInnoDBを使用したいのですが、この場合、各容量の
指定やautoextendの記述はどこで行えばいいのでしょうか?
innodb_data_file_pathでテーブルごとにパスを書いていく事になるのでしょうか。
よろしくお願いします。
>>223 黙って走らせれば魔法のように正規化してくれるスクリプトかwww
228 :
NAME IS NULL:04/11/06 20:38:52 ID:PBfFMddg
mysql-4.0.20d-win と win2k
を使って自鯖でmysqlを勉強し始めたのですが
create table test (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(40),
place VARCHAR(20),
cboot VARCHAR(20),
server VARCHAR(20),
receive VARCHAR(1),
send VARCHAR(1),
unique (Name,server),
time TIMESTAMP(14) NOT NULL
);
このテーブル構成で
select * test where server in ('myserver') and send is not null;
これを実行すると
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 'test where server in ('myserver') and send is not null at...
というエラーメッセージがでてしまいます。
http://www.daito.ac.jp/~ikeuchi/webdb/mysql_6.html ここなどをお手本にいろいろやってみたのですがうまくいきません。
多分'test where server in ('myserver') and send is not nullあたりの
構文エラーだと思うのですが何処が間違っているのか分からない状態です。
アドバイスいただけないでしょうか。
よろしくお願いします。
fromが抜けてるぞ。
昔漏れも良くやったミスだなぁ。
あとまちがえてformと打ったりもしたし。
230 :
228:04/11/06 21:11:04 ID:???
>>229 ...目から鱗でした。
ありがとうございました。
3.23.58のシステムで、文字コードはsjisを使ってて半角カナや
鰍ェ入っているデータを扱っています。
サブクエリが使いたいので、4.1.7を試しているのですが、
どうも default-charaset-set=binary にするのが、一番
問題がなさそうです。この状態で使い続けて問題はな
いのでしょうか。sjisにしないと何か制限とかありますか。
OSはLinuxで、PHPでプロクラムを作成しています。
>>231 文字然とした扱いが出来ないだけで、現状では特に問題ないと思う。
binaryにしただけですべての機種依存コードがきれいに動く?
mysqlとmysqladminしか試してないけどset names 使ってもうまく動いてくれないような
234 :
NAME IS NULL:04/11/07 11:03:42 ID:PHli9ia2
MySQL4で"check"という名前は使えないのですか?
create table test(check int);
でエラーになってしまいます。MySQL3では使えたのですが。
ほかのSQLに対応したりしたときとか、テーブル名の干渉が怖いのでもうちょっと複雑なテーブル名にした方がいいかも・・
236 :
NAME IS NULL:04/11/07 12:32:47 ID:Nb1wMtfh
4.1.7(Windows) にバージョンアップしたら mysqlc でパス付きのユーザにログインできなくなった
ERROR 1251: Client does not support authentication protocol requested by server;
consider upgrading MySQL client
パス無しのユーザや mysql だと大丈夫なんだけど
>>236 それはマニュアルみればわかるが
おーるどぱすわーどとかいうところだな
>>231 格納文字列がSJISだとすると「能」とかエスケープと勘違いするようなやつらが
binaryは動かないぞ
まぁSJISといってもMacSJISとかMS932とかいろいろあるのでそれらを解決しようと思うと
UTF8しか選択肢はないけどね
239 :
哲:04/11/07 16:31:58 ID:+X2k5N2v
すいません、質問です。
検索結果から他のページへリンクするようにするにはどうすればよいのでしょう?
例えば車について検索して出てきた結果の中から車の名前をクリックすると
詳細のページへ飛ぶようにしたいんです。
検索はできるんですがリンクを作れません。
データベース内にhtmlのように<a href= と書く方法ではできませんでした。
大学の卒業研究でシステムを作っていてこれが解決しないと先に進まないので
どなたか教えてください。お願いします。(先生は教えてくれませんでした。)
それはMySQLと関係あるのかね
portsからphpMyAdmin入れたらXFree86勝手に入れられた…
卒業しなくていいんじゃないかな。
>>242 当たり前なのか…portsってすごいな。
それ、メージャーなパックなの?
>>245 RPMとかと違って依存関係をきちんと解消してくれるからね。>ports
phpMyAdmin→PHPに依存→Xのフォントが依存なのかな。
個人的にはPHPをXに依存して構築してるのはちょっと。
# と思う人はソースで入れるだろうという前提だから良いのか
248 :
哲:04/11/08 02:03:32 ID:zqOtCizr
一応MYSQLを使ってやっているので・・・。
どなたか分かりませんか?
>>248 まずは「こんにちは、世界」からやり直しだな。
>>248 みんなわかってるんだが、君の質問は「パソコンの電源の入れ方教えてください」
レベルなので返答のしようがないんだよ。
とりあえず留年して来年またがんばってくれたまえ。
251 :
哲:04/11/08 02:48:49 ID:zqOtCizr
そうですか、確かに初心者なのでこんな感じのレベルでしか質問できないので
すいません。データベース関連の本を調べればのってますかね?
もし良いHPがあれば自分で勉強しますので教えていただけないでしょうか?
留年は勘弁です。
>>250 データベースの本ではなく、htmlの本と、CGI(perlかPHP)の
本でもよみなさい。
DBは単なるデータの箱なので、WEBの基本はスクリプト言語ですよ。
まあ、PHPが資料も多いしいいんじゃないかな。MySQLとの親和性高いし。
PHPでページ作って「ここにこういうデータを表示したい」と思ったときに
そのデータをDBから引くようにするわけですな・・と言っても
わかんねんだろうなあ。
253 :
哲:04/11/08 04:21:45 ID:zqOtCizr
>>252 ありがとうございます。
PHPで作ってますよ。なんとなくおっしゃってることはわかります。
今自分で調べていて思ったんですけど今のDBが.txtの形式のファイル
なんでhtmlのリンクタグが貼れないんですかね?ファイルをhtml化すればOKってことですかね?
見当違いですか?
>>253 たぶんだが、先生が言いたいことは、君が手動でやろうとしているファイルをHTML化するのを
PHPなりPerlなりJavaなりのプログラム言語を使いなさいということだ。
「今のDBが.txtの形式のファイル」
「ファイルをhtml化すればOK」
( ゚д゚)・・・
>>253 とんでもないDQN大学なんだろうな。
俺も大学で卒業研究の最中だけど、キミとはレベルが違うよ。
いやいやどんな大学でもDQN学生はいるよ
> 一応MYSQLを使ってやっているので・・・。
は嘘だったわけで。
>>256 そうは言ってやるな。
理系でこんなことやってたらDQN通り越して糞だが、
マネージメント系の3流大なら、WEBマーケティングの資料作りとしてはありだろう。
>>239 多分、もう教わってることだから教えてくれないんだろうなあ。
マジレスすると、検索してデータベースから車名とリンク先のURLを取ってきて
<a href="リンク先のURL">車名</a>
のような形にPHPで出力してやればいいんじゃないかな。
これ読んで分からないようだったら、だれかに丸ごと作ってもらうしか無いような気がする。
261 :
NAME IS NULL:04/11/08 13:25:04 ID:1ffGKKeU
Navicat2004体験版のCrack方法教えてください。
どっかのレジストリキー削除?
それともどっかにファイルがあるの?
262 :
哲:04/11/08 18:40:54 ID:zqOtCizr
ありがとうございます。
データベースをいじるのではなくPHPプログラムの方を
いじればいいってことですね。また調べてやってみます。
263 :
NAME IS NULL:04/11/11 18:14:19 ID:KH+YZ+nV
MySQL3.23からMySQL4.1へ変更(MyISAMを使用)したのですが、パフォーマンスが2割ほど落ちてしまいました。
機能が増えた分やはりVer4は遅くなったのでしょうか?
>>263 ウチだと全体のパフォーマンスは向上したぞ。
具体的に何処が引っかかってる?設定や構成は変えた?
265 :
NAME IS NULL:04/11/11 19:26:47 ID:KH+YZ+nV
>>264 そうなんですか。向上したのですか。
2割落ちたってのはちょっと極端でした。1割ちょっとぐらいですね。
とりあえずナチュラルな比較を先にしようと思ったのでMySQL3も4も
似た設定にしてあります。
同じハードウェアを2つ用意してどちらも新規にredhatとMySQL入れて
テストデータを入れて業務で使用している3時間ぐらいのバッチ処理の
時間で比較しました。
でも、「パフォーマンスは向上した」と聞いて安心しました。もう少し勉強します。
なにか参考になる本やページがあったら教えて頂けないでしょうか。
パフォーマンスを語るときは定量的に評価して下さい。
いち個人の感覚でいわれても困ります。
同じバッチ処理で1割〜2割って言ってるジャン
268 :
NAME IS NULL:04/11/12 04:30:46 ID:0gL1R2AY
mysqlのデータベースをupdateする方法がよくわからないんだけど、
基本的にdeleteしてinsertするってのが一般的なのでしょうか?
いや、普通に UPDATE 〜 SET 〜 っしょ。
270 :
NAME IS NULL:04/11/12 15:48:36 ID:5GQT+j8/
mysqlで非常に負荷がかかるSQLなどを自動的に停止したり、
sleepのままずっとのこってるプロセスを自動的にkillする方法はないでしょうか
>>268 それは一般的ではないです。そんなわけないです。
>>270 sleepしてるプロセスはtime outの設定で殺せます。
272 :
NAME IS NULL:04/11/13 12:11:28 ID:Ptm84pkt
例えば今日8時から17時30分まで働いたとか登録していき、
月計で何時間働いたとか分単位まで求めたいのですが
このような時間を入れるフィールドはどのデータ型にするのが一番よいのでしょうか?
>>268 お前おちょくってるの?
しかもマルチだし
>>272 datetimeに決まってるだろ、少しはマニュアル読め。
277 :
NAME IS NULL:04/11/14 08:53:32 ID:1mWZicRn
>>276 ありがとうございます。先月発売されたやつなんですね!
MySQL4.1もちょっと書いてあるようなのでさっそく買います。
2日前秋葉原に行ってMySQLの本探して「MySQL全機能リファレンス」って
の買ったんですけどね(MySQL4.1のことも書いてあったので)。
オライリーのそれがあるとは気付かなかった(>_<)
>>277 俺は「実践ハイパフォーマンスMySQL」買った後で「MySQL全機能リファレンス」買ったんだが、
全機能リファレンスに実践ハイパフォーマンスのほとんどの内容が載ってた。
載ってなかったのはジャーナルファイルシステムあたりの指摘くらい。
どっちも高かったからちょっと鬱。アマゾンだとこういうとき困る。
ところで3.23と4.1の性能比較ってのはどっちにも載ってないよ > 277
本家のマニュアル嫁
マニュアル、分かりにくくない?
本家の癖に間違いあるし、
自分たちのマイナーチェンジをマニュアルに反映しきれてないし。
>>280 和訳が追いついて無いだけではないか?英文はそうでもないぞ。
あと英文だけのコンテンツも多いな。
MySQLが同時に使うindexが1つだけだとは知らなかったよ
283 :
NAME IS NULL:04/11/14 23:47:57 ID:1mWZicRn
>>279 本家のマニュアルは読んでませんね。辞書片手に一生懸命よんでも結局ほとんど
英語の意味が分からない。でもこれは私の英語力の不足なので仕方ない(>_<)
日本語訳のものも「これ日本語?」ってな日本語なのであんまり読む気にならな
いですね。
その点、雑誌などでちゃんと値札がついているものは普通の日本語なので分かり
やすいです。苦労してネット探すより本買ったほうが早い事がよくありますね。
284 :
NAME IS NULL:04/11/14 23:50:33 ID:1mWZicRn
>>278 ありがとうございます。今日買う予定だったのに仕事が長引いちゃって買えずじまい。
でもほとんど同じ内容ならあまり買う必要ないですね。
今度立ち読みして決めます。情報ありがとうございます。
>>282 そんなわけで、複合インデックスの張り方でクエリーのスピードがかなり変わる。
explain必須。
# 環境によってexplain結果が違うのが気になるけど。
結局Mysql4.1.7でコマンドラインからsjisで日本語入力に成功した人いないんだね
287 :
286:04/11/15 19:12:17 ID:???
ソースからコンパイルしたmysqlでの話ね
4.1.7のWindowsはどうやってもいまのところまともな動作はUTF8のみっぽい
mysql.exeはもちろんコマンドライン動作なのでsjis(というか正確にはMS932)
バイナリ型を使おうにもエスケープが通らないので無理という落ちが
UTF8にするとマッピングの問題でクライアントがUnix系とWindows系とで「〜」とかが
あわなかったりするので注意
クライアントがUnixかWindowsか固定されていれば問題なし
ほかにはJavaで扱う場合EUC-JPのマッピングが機種依存文字が扱えないので
DB鯖がWin以外でもujisは選択肢にははいらないけどね
まぁ〜まともに動いてるのはUnix系かつクライアントがPHPあたりのみっぽ
となりのPostgresがマッピング含めてきれいに動いてるのがむかつくくらい
いまのMysqlはひどい状況
一応sjisにしろujisにしろUnicodeのマッピングは間違ってはいない
ただ、現実的でない汎用sjisだったりとかバイナリ型がエスケープ通らないとか
DB性能以前に根本的なところがだめすぎ
せっかくの新機能もこれではねぇ
>>288 >となりのPostgresがマッピング含めてきれいに動いてるのがむかつく
激しく同意。
でも個人的にはC-S間のエンコード変換はまだ入れなくて良かったんでは?
と思うんだけどね。手前でやるから素直に素で通させろと。
rpmで入れたものはsjisはいるのにソースから入れたものはsjisはいらない不思議
291 :
NAME IS NULL:04/11/16 00:54:17 ID:fR8JsP8E
MySQL 4.1.7 で ujis にして
ブラウザ→CGIでPerl→MySQL
って感じで
開発はWIN XP上でMySQL動かして、
運用はLinux上でMySQL動かしてます
どんな場合に文字コードに関係する問題が出るんでしょうか?
今のところ、大して使われてないのもあって問題なさそうですが
機種依存文字を使った場合に文字化けするんでしょうか?
よくいわれるのが
(1)能力〜
という文章をいれてみればわかる
sjisのエスケープ周りで能力がこけて
機種依存の(1)とかがこけたり
UNICODE経由で文字変換するもんだからそのマッピングの問題で
〜がつかえなかったり
すべて違う原因でこの3つが化けるのが面白い
とりあえずWindowsふくめてシンプルなDBがほしいときはMySQLは4.0まで、
サブクエリー使いたい場合などでWindows以外の環境用意できるならPostgres
という方針になりますた・・・
4.1のばかぁ
294 :
NAME IS NULL:04/11/16 15:48:07 ID:41fyWNyc
MySQL + windows の環境でやっている人ってそんなに多いですか?
開発がWindowsなのでスタンドアロンで完結できるMysqlは便利だな
それくらいしかPostgreSQLにたいしての利点ないしな
296 :
NAME IS NULL:04/11/17 00:18:48 ID:F+eo0Pgl
MySQLのレプリケーション機能を使っている方
下記に関し使える点、使えない点がありましたら教えてください。
@負荷分散
A対障害用
それかなりのスレにはられてるから無視で
300 :
NAME IS NULL:04/11/17 14:09:29 ID:g21dnorJ
auto_incrementは順に+=1になっていきますが、+=2にしたり+=3にしたりするには
どのようにしたら良いのでしょうか?
301 :
NAME IS NULL:04/11/17 16:01:37 ID:ZjYybsxp
凄く初歩的な質問なんですが、MySQL4.0.22をインストール後に起動すると
ERROR 1130: Host 'localhost' is not allowed to connect to this MySQL server
C:\mysql\bin>mysqladmin ping
をすると、
mysqladmin: connect to server at 'localhost' failed
error: 'Host 'localhost' is not allowed to connect to this MySQL server'
と帰ってきます。
>>11と似た感じだろうとtelnet localhost 3306をしても切断されます。
考えられる原因はなんでしょうか、お願いします。
302 :
NAME IS NULL:04/11/17 16:16:29 ID:6YOGlWum
FreeBSD 4.10にMySQL4.1.7をソースからインストールしようとしたら、
make: don't know how to make std_data/client-key.pem. Stop
とコケるのだが、これについて何か知ってる人いない?
# std_dataのMakefileいじるしかないのかなぁ。
>>300 方法はない。でもソース改変でいいなら簡単だよ。
+2とか+3必要?
取る時に2倍,3倍にして使うか、必要なら
それ用のフィールドを設ければ良いと思うが。
>>301 localhost=127.0.0.1(ループバックアドレス)になってないとか。
localhostという名前が引けないとか。
305 :
NAME IS NULL:04/11/17 18:39:56 ID:g21dnorJ
>>303 ありがとうございます。ソース改変しないとだめなんですね。あきらめます。
>>301 ping localhost はどうなる?
>>295 PostgreSQL 8.0からWindowsネイティブサーバ版が出るし、
アーカイブログやテーブルスペース、バックグラウンドライタ、
Point In Time Recoveryなどの機能面の強化も著しいし、
俺はもう完全に乗り換えモードに入ってる。
問題は今すぐにGOする仕事だ
cygwinなんつーお遊びにしか使えないものやベータはお話にならないからね
そりゃそうだ
なんでwindowsOSなんか使ってるの?
なんでwindows使っちゃいかんの?
LAMPが一蓮托生な一つのシステムだから。
なんだ馬鹿なのか。
>311
Linux+Apache+Mod_perl+PostgreSQLでLAMP
314 :
NAME IS NULL:04/11/18 13:42:34 ID:nloSln8t
すごく基本的なことなのですが質問させてください。
A |B |
--------
aa|piyo |
bb|hoge|
cc|pico |
aa|uyo |
というテーブルで、Aをグループ化して、そのレコード数を調べるときに
select A,count(A) from table group by A;
と
select A,count(B) from table group by A;
というやり方の違いを教えてください。本などでは、下の方のやり方が
載っているのですが、結果はどちらも同じなので、どっちを使っても
良いのでしょうか?
>>314 逆に「差があるかもしれない」と思った根拠を
400字詰め原稿5枚以上で聞きたい。
316 :
314:04/11/18 14:01:10 ID:???
>>315 もしかしたら、自分の想像以上の場面で差が出てくるのではないかと
勝手に妄想していました。違いはないのですね。
ありがとでした。
317 :
301:04/11/18 16:05:33 ID:???
>304
hostsには登録されており、Apacheを起動して
http://localhost/にアクセスすることはできます。
>305
Pingとおります。
ちなみに、Win2000でWinMySQLadminでは緑ランプが着いています。
以前、MySQLが起動しなくなったりして何回か再インストールをしました。
今回も再インストールすれば直るかもと思いましたが、それだとまた同じ現象が発生した場合に困る為、原因を特定したいのです。
よろしくお願いします。
>>307 一応予定では年内にリリースされるそうだ。
319 :
NAME IS NULL:04/11/18 23:07:25 ID:TqeAQMiJ
mysqlではフィールド名に日本語が使えますが、本当に使って大丈夫ですか?
linux + MySQL4.1なのですが。
大丈夫と書いてあるわけだから大丈夫だとは思うのですが慣習としてなんと
なく不安で。
使わないに越したことないんじゃないの?
321 :
NAME IS NULL:04/11/18 23:24:06 ID:TqeAQMiJ
友人に頼まれて作ってるんですけど、ほとんど知らない業界のものなので、
専門用語が多くてフィールド名に使う英語名が考えにくいのです。
読みのままローマ字綴りで書くと長くなって見づらいしからどうしようかな〜
なんて思ってたら日本語が使える事を思い出したので聞いた次第です。
やっぱり日本語使うのは邪道ですかね^^;
バグの元、それにプラットフォーム変わったりしたときに心配
323 :
NAME IS NULL:04/11/18 23:56:47 ID:qq0SemYe
>317
Host 'localhost' is not allowed to connect to this MySQL server
「localhostって名前のホストには接続権限がない。」と読めます。
セットアップがうまくいっていないのではないでしょうか?
4.1ならUTF8固定でマルチバイトキャラクタつかえるぞい
UTF8固定なんでフィールドと文字コードが違うとすごいことになるが
もともと4.1はUTF8以外はイマイチな動作のためにその点は問題はないか
sjisやujisが実用的になるのはいつだろう・・・
325 :
NAME IS NULL:04/11/19 10:38:40 ID:Z3YyFWuE
UTF8とeucだとパフォーマンス変わりますか? OSはfedora core2(eucへ変更)ですけど。
UTF8だとeucより日本語のバイト数が増えると聞いたのでまだ使わないように
しているんですけどもう時代はUTF8に移行してる?
326 :
NAME IS NULL:04/11/19 13:30:12 ID:IRmtO8nv
4.1でSJIS使うと不具合があるのですか?
今は4.0系使っているのですが、アプリレーションによってSJISとEUCが
混在しているので、デフォルト文字コードがSJISのサーバーとEUCのサーバーを
別に用意して運用しています。
4.1からは、DB毎、テーブル毎に文字コードを指定できると
オンラインマニュアルに書いてあったはずなんですが
うまくいかないのでしょうか?
文字コード変換がUNICODE経由しているのはいいんだけど
SJISのマッピングがいわゆる汎用SJISしかない
機種依存文字やMS932特有のマッピングとかがだめってことさ
mysql.exeとかコマンドラインベースでキャラクタセットの設定をいじればわかるが
いろいろとおもしろいほど問題が出る
mysql.exeやmysqldump.exeがデフォがUTF8になってるのは
いろんなキャラクタコードがはいるのである意味助かってるが、
コマンドラインがMS932とかEUCとかだとそのまま使えない罠
毎回set namesとかするのもたるいし、更新系SQL発行とSELECT系とで
キャラクタセットの設定をいじらないとだめというあほさ
これはバイナリをつかいつつSJIS系の問題になりやすいエスケープ処理を
回避するという裏技的なものだが、こんなのやっていては実用ではないさ
UTF8がフルサポートしている環境ならLinuxでもWinでもまったく同じようにいける
お手軽なMysqlは4.0までで死んだと思っていい
いまだ改善されるような気配はまったくなし
>>327 > 機種依存文字やMS932特有のマッピングとかがだめってことさ
MySQL ABに文句言わなきゃ永久に改善されない。
現状でもヨーロッパのマイナーなエンコーディングは豊富だ。
奴らの眼中にはMS932なんか入ってない
329 :
host の照合:04/11/20 08:53:23 ID:FkeuyIou
接続の段階で、まずホストとユーザの組み合わせが
照合されます。このときホストとして %.ore.no.domain
とか ore.no.domain.% (これはあんまり実用できでない)
のように記述できますが、DNS で逆引きして照合している
ということなのでしょうか?
select TA.i, a, b, c from (select id, a from A) TA left join (select id, b from B) TB on TA.id=TB.id left join (select id, c from C) TC on TA.id=TC.id
ってSQLを発行する際にTA,TB,TCが共に空の結果を返すと
空のテーブルに空のテーブルをleftjoinし更に空のテーブルをleftjoinすると言う形になると思いますが
漏れの環境だと必ずMySQLが死にます。これはMySQLのバグでしょうか?
環境はLinux版4.1.1です。
Windows版の4.1.7だと問題は無いんですけどね。
331 :
326:04/11/20 11:50:33 ID:7DJGkDc+
>>330 Linuxも4.1.7に上げろよ。上げてOKならバグが修正されたんだろ。
4.1系は4.1.7未満は開発中のバージョンだからな
動かなくてもあたりまえとしか
>>332 それが出来るなら苦労はしないんですけどね。
もし、上げても直らなくてオマケに今までのシステムも動かなくなったじゃ洒落にもなりませんし。
全て自分の責任で出来るならいいですけどそうじゃ有りませんし。
>>333 そんなもんなんですかね・・・。
テスト環境すらないのか。素晴らしい会社だなw
>>334 じゃあ何のためにWindows版の4.1.7で検証してるんだよw
まだ正式リリースじゃなかった4.1.1をアップデートする気も無いのに
本番で使うなよ。
4.1.1にあわせて作って4.1.7にあげて動かなくなったら・・・か
珍しい人もいたもんだな
正式リリース後の4.1.7からたとえば4.1.8へあげるのを躊躇するとかならわかるが
4.1.4あたりまではバグ大量にあった希ガス
340 :
NAME IS NULL:04/11/20 17:06:04 ID:YR3w1XCn
>>336 開発用のローカルサーバですよ。
まさか本サーバ使って開発するわけにもいきませんでしょ。
>>337 漏れに言われてもなぁ。
漏れが入れたわけじゃないし元から有ったシステムだし。
別に4.1.1に合わせたわけでも無いし。
同じDBで他に動いてるシステムも有るし。
342 :
NAME IS NULL:04/11/20 17:16:53 ID:FkeuyIou
>>341 > 漏れに言われてもなぁ。
> 漏れが入れたわけじゃないし
そりゃこっちのセリフだ…
>>342 つまりここでバグ報告しちゃいけないと言うことですか?
ここでバグ報告してもらっても治す事が出来ないから言うなら本家に言えと。
>>343 アドバイスにイチャモンしかつけないなら来なくていいよ。
バグ報告つったって4.1.1なんかのバグ報告されても意味ねえし。
とりあえず、開発と運用の環境は極力合わせろよ池沼。
>>344 Linux版4.1.7では再現しないバグだと言えるのですか?
再現テストして問題なかったんですか?
ハイハイ終了。
バグの話は最新版で出たときだけ言ってくれ。
テストしてみようとすら思わないんですね・・・。
そうですか。そんなもんですか。
>>345 テストはお前の役目だ。
他人にリグレッションテストなんかさせるな。
>>348 出来るならやりますけど簡単には出来ませんし。
とはいえ全く何もやってない訳じゃないですよ。
元のSQLはもっと長いもので出る場合とで無い場合が有りましたが
そこから簡単に100%再現する再現方法を導き出しましたし。
それからWindows版ではテストしましたし。
へんなのがわいてるな
>>349 なんでWindows版でテストするんだ。
Linux版の4.1.7でテストしろ。
>>344以降は同一人物でしょうがまともな返答も出来ずに人格攻撃を開始したようなのでこの辺りにしておきます。
とりあえず、貴方の助言に従って開発の環境をLinuxには出来ませんが同じバージョン使うようにします。
既に配布されて無いようなので見つかりませんが、もうちょっと探して見ます。
馬鹿は自分が馬鹿なのに気付かず、一人だと思い込みたいみたいですが、
私は4.1.1持ってないので、
>>330が330のせいで動かない可能性を否定
できないので責任問題のあるような仕事なら、ご自分でご確認ください。
s/一人だと思い込みたい/相手が一人だと思い込みたい/
↓キチガイが去ったので通常モードで↓
357 :
NAME IS NULL:04/11/20 18:41:38 ID:Tc+71QnP
幾らなんでもこの過疎板で同じ口調で即レス返しておいて
同一人物じゃないは通じないと思うが。
>>330 そんなクソSQL発酵する方が悪い。
358 :
NAME IS NULL:04/11/20 18:42:18 ID:Tc+71QnP
s/発酵/発行/
>>357 回答してしばらくは更新チェックぐらいする。
>>341 >
>>336 > 開発用のローカルサーバですよ。
> まさか本サーバ使って開発するわけにもいきませんでしょ。
>
ならそのサーバにLinux入れろよ。頭悪いね。
>>297のレプリケーションについてですが、
質問が大雑把過ぎるので、もう少し細かい部分なら色々答えられるかも。
うちは、10台くらいで同期させてる案件を2つほど抱えています。
負荷分散についてはそれなりの効果があります。
スレーブ側は、障害が起きたら切り離してしまって、
障害から復旧したら、元に戻すということが可能です。
この場合、システム全体が停止することはありません。
ただし、マスター側が死ぬと、更新できなくなって、
システムを停止せざるを得ないでしょう。これについては
何かほかの方法で冗長化するべきです。
なので、マルチマスタレプリケーションが待ち望まれます。
なんか無茶言ってる奴が居るな
ローカルサーバとは言え勝手にLinuxをインストール出来る環境なんてなんてうらやましい。
開発・テスト環境と本番環境が全く違うなんていう底辺の会社から
すれば羨ましい話かもな。
>>364 もうね。アフォとしか言いようが無いね。
勝手に入れるのがまずければ管理者に許可をとれよ。
仕事で必要なんだろ?
開発環境とテスト環境を揃えないこととどっちが大事か
少ない脳みそでちょっとは考えろよ。
ほんとに使えない野郎だな。
類は友を呼ぶ
アホな会社にはアホな人材しか集まらないものです
Linuxかどうかよりまず
4.1.1でいれて4.1.7で動かないと困るからいれないってのがあふぉだな
スタンドアロンで開発はVMWareやVirtualPCでLinuxいれて開発ってのがふつーじゃねーの?
369 :
364:04/11/21 16:10:14 ID:???
>>366 管理者に言っても「必要無い」って言われて終わりなんですよ。
絶対に必要なものじゃ無いとまずムリポ。
必要性を言っても仕舞いには貴方みたいな感じでキレ出すし。
>>332-370 職場でVMware買って貰うときに、説得材料として使わせていただきます。
372 :
364:04/11/21 16:53:26 ID:???
>>370 貴方なら解ると思うけど、池沼にはどんな説明したって理解しないんだよね。
もう説明がどうとかの問題じゃないよ。
何も状況を知らないくせに全てを理解してるつもりで偉そうなことを吐き散らす。
自分の考えは全て正しくて違う意見を言われるとそれがムカつく。
ムカついたら例え自分の考えが間違ってるのに気が付いたとしてもゴリ通す。
しかし言ってる事は違うが言動とかホント貴方にそっくりだな。
ヘボコーダーによるヘボ会社の紹介なんかどうでもいいよ。
次いこ、次。
>>372 まんまお前に当てはまることに気付けよw
次いけって
376 :
364:04/11/21 17:00:41 ID:???
責任云々が発生する仕事なら、本番環境と出来るだけ条件を揃えたテスト・
開発環境は絶対必要なものだろ。
へぼ会社に勤めてますとか、口べたで管理者にうまく説明できないんです、
なんてお前の自己紹介なんかどうでも良いよ。
378 :
364:04/11/21 17:10:33 ID:???
>>377 こう言う勝手な決めつけをするところもそっくりだ。
つぅかさ、ローカル鯖でさえもlinux入れさせてもらえない鯖缶が存在するのかね?
無職の脳内構築か?
>>378 絶対必要なら入れてもらえるんだろ?
絶対必要なテスト開発環境が入れてもらえないのはなぜ?
お前が自分でヘボ会社だor管理者に必要性を説明出来ないって告白してるんだぞ?
決めつけでも何でもない。
381 :
340:04/11/21 17:42:24 ID:DcSriv8W
何度もすみません・・・。コマンドに日本語を入力したいのですが、どなたか
分かる方いらっしゃいませんか?初心者です。
すばらしい展開になってきましたね。
アホが居るアホな会社にいなくてよかったという感情が湧きあがります。
383 :
364:04/11/21 17:48:39 ID:???
>>380 無くても開発できる=絶対必要ではない。って考えなんだろ。
俺にとって開発にとって絶対に必要でもそいつがそう思わなければ絶対に必要なものにならない。
>お前が自分でヘボ会社だor管理者に必要性を説明出来ないって告白してるんだぞ?
と勝手に決め付けてるわけだ。
一度もヘボ会社に勤めてるとも管理者に必要性を説明出来ないとも告白した覚えは無いんだが。
>>383 俺は380でもなんでもないが、君にいる会社は
あきらかにヘボ会社だ。すくなくとも管理者はヘボだ。
それをせっとくできない君も糞エンジニアだ。
転職でもしたら?
エンジニアじゃねーよこんなやつw
ただのコーダーだ。
>無くても開発できる=絶対必要ではない。って考えなんだろ。
無くてトチったから2ちゃんなんかに泣き付いてんだろ?
>俺にとって開発にとって絶対に必要でもそいつがそう思わなければ絶対に必要なものにならない。
それを説明し説得するのもお前の仕事だろ?
結局管理人が糞なのかorお前の説明がヘボいんだよ。
決めつけじゃなく明らかな事だろ。
>>379 漏れ派遣でいろんな会社に出向いた事有るが結構有るぞ。
IT系の企業じゃない小さいところは大抵そう。
鯖菅っツーかパソコン管理者がいるだけみたいな。
364の会社もそんなところじゃないかと予想。
387 :
364:04/11/21 18:08:02 ID:???
>>385 >無くてトチったから2ちゃんなんかに泣き付いてんだろ?
いつ泣きついたよ?別に助けなんか求めていないが?
>結局管理人が糞なのかorお前の説明がヘボいんだよ。
終始管理者がクソでお前みたいな奴と言ってるだけなのが理解出来ないのか。
>>386 本番鯖とは別にちゃんとした開発環境も無かったの?
あるなら別に改めてLinux入れる必要ないし。
>>387 そう書いてるのに決めつけとかいってる馬鹿がいるから再度書いてるだけだろ。
ダメだコイツ。日本語が読めてない。
管理人が糞なんじゃなく、お前の説明が多分悪いんだよ。
364は、ここのみんなが「そうだね。管理者がクソだね」と言ってくれれば
問題が解決するとでも思ってるのだろうか?
っていうか、じゃまだからもうこないでください
>>364
クソだと言う管理者に従わざるをえない364はそれ以下だということに
364自身が気づいていないということで収束だな
>>388 派遣先によるけど基本的に開発環境は自分のノーパソですよ。
自由に使えるパソコンすらないってのは良く有るからね。
>>389 最初にお前が書いたのは「ヘボ会社だor説明がヘボ」だろうが。
それが「管理人が糞or説明がヘボ」に変わってるんだが?
管理人が糞とは言ってるがヘボ会社だの説明がヘボは認めて無いぞ。
勝手に条件を変えてるんじゃねーよ。そう言うところも糞管理人とそっくりだ。
>>391 若輩者だから仕方ない。
とりあえずここで騒いでいるウチは当面の問題を忘れられる罠。
まぁ一言で言えばマ板でやれってこったな
こんなクソ話題をageちったよ...
397 :
NAME IS NULL:04/11/21 19:01:23 ID:K3EUR4J0
うちの会社なんて開発環境、会社のG3/233
テスト環境、レンタル鯖。
鯖屋さんから電話かかってきて、テストはローカルでやってからうpしてください。って何度も怒られてます。
いや会社の話とか、かなりどうでもいいんだけど。マジで。
スレ違い甚だしすぎる。
>>393 そんな管理人がのさばってる時点で糞会社だろ低能
>>393 仕方ない?一生コーダーのまま終わりそうだなお前w
>>392 テスト環境もないの?ノーパソで開発してそのまま本番置き換え?
釣りなのかw
道理で…。あんなアホが実在するわけ無いわな。
401は釣りへのレスじゃないから見逃してくれ。
わかったからクソ管理人もヘボコーダもマ板池
>>401 だから派遣先による。
テスト環境どころか鯖すらない場合も有るし最悪ネットに繋がって無い事も。
でもテスト環境無いのは多いな。テスト環境が運用パソコンなのが大抵。
# あくまでまともな鯖管理者の居ないところの話な。
>>381 MySQL以外では日本語使えるの?
FedoraはデフォでUTF-8だったと思うけど、そこら辺は大丈夫?
407 :
366:04/11/21 20:09:19 ID:???
>>364よ。
管理人が糞で困ってるんなら、他の上司に「相談」してみろよ。
これこれこういう理由で本番機とテスト環境を揃えて検証したいのですが、
説明が下手で管理者の理解が得られません。ってな。
それでも芳しくないなら自分の説明方法なり自説の根拠を疑ってみるんだな。
今日はもう電源落として、頭冷やして、明日にでももう一度このスレを読んでみ。
情報を小出しにしたり、いらん事をいって話をややこしくしている部分に
きっと気づくから。
社会人なら(若輩者でも)「引き際」ちうもんをわきまえんとやって行けんよ。
>>407 だからマ板池といっとろうが。
お前も364と同程度だというのに気付け。
人に説教たれる前に自分も「引き際」をわきまえろ。
>>408 オマエモナー
放置しろよ。どいつもこいつも。
まあ馬鹿をマ板に輸出する必要もないしこれで終わりで良いよ
また流れも読まんと噛み付く池沼が沸いてきたな。>408
死んで鯉や。てかお前が逝け>マ板
勝利宣言も出たところでこれにて終了
-------- 以下通常モードで -------
414 :
340:04/11/21 20:31:30 ID:???
>>406 はい、他では日本語使えていますです。
入力自体を受け付けないのです、画面に表示もされないのです。
>>414 コンソールで接続して、\s+return した時にClientとServerのcharactersetは
どうなってます?
なんでいまさら開発途中のバージョンできくかね
417 :
340:04/11/21 21:02:57 ID:???
>>415 ええと、ujisになっています。
こんな調べ方があったのですね(。、。
うーん、てかどーにかして 4.1 系でちゃんと ujis 使えんのかなぁ…
「MySQLdj」とも書けないじゃないか…(´・ω・`)
419 :
NAME IS NULL:04/11/21 23:23:47 ID:onXcRjQh
MTでMySQLを使う環境を構築するために個人鯖をたてましたが、
MySQLとPerlを入れただけではだめなようです。
PerlからMySQLを利用するためのモジュールが必要なようです
が、ご存じの方はいらっしゃいますか?
>>418 eucのunicodeマッピングで機種依存文字はいってないはずだから無理だね
UTF8ならいけるが
>>419 perlスレで聞いた方が早いと思うけど、MTってなに?
Mobable Type のことだと思われ。
DBI と DBD::mysql は入ってるのかな。
200000行40MB弱のテーブルをエクスポートしようとすると、かなりの時間がかかって
しまうのですが、この程度のテーブルをサクサクとバックアップとったりするのって、
どれぐらいのスペックが必要なんですか?
現在の鯖
Pen4 2.8Ghz + Mem1G + MySQL4 + Linux
現状どれ位掛かって、サクサクというのがどれ位なのか書いてくれ
426 :
424:04/11/22 12:58:48 ID:???
phpMyAdminから、「エクスポート」→「SQLでエクスポート」で
1時間以上たってもいっこうに吐き出し終わらないので中止。
おそらく8時間くらいかかりそうな感じでした。
単純なバックアップ自体は、table.MYDなどのデータを保存して
おけば良いのですが、同じ環境でないと使えなさそうだし、SQL
なりCSVなりでバックアップしておきたいのです。
20万行を1時間弱くらいで吐き出せれば満足なのですが…。
>>426 OSもデータベースエンジン(MyISAMかInnodbか)もネットワーク環境経由か
ローカルかも書いてないので何とも胃炎が。そりゃむちゃくちゃ遅いね。
たったの20万行でしょ。
MySQL AB純正のMySQL Administratorでも使ったら?
Celeron1.7GHz/Mem512MBの鯖で、10万行50MBのデータが
10分掛からず落ちてくるが。
書き出しはすぐにおわるが
読み込みのほうがネックだけどな、うちは
>>426 基本的にはどんな環境でも互換性があります>table.MYD
問題がある可能性があるのは、マルチバイトのデータベース/テーブル名
を使っている場合(ま、変換すればいいんだけどさ)。
あと、バージョンダウンする時かな。。。
なんどやっても、色々な国からダウンロードしても
17.2MのじPファイルしか作成されない。
なんじゃこりゃーーー
35.7MB mysql-4.1.7-win.zip Japan からHTTPで
正常にダウンできましたが?
当方 ADSL
そういや知らないで使っていたがMySQLってそんなに肥大化してたのか
Postgres8のWin版15Mちょいだ・・・
435 :
330:04/11/23 01:47:53 ID:???
鯖菅さんに4.1.7を同じ環境に入れてもらい(うpしたわけじゃない)
それでテストしてみたところ、、、死にました。
結局4.1.7でもダメでしたね。
>>435 TA,TB,TCが共に空の結果を返すって、一致するidが無いって事?
Windows版では再現しないということだし、MySQLのバグといえるか
どうかは微妙な感じでは?
そのバグが再現するようなダミーテーブルをアップしてもらえれば、
テスト環境を持っているLinuxユーザに追試してもらえるかも。
俺はあいにく4.1.7は使っていないので協力できないが。
437 :
330:04/11/23 03:08:04 ID:???
>>436 create table A (id int, a int);
create table B (id int, b int);
create table C (id int, c int);
select TA.i, a, b, c from (select id, a from A) TA left join (select id, b from B) TB on TA.id=TB.id left join (select id, c from C) TC on TA.id=TC.id;
な感じで。
>>434 機能増にあわせて確かにサイズが大きくなる傾向はあるが、
そんなに増えてないよ。単体で大体4MB
Windowsのアーカイブが大きいのはWin9x/NT/組み込み版/Debugとかの
バイナリーが全部入ってるため。そのバイナリーも4.0以降だと
InnoDBサポートがデフォになってるんで、もっとMyISAMだけとかに
限定してビルドすれば、もちっと小さくなる。
組み込みのlibmysqldが3.5MBだしね。
439 :
297:04/11/23 06:13:19 ID:???
>>362 レスどうもです。
>うちは、10台くらいで同期させてる案件を2つほど抱えています。
>負荷分散についてはそれなりの効果があります。
具体的にはどのように10台に負荷分散していらっしゃいますか?
バラバラなスレーブにクエリーを分散して使うという感じでしょうか?
>マスター側が死ぬと、更新できなくなって
マスターが壊れた場合スレーブのデータがおかしくなるということは有り得ますか?
また、マスターが死んだ場合、スレーブのどれかをマスターと置き換えるのは容易でしょうか?
>>437 言い出しっぺなので自宅のK6(450MHz+384MB)に入れてるFedora Core 2に
MySQL 4.1.7を入れてテストしてみた。
結果は空テーブルにクエリーを発行しても Empty set(0.00 sec)が返って
きたし、データを入れればそれなりの結果が返ってきたよ。
参考まで。
441 :
NAME IS NULL:04/11/23 12:21:21 ID:aZGVuwDG
今まで文字コードはEUCで開発してきましたが
やはりこれからはユニコードにしていかざるを得ないのでしょうかね。
流れとして。
んなこたーない
結局 --default-charset=binary で configure してやったら機種依存文字も通るんじゃないの?
>>438 PostgresだってGUIツールのpgadminとかはいってるし
トランザクションをいまさらきるほうがおかしいでしょ
>>443 とおらないね
いろいろやるとわかるが
UTF8以外はだめぽ
一応抜けみちはあることはあるが普通に今までどおりの使い勝手は維持不可能
>>426 phpMyAdminは使っていないのだが、phpMyAdminが参照している
php.iniのmax_execution_timeは何秒になってるの?
ただタイムアウトしてるだけだったりして。
>>445 1時間以上掛かってもまだ終わらん(動いてる)
だから、制限なし(無限)っぽいよ。
447 :
NAME IS NULL:04/11/23 19:31:18 ID:Iig+CHiN
初心者っぽい質問ですいません。
MySQLのプロセスのIndex Reorganization(インデックスの再構成)は
可能でしょうか?
可能
>>424 データがバイナリでないなら、selectコマンドを
そのままリダイレクトしてファイルに保存すればいい。
450 :
447:04/11/24 07:23:53 ID:ppEFKtpR
結局
>>330の件はクエリーを発行しているスクリプト(かプログラム)に別の問題が
あって、MySQLのバグうんぬんは関係無いということか?
報告よろしく
>>330
452 :
NAME IS NULL:04/11/24 22:03:46 ID:oWcKwjV+
旧サーバから新サーバに移行しようとしています
両方ともLinux、MySQL4.1.7を入れてWEB->perl:DBIを使って参照、更新します
旧サーバでは問題なかったのですが、新サーバにperlスクリプト等を移して使ってみたら、
テーブル名の日本語の箇所で、SQLsyntaxエラーだと言われるようになりました。
(executeでエラーが返ってくる)
漢字コードはEUCにしてあります。
また、新サーバ上にtelnetしてmysqlコマンドでSELECTしてみるとちゃんと取得できました。
考えられる原因と対策はどんなものがありますか?
よろしくお願いします。
テーブル名とかそういうところはUTF8固定だったと思ったが
454 :
NAME IS NULL:04/11/25 00:22:44 ID:2VCziK/6
すいません、質問させてください。
現在Unix機でPHP+MysqlでDBを構築しており、データをsjisで保存しています。
mysqldumpでデータを吸い上げ、他のパソコンで実行しようとしたところ、
文字コード関係のエラーがでてできませんでした。
mysql --default-character-set="sjis" db_name < dumpfile
をやってみてもどうしてもエラーが出てしまいました。
nkfでsjisからeucに変換してもエラーがでました。
元のデータベースの文字コードを返るには負担が起きすぎます。
このような場合のいい解決策はないでしょうか。
お願いします。
455 :
NAME IS NULL:04/11/25 01:20:39 ID:QcMDhItZ
特定のフィールドの中身の文字列の一文字目だけを
取り出すにはどんな風にしたらいいのでしょうか?
mysql_fetch_arrayして取り出したものをsubstrするしか思いつかない・・・
>>454 どういうエラーか分からないと、
助言しようにもなにも言えないってことに気づかない?
あんまりわかってないヤツは phpMyAdmin 使ったほうが遥かに早い解決をみる気がする
459 :
330:04/11/25 07:05:45 ID:???
>>451 まっさらなDBに直接>437打ち込んでも死ぬからスクリプトとかの問題じゃないかと。
ただ、環境には依存しそうですね。
問題の出る環境は詳しくは知らないけれどTurbolinuxの64bitマシンとらしいです。
>>459 おいおい、32bit版と64bit版を一括りにしないでよ・・・・
そこまで行くと俺には検証しようがないんで、ユーザ会のMLに
投稿してみてはどうかな。
461 :
NAME IS NULL:04/11/25 10:29:16 ID:rC31gwri
454のエラー、俺の推理はこう。
UNIXのMySQLとパソコンのMySQLのバージョン違いで、
Create Table CHARACTER SET=.. の"CHARACTER SET"あたりで
文法エラーしてるって落ち。
>>454 最近 mysqldump → mysql table < sql でエラーになったな。俺も。
移行先のmy.cnfのキャラセットを全部移行元に合わせて
mysqld起動しなおしたら普通に入ったけど。
俺っておばか。
ちなみにLinux本番環境 → Windowsローカルテスト環境の移行でした。
463 :
454:04/11/25 17:37:11 ID:2VCziK/6
適切な質問ができず、申しわけありませんでした。
mysqldumpしたデータを他のUNIX機で実行するとsyntax errorが出てしまうのです。
dumpファイルの中でエラーが場所は日本語の出現する場所です。
正しく文字コードの変換がされておらず、SQL文法的におかしなデータになってしまっているのだと思います。
とりあえず462さんのおっしゃっていることを調べてみようと思います。
464 :
462:04/11/25 18:08:35 ID:???
俺の時はsyntax error
\/・
だかなんだかってエラーだったような気がする
ちゃんと覚えてないけど。
TurboLinux+MySQL4.0 の MyISAMテーブルで
select count(*) from tablename where search_text like '%入力値%'
というクエリーを実行しました。
検索対象の件数は10万件程で、
search_textフィールドはtextです。
PHPのスレで聞いたところ、
AthlonXP2400 メモリ1GB
というサーバースペックで 0.05秒以下で返ってくるという話でした。
しかし私の環境では、1.7秒ぐらいかかってしまいます。
サーバーのスペックは
Pentium3 1.13GHz*2 768MB
で、確かに非力な感じなんですが、
いくらなんでも遅いような気がします。
my.cnfの設定かなんかで、
なにかやらかしてるんじゃないかと考えたのですが、
パフォーマンスアップのアドバイスをお願いします・・・。
天気がいいのでちょっとドラクエ買ってきます
467 :
& ◆LMRaV4nJQQ :04/11/26 20:29:12 ID:RcXyH7zp
>>465 search_text に入っているデータ量に差があるのでしょう。
468 :
NAME IS NULL:04/11/27 20:27:27 ID:DSzJjH40
初歩的な質問なのですが、
PHPのように++などのupdateでインクリメントを指定することは
出来ないのでしょうか?
selectで数値を調べて、1足して、updateするという仕組みだと
冗長なのと、処理が重なったときに誤作動をしそうなので、不安です。
469 :
NAME IS NULL:04/11/27 21:03:29 ID:DSzJjH40
UPDATE persondata SET age=age+1;
でいけたんですね。。。一人解決。失礼しました。
WHERE 句無しの UPDATE 文なんて怖すぎるぜ
471 :
NAME IS NULL:04/11/27 22:50:16 ID:NefkKUCX
他のデータベース、mdbにあるマスターテーブルを参照、更新したいの
ですが、自分のデータベースmydbにリンクを張る様なことってできますでしょうか?
Unixでいうところの、ln みたいものです。権限などは全てあります。
# ln -s mdb.master_t master_t
みたいな感じです。参照だけなく、insertなども行いたいのですが、そも
そもそういう機能ってあるのでしょうか?質問ばかりですみません。
>>471 他のDBが、他のdaemonの下にあるのか、
いまのdaemonの下にあるのかで話がまったく違うと思います。
473 :
NAME IS NULL:04/11/28 10:34:22 ID:7LOVBWil
>>471 同じサーバ上で動く複数のMySQLサーバが互いのテーブルデータを
共有出来るかって質問だと思うが、
質問文の曖昧さからいってあんまりよく分かってなさそうだから、
『できない』とだけ答えておこう。
もしもMySQLサーバが一つしか走ってなくて
DBをまたいでアクセスしたいのなら
SELECT * FROM mdb.master_t, otherdb.master_t;
など、DB名つきでテーブルを指定すればよい。
これは基本中の基本。
474 :
471:04/11/28 12:01:36 ID:P00JXczy
すいません。説明が足りませんでした。
デーモンは同じで、
create database mdb;
create database mydb;
とデータベースを二つ作っています。権限も与えています。
たしかに、mdb.master_t とすれば参照出来るのですが、mydbから
見て、master_t という名前で、select,insert,updateを行いたいん
です。うーん。無理ですかね。
475 :
NAME IS NULL:04/11/28 12:14:47 ID:7LOVBWil
>>474 君がどっちのDBのmaster_tのつもりで
SQLにmaster_tと書いているのか、
君の気持を汲んでくれるDBMSはまだ存在しない。
夢の中でがんがれ。
476 :
NAME IS NULL:04/11/28 23:22:11 ID:eXzmoii3
たまに
>>476のような書き込み見るが、こういう香具師は毎回スレ立てする人は同じだと思っているんだろうか
>>476みたいなカキコミは950過ぎてからじゃないと意味ないな
479 :
452:04/11/29 22:03:17 ID:pGsR8eM/
>>452 ですが
問題解決できなかったので、テーブル名、列名を英数字にしようと思って
ためしに
create table tes (
GroupID smallint(1) unsigned NOT NULL auto_increment,
GroupName varchar(100) NOT NULL default '',
PRIMARY KEY (GroupID)
) ENGINE=MyISAM DEFAULT CHARSET=ujis;
としてテストしてみましたが、GroupNameが文字化けします
select * from tes で
GroupID GroupName
1 品質保証&CS推進
2 ビジネス推進&販促
3 サポートサービス
となるはずが
GroupID GroupName
1 ?????????
2 ?????????
3 ????????
となります
perlは
$db = DBI->connect('DBI:mysql:needs:localhost', '***', '****');
$sth = $db->prepare($in{'SQL'});
こんな感じです
お手上げ状態なので、何か手がかりでもあれば知りたいです
480 :
452:04/11/29 22:05:46 ID:pGsR8eM/
書き忘れましたが、ちなみに
DBI は INST_VERSION 1.46
DBD::mysql は INST_VERSION 2.9004
です
>>479 データ自体の文字化けについてはほんのすこし過去をさかのぼればいくらでもでてくる
MLでも多少でてくる
4.1.7では完全にばけないようなDBは難しいかもしれない
4.0.*はさくっといく
mysql.cnfはどーなってる?
483 :
452:04/11/30 00:39:09 ID:bbv+nqA1
my.cnf には
[mysqld]
[mysqldump]
[mysql]
で
default-character-set = ujis
を記述しています
mysqlコマンドからは、日本語テーブル名を使って、内容も文字化けせずに使えます。
perl DBI の方に問題があるのかな〜?
でもWinXPと旧サーバのLinuxでは普通に使えてるのが謎
んじゃ、 Perlのバージョンとか?
旧サーバーと新サーバの違うトコ差分とってちょーよ。
485 :
NAME IS NULL:04/11/30 16:45:30 ID:eXiRTqmP
あるテーブルと全く同じ構成のテーブルを新しく作りたいのですが、どのように
行えばいいのでしょうか?
とりあえず現在はshow create tableで見てテーブル名を変えて新しく作る
というやり方をしているのですが、なにか良い方法はありますでしょうか?
(MySQL4.1.7)
>>485 create table hoge select * from foo;
487 :
452:04/11/30 22:57:36 ID:Vqc40nkj
旧サーバ 新サーバ
OS Vine Linux Miracle Linux
MySQL 4.1.7 4.1.7
perl 5.8.4 5.8.5
perlスクリプトは同じ
MySQLはRPMでインストール
旧サーバのperlはCPANのシェルかなんかでinstall bundle?したら
自動的にインストールされた
新サーバのperlはソースからインストールしました
DBI DBD::mysqlは両方とも
perl -MCPAN -e shell
install DBI
install DBD::mysql
でインストールしました
mysqlコマンドからは正常にみえるので、データベースには
ちゃんとEUCで格納されていると思います。
perlスクリプトはEUCで書いてあります
UTF-8にしてみても、問題解決はしませんでした
どうもperl DBIとMySQLの間で食い違っているような気がします
perl DBIでMySQLにコネクトする時に、漢字コードを指定したりできますか?
手持ちの動画やら画像やらを全部MySQLで管理したいんですが
入力がめんどい。入力支援アプリとかありますか?
queryごとjcodeか何かで文字コード変える。
ってか、テーブル名をascii文字だけに変えろ。
MYSQL-CSEについて質問です。
OSはWindowsXP SP1です。
勉強しようとローカルにWindowsのMySQLをインストールしました。
インストールしたMySQLのserver versionは4.0.22-nt。
で、CSEが使いやすいって聞いたのでインストールして
つなげようとしたら強制終了が出てしまうのは何か設定が足りないですか?
DOSプロンプトからmysqlインストール先までパス通しているので
C:\>mysqlでmysqlが実行できるのは確認できました。
CSEにはlibmySQL.dllを書き換えろとあったので
mysql/binとmysql/lib/optは書き換えてみたけれどやっぱりcseで落ちちゃう。
ODBC設定も必要ですか?
でもMySQLインストールしたのにドライバがないって言われてるんだけど
これはこれでいいのですか?
#MYSQL-FRONTでは接続できました。なんで?
491 :
NAME IS NULL:04/12/01 07:58:29 ID:1UhTQCiA
>>489 テーブル名と列名をascii文字だけに変えても
>>479 の問題がおきています
PHPは使ったことないですが、PHPからどうなるか試してみようと思います
>>488 お前まだできてないのか?
ずいぶん前から同じこと逝ってるみたいだが
質問させて下さい。
/usr/local/
にmysql-4.1.7をインストールしました。
./scripts/mysql_install_db
までは上手く行ったようなのですが、
/usr/local/bin/mysqld_safe --user=mysql &
とうつと、
tarting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
041201 23:01:33 mysqld ended
と出てしまいます。
どうすれば起動できるのかがわかりません。
ちなみに/var/run/mysqld/mysqld.pid ファイルは存在しませんでした。
>>490 ODBCドライバを入れて、ODBCでつなぐ。
MySQL4.x系のlibmysql.dllのライセンスが、LGPLからGPLに変わった、という
話があって、cseは新しいlibmysqlには対応していない、っぽい。
##googると作者のメールがでてくる。
>>493 力になれるかどうか分からんが。
/etc/init.d/ だっけ、sysv系のサーバ起動設定があるよな。
そいつ使うとどうなる?
496 :
493:04/12/02 00:18:55 ID:g8vNek+S
497 :
493:04/12/02 00:35:52 ID:g8vNek+S
>>495 変なレスしてましたスマソ。
/etc/init.d/mysql start
だと、そんなファイル無いって言われます。
498 :
490:04/12/02 00:46:11 ID:???
「libmsqlのライセンスだけ何とかならんのかい。不便じゃ。」
と、MySQL ABにメールしてみた。
LGPLな、libmysql.dllのラッパーがあるならそれに対応してもらえばいいの
かもしれんが。
>>493 >/usr/local/bin/mysqld_safe --user=mysql &
sudo /usr/local/bin/mysqld_safe --user=mysql &
とかは?
500 :
499:04/12/02 01:27:32 ID:???
ごめん。
sudo /usr/local/bin/mysqld_safe --user=mysql
と打って、パスワードを入れてC-z、bgかな。
501 :
493:04/12/02 02:06:52 ID:g8vNek+S
# sudo /usr/local/bin/mysqld_safe --user=mysql
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
041202 02:03:38 mysqld ended
だめぽな感じです。(´Д⊂
/etc/my.cnf
の設定をどこか直さないと動いてくれないのでしょうか…。
ちなみにmy.cnfの中身はこうです。
# cat /etc/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
502 :
493:04/12/02 02:09:52 ID:g8vNek+S
/var/log/mysqld.log
の中身はこうです。
041202 02:03:38 mysqld started
041202 2:03:38 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
041202 2:03:38 [ERROR] Do you already have another mysqld server running on port: 3306 ?
041202 2:03:38 [ERROR] Aborting
041202 2:03:38 [Note] /usr/local/libexec/mysqld: Shutdown complete
041202 02:03:38 mysqld ended
503 :
499:04/12/02 02:44:20 ID:???
>>501 mysqlというユーザーは作ってある?
WindowsとかMac OS X のユーザーじゃなくてMySQL(-u rootで起動)で
作成されたユーザーのことだよ。
とりあえず、mysql -u rootで起動して、
use mysql
で、
select * from user;
でUserのコラムにmysqlがなければユーザーが作成されてないよ。
>>502 で、そのエラーメッセージに書かれていることは確認したの?
505 :
493:04/12/02 09:57:31 ID:g8vNek+S
有難うございます。
どうやらrpmでインストールした古いmysql3.*が
完全になくなっていないからかな?と
思ったのですが、消してもやっぱり同じ状態でした。
エラーメッセージの内容を確認して再度ガンガッテみます。
507 :
NAME IS NULL:04/12/02 19:56:11 ID:uu+XnjC1
商用のサイトでMySQLを利用するのは
ライセンス違反ですか?
>>507 別にそれだけで違反にはならない。違反になるケースは無償でもありうる。
今のライセンスだと基本的に誰かのために作ってあげたらGPLのほうはだめ
コマーシャル買えってことだが、クライアント多いと大変だろうなぁ
サーバーライセンスとクライアントライセンスわかれてないからね
C/Sシステムは大変だということだ
510 :
452:04/12/02 22:02:00 ID:U/vd5Q34
PHPからだと日本語テーブル名でも、正常に問い合わせできました。
PHPで作り直し めんどくせ〜
商用サイトでMySQLは金がかかるってことだ
512 :
490:04/12/03 00:55:42 ID:???
>>494 thx。おかげで接続時の強制終了からは逃れられました。
でもlibmysql.dllのせいかわからないけれど
日本語が見事文字化けしちゃいますね。
おかげで何のエラーがさっぱり。
とりあえずは先に進めそうです。
ありがとう。
商用サイトの場合は、自分で作るなら金はかからない。
他人のサイトをつくってやるなら、金かかる。 でいいのかな。
>>513 別に自分のためなのか、仕事として依頼を受けたかによって
ライセンスの規定に左右される訳ではないぞ。
ただ商用だとGPLだとやりにくいケースが多くて、
最終的には商用ライセンスを買うだろうから金が掛かるの流れ。
MySQLのライセンス違反サイトを探す
ロボットを作成中です
516 :
NAME IS NULL:04/12/03 10:56:35 ID:8QaFPAUM
mysqlを利用したスクリプトのソースは公開しないとまずいですか?
>>452 ちなみに、旧サーバから新サーバに接続orその逆だとどうなるの?
それとも、接続元はいっしょ?
>>514 結果的に自分ところで使うだけか、それとも他人が作ったかでそうなるはずだ
作者=使用者でなければライセンス購入が必要
なんせライブラリがLGPLのときからGPLライセンスのほうを使うと
すべて公開せよとか不思議なこといっていた会社だ
いわゆるLinux等の上で動くアプリはすべてGPLといってるのと同じで
さすがにみんなまもらなかったので収入がはいらず今ではライブラリもGPLに
まぁGPLがどういうものかわからずにMYSQLを使ってるところはありそうだ
>>452 あ、テーブル名が日本語なのか! うっかり見逃していた。
テーブル名はファイルシステム(ファイル名のエンコディングとか)に依存するので、
たぶんMiracleとVineでファイルシステムが違うんじゃないかな?
Vineでうまく行くのは運がいいだけのような気もするけど。
MLでも話題になってた。
ちなみにテーブル名を``でくくれば回避できる可能性もないことはない。
>>519 MySQLの項目名とかそういうのはUTF8固定
これがどういうことかわかるだろう
あと、環境のLANGがeuc-jpだったりutf8だったりとかかな。。
>>518 ・GPLラインセンスのMySQLをインストールしてよと依頼を受けた場合。
・GPLラインセンスのMySQLを利用したシステムの開発依頼を受けた場合。
共に別にコーマーシャルライセンスである必要はない。
先方がきちんとGPLを遵守すれば良いだけだ。
サーバは現状のライセンス体系で良いと思うが、
クライアントライブラリの体系や値段は何とかして欲しい。
Webアプリで使ってる場合は気にせんで良い様になったけど。
>>522 GPLを細かく理解している顧客がいればな
受託開発でソースはGPLになるので持ち帰ったりネット上にばら撒きますとか
そんなSIはいるのだろうか
4.0まではMysqlはそれなりに使いやすかったけど
4.1の問題の多さからもその辺考えるならPostgresにいったほうが楽だな
524 :
NAME IS NULL:04/12/03 14:40:03 ID:suEyEb2+
MySQLってTRIGGER使えるの?
実装されてない。と言うかViewとTriggerはさっぱりやる気無しな悪寒。
5.xよりさっさと4.1で日本語をちゃんととおるようにしる
528 :
NAME IS NULL:04/12/03 21:59:02 ID:Y2kchYKl
>>517 >>519 ApacheとMySQLは同じマシンに入っていて
perlからはlocalで接続しています
``で囲うのはやってみましたが、上手くいきませんでした
ファイル名はVineでもMiracleでもUTF-8みたいでした
まあ、時間的にも余裕があるし、PHPの勉強もしたいと思っていたので
PHPで作り直してみます
DBは早ければそれでよい。
データが逝かれたらそれで仕事が増えるしな。
社内SEは暇なんだよ。
俺が見てきた電算室は休みって何ですか?というところが多いけどな
とまると困るのに直接的に利益を生まないから人も増やさないし
結局過労で倒れたりやめていくやつばかり
531 :
NAME IS NULL:04/12/04 22:29:40 ID:Tc15mDNV
4.1Xのバージョンをインストールしたのですがwinmysqladmin.exeが存在せず
GUIからの設定ができません。。。
どこに消えてしまったのでしょうか。。
それは互換性のためだけにつかわれるやつで一応インストール時の設定でできるはず
ただし、反映される箇所が違うとかで結局使い物にならない
環境設定のGUIツールで設定してくれるよ
ただし、こまかいところはできないので結局手書きなんだが、
ツール起動するときれいに消されるので注意
あととくにWindows版は4.1.xは使わないほうがいい
Win版4.1.7で、テーブルのCHARSETはUCS2、サーバ-クライアント間はUTF-8で、
何の問題もなく使えてる俺は勝ち組でしょうか。
MySQL4.0.13-nt(Win)を利用しています。
Timestamp型はフィールド更新時に自動的に
更新時刻に値が変わりますが、
Date、Time、Datetime型でもフィールド更新時に
自動的に更新時刻を代入することはできますか。
>>533 Windows版で使うならUTF8だけが正解
Linux等でもUTF8が一番問題ない
MySQLDumpとかMySQL.exeとかすべてデフォがUTF8なおかげで
すべてがUTF8で動いているのなら問題ないけどね
しかもLinux等へもっていってもそのままインポートできるという利点あり
ただ、それだとコマンドラインでちょっとしたSQLうてないとか問題山積み
一度SQLをテキストエディタでUTF8で保存して読み込ませるしかない
対話ができないのがきつい
あとUTF8といっても「〜」とかのマッピングが環境によって違うからそのへんだけ気をつけるべし
PostGresはこのへん含めてちゃんと動くだけに離されてる感じが
つーか4.0までうまくいっていただけにへこむよなぁ
少なくともお手軽にWindowsでDBを試したいって人には
Postgres8のRCすすめるほうがまだましっていったい・・・
>>534 逆にMySQLで更新時に自動的に更新時刻が入るの?
それを知らなかったな…
>>593 っていうか別に4.0勧めりゃいいじゃん。
すみません、もし知っている方がいたら御教示ください。
MySQL 4.1
WindowsXP Home
ODBC 3.51 Driver
を使用しています。
Windows上のアプリで、ODBC接続によって接続をし、
VARCHARのフィールドをキーに検索すると
下記のエラーが返ってきます。
Illegal mix of collations (sjis_japanese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
同じSQLをコマンドライン上で行うと、正常な結果が返ってきます。
動作している場所は、サーバもクライアントも同じPCなのですが、
コマンドラインとODBC接続時でキャラクタセットとは変わるものなのでしょうか?
statusコマンドで各キャラクタセットを調べたところ、
Server・Db・Client・Conn.4項目ともsjisになっております。
sjisがまずいのでしょうか・・?
Postgres8なんてあったのか・・・
542 :
540:04/12/05 21:30:13 ID:???
MySQL 4.0にしました・・・
うまくいきましたのでコレで行きます・・・
543 :
NAME IS NULL:04/12/05 22:30:20 ID:igY4mK2i
MERGEテーブルを作りたいのですが、createの時にカラムを省略して、unionするテーブルと
同じ型にするにはどのようにしたら良いでしょうか?
普通のテーブルの場合、同じ型にするなら
CREATE TABLE test1 LIKE test;
で出来るので、似た感じで
CREATE TABLE test1 LIKE test TYPE=MERGE;
としてみましたがダメでした。
544 :
534:04/12/05 23:24:03 ID:???
質問があります。
MySQL4.0.13-nt(Win)を利用しています。
CREATE TABLEを使ってテーブル定義を行う時に、Datetime型のカラムには値が
フィールド作成・修正日時が自動的に入力されるようにしたいのですが、どのように宣言するのですか。
>544
datetimeはダメで、たしかtimestamp型を使うんでは?
ってかマニュアルに書いてあるよ
こんにちわ!
Windows版 mysql4.1+active perl5.6.1 で動かしてます。
$queryがおかしいときにperlが表示するエラーメッセージを押さえる目的で、
http://www.mysql.gr.jp/Manual/mysql-3.21.31/manual_Clients.html#Perl DBI Class
を参考に
$st = $conn->prepare("$query") || die $st=0;
if(!$st) { print "query error\n"; }
else { $st->execute ; }
のようにしてみたのですが、
DBD::mysql::st execute faild: Table 'test.hoge' doesn't exist at hogehoge.pl line XX
というエラーが標準出力に表示されてしまいます。
php+postgresだと @$st=〜; if(!$st) { ; } のように$stの前に@をつけることで回避できていたのですが、
mysql+perlだとどのようにすればいいのでしょうか?
よろしくお願いします。
ちなみに(わかるとは思いますが)、
546で書いたエラーは、データベースtestにhogeというテーブルがないのにhogeテーブルを引いた場合のエラーです。
548 :
NAME IS NULL:04/12/06 08:39:28 ID:FQpdTtdu
pgpoolのようなものは無いのでしょうか?
sqlrelayのような独自仕様APIに依存しないタイプが良いのですが。
550 :
NAME IS NULL:04/12/06 11:22:30 ID:KSX9Ub5e
た、たすけてください。
fedora core2+mysql3ではなんの問題もなく稼動していたのに
fedora dore3に変えたらmysqldが起動しなくなり「失敗」になってしまいます。
ふぇーどらを最初から再インストールしてみてもだめでした。
いろいろググって、試してみたのですが一向に解決しません。
どなたかたすけてください。
>>549 そらdieしてるからだろ?
dieしなきゃいいじゃん。
ま、あとはeval{}で囲いな。
552 :
NAME IS NULL:04/12/06 13:13:31 ID:BDiStAMX
>>546 そのリンク先に書いてあるように
$rv = $sth->execute or die "can't execute the query: $sth->errstr;
executeの結果も見ないとダメなんじゃない?
553 :
NAME IS NULL:04/12/06 17:29:49 ID:9t3CstjF
MySQL初心者の者なのですが、
インストール直後の状態でrootでログインし、新規アカウントを作りました。
しかし、そのIDとパスでログインしようとしてもうまくいきません。
一応phpMyAdminで見てみたのですが、ユーザーアカウントはちゃんと作られているようです。
ログインできない理由としてどのようなことが考えられますでしょうか?ご教授願います。
554 :
NAME IS NULL:04/12/06 17:37:52 ID:Gqr5wmU2
>>553 エラー内容を表示汁!
後、かねやんで新規アカウントを作るのは辞めたほうが良い
555 :
553:04/12/06 17:44:33 ID:9t3CstjF
コマンドプロンプトでログインしようとしたところ
以下のようなエラーがでます。(-----------はパスワード)
C:\mysql\bin>mysql -u masa -p ----------
Enter password: ***********
ERROR 1049: Unknown database '-----------'
さらに、phpのほうでは、
Warning: mysql_connect(): Can't connect to MySQL server on '<IP>' (10061) in D:\www\threehearts\trunk\trunk_entry.php on line 108
こんなかんじにエラー出てしまいます。
ですが、先ほどかねやんを使ってログインしてみたところ、うまくいきました。
どういうことでしょうか??
556 :
NAME IS NULL:04/12/06 17:47:20 ID:HmN2GWRf
怨。
557 :
NAME IS NULL:04/12/06 17:56:33 ID:Gqr5wmU2
>>555 mysql -u masa -p-----だよ
-pの後にスペースが入ってるからだと思うが。
統一するなら、-uの後にもスペースを入れずに・・・
558 :
553:04/12/06 18:05:08 ID:9t3CstjF
>>557 うまくいきました。ありがとうございます。
あと、もうひとつだけ質問があります。
MySQLに接続する際に、localhostを指定するとうまくログインできるのですが、
ホストが違うとログインできません。
userテーブルを見てみてもちゃんとlocalhostと%の両方が登録されているはずなのですが、
どのような理由が考えられますでしょうか?
>>558 >userテーブルを見てみてもちゃんとlocalhostと%の両方が登録されているはず
こういうのが一番不確実、つまりあやしいポイントだが
筈が確信までいっても駄目なら、MySQLサーバのskip-networkingが指定されて無いか確認。
GRANTじゃなくてUPDATEで変更したのなら、権限テーブルをFLUSHすること。
何にせよ「ホストが違うとログインできません」だけじゃ、ポートが開いてないとか
LANケーブルが抜けてるとか(まあそれはチェックしてるだろうけど)
そんな辺りからの話になるわな。
560 :
NAME IS NULL:04/12/06 18:34:01 ID:Gqr5wmU2
DBの鯖を複数扱うには必要だから、名前を指定するのは仕方ないかも
561 :
553:04/12/06 18:47:59 ID:9t3CstjF
>>559 文章ミスでした。テーブルでしっかり確認してます。
ひとまず%だけアカウントつくって試してみたのですが、
ERROR 1045: Access denied for user: 'masa@localhost' (Using password: YES)
とエラーが表示されてしまいます。
-haaa など適当にホスト指定しても同様です。
その後で、localhost用アカウント作ると、うまくログインできます。
>>561 flush privileges;は実行した?
563 :
553:04/12/06 22:44:56 ID:9t3CstjF
>>559さんの助言にて解決しました。
ルータのポートを開いていないというミスでした。
phpからのアクセスなので、80さえ開いていればいいと思い込んでいましたが、
ちゃんと3306も開けておかなければならないんですね。
数々のご指南本当にありがとうございました。
>>561 下の2点などみても
>ERROR 1045: Access denied for user: 'masa@localhost' (Using password: YES)
>-haaa など適当にホスト指定しても同様です。
どうも"ホスト"の概念が理解できてないように思う。
上の場合のエラーは本人は別の端末から接続してるつもりなのかもしれないが
エラーを見るとlocalhostからの接続になっている。
下の場合、ホストの指定はクライアントから接続"先"のホスト(MySQLサーバ)を
指定するオプションであって、接続"元"を定義する訳ではない。
show table status;で表示される
Auto_incrimentの値をPHPで取ってきたいんですが
どのような方法がありますでしょうか?
>>565 mysql_query("show table status");
で返って来る結果はSELECT文と同じ扱い。
通常のSELECT文と同じやりかたでPHP側は情報を取得できる。これを使う。
567 :
546:04/12/07 07:17:52 ID:???
568 :
NAME IS NULL:04/12/07 11:11:30 ID:2Ky/TsZq
Aという列がnullのデータだけひっぱってきたい場合は、
Select * From TableName Where A
の後何て書けばいいんでしょうか…。
A IS NULL
572 :
568:04/12/07 11:37:57 ID:2Ky/TsZq
ホントだ(爆)
無事皆様に笑いを与えることができますた。
有難うございました(´Д⊂
573 :
NAME IS NULL:04/12/07 13:01:20 ID:iWfPtWN9
test_tbl
---------------
name | class |
---------------
a |1 |
b |1 |
c |1 |
d |2 |
e |2 |
---------------
このtest_tblからnameを文字列結合させて「1,abc」「2,de」の取得をする場合、
SELECT class,GROUP_CONCAT(name) from test GROUP BY class
でやりましたが上手く出来ませんでした、根本的に間違っているんでしょうか?
574 :
573:04/12/07 13:01:47 ID:???
sage忘れスイマセン。
575 :
NAME IS NULL:04/12/07 13:20:36 ID:e8qZACAq
Like 'オ%' を検索すると 'ナ' がヒットするよ、、orz
オナ% で検索すると ニ がヒットするよ(*´Д`*)
577 :
NAME IS NULL:04/12/08 01:17:14 ID:wTGp1/m/
oracle→MYSQLにデータを移行したいのですが一番いい方法はなんですか?
@Oracle→オブジェクトブラウザー又はアクセスでCSV→そのCSVをPHPプログラムでMYSQL
579 :
NAME IS NULL:04/12/08 12:17:28 ID:vav5ho8n
>>577 WindowsクライアントにODBCを設定し、Navicatで接続してMySQLへエクスポート
>578
ありがとうございます。文系畑の人間なんで前途多難は百も承知。
がんばります。
582 :
NAME IS NULL:04/12/08 14:05:43 ID:JrunuaRr
ちょっと奇妙な現象が起きて困ってます。
MySQL4.1.7にて、UTF-8でテーブルを作成し
varchrカラムに、文字数を指定したINDEXを作成。
すると、WHERE句で ヒットするはずの検索がヒットしなくなる
文字列が出てくる。全ての文字列でその不具合が出るのではなく
特定のパターンか文字数の場合のみのよう。
INDEXを最初から作成しないか、文字数を指定しなければ
問題は起きません。
ちなみに同じWEHERE句なのに、SELECTでは不具合が出なくて
UPDATEの時だけ不具合が出たりする。
これって、MySQLユーザー会などでは既に報告されてるのでしょうか?
環境は?
OSとかクライアントプログラムとか
584 :
582:04/12/08 17:38:31 ID:JrunuaRr
環境はRedhat Linux 7.2 (といっても、ほとんどオリジナルの構成)
クライアントはPHP4とシェルからの両方で症状を確認。
ちなみにvarcharに格納した文字列は日本語では無くただの英数字
です
再現条件が確定しているテーブルとデータがあれば追試出来るけど。
そこまで細かくは分かってないの?
UTF8で英数字ってことはそもままASCIIだからなぁ
おかしくなるとは考えにくいな
OPTIMIZE TABLE tbl_name;
589 :
582:04/12/09 13:19:01 ID:rR7Aps+L
>>585 今日はちょっと時間が無いので、明日にでも
再現条件が確定してるSQL文を載せますね。
590 :
NAME IS NULL:04/12/09 17:36:03 ID:eosrnkcl
お祭りが始まる予感
592 :
582:04/12/10 12:34:12 ID:xmvTUs8L
582の件の再現条件です。
○テーブル構成
create TABLE t1 (
idint(10) unsigned NOT NULL auto_increment,
dataVARCHAR(128) NOT NULL,
flgtinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (id),
INDEX idx_data (data(8)),
UNIQUEdata (data)
) TYPE=MyISAM DEFAULT CHARACTER SET utf8;
まずレコードを挿入し、SELECTで検索してみます。
mysql> INSERT t1(data, flg) VALUES("yahoocojp",0);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * from t1 WHERE data = 'yahoocojp';
+----+-----------+-----+
| id | data | flg |
+----+-----------+-----+
| 1 | yahoocojp | 0 |
+----+-----------+-----+
1 row in set (0.00 sec)
ここまでは問題ありません。次に同じWHERE句でUPDATEを実行。
mysql> UPDATE t1 set flg=1 WHERE data = 'yahoocojp';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
マッチしません・・・・
ちなみに、= の代わりにLIKEを使うと、このケースでは成功するのですが、
LIKEでも失敗する文字パターンがありました。
どんな文字列だったのかは残念ながら失念しましたが、
その場合、例えば文字パターンが abcde だったとすると、
〜WHERE data like 'abcde' では失敗しますが、
〜WHERE data like '%abcde' だと
成功します。
次に、INDEXを破棄すると・・
mysql> ALTER TABLE t1 DROP INDEX idx_data;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> UPDATE t1 set flg=1 WHERE data = 'yahoocojp';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
成功します。
593 :
582:04/12/10 12:36:04 ID:xmvTUs8L
すいません、テーブル構成のUPに失敗したので再投稿
create TABLE t1 (
id int(10) unsigned NOT NULL auto_increment,
data VARCHAR(128) NOT NULL,
flg tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (id),
INDEX idx_data (data(8)),
UNIQUE data (data)
) TYPE=MyISAM DEFAULT CHARACTER SET utf8;
大丈夫かな?
594 :
582:04/12/10 12:37:32 ID:xmvTUs8L
あ、それと MySQL 4.1.7のコンパイル時のオプションは
./configure --enable-assembler --with-mysqld-ldflags=-all-static --enable-thread-safe-client --with-charset=utf8 です。
595 :
582:04/12/10 12:55:41 ID:xmvTUs8L
連続投稿申し訳ありません。
テーブル構成の部分で、投稿時の手違いでINDEXとUNIQUEが同じカラムに重複してしまいましたが、
UNIQUEが無くても不具合の症状は出ます。
596 :
NAME IS NULL:04/12/10 18:06:34 ID:/SbrvFX+
mysql4のconvertでsjisからujisに変換する際に機種依存文字のAなどが化けてしまいます。
(上のほうで機種依存文字について書いてあるのを読んだのですが、)
文字コード変換はsjis -> utf -> euc という変換になるので化けるのはしょうがない事なのでしょうか?
どうにか回避する方法は無いでしょうか。
(linux, mysql 4.1.7)
>>596 機種依存文字に関わるパッチは現在作成中っぽいよ。
人柱協力するっていえば喜ばれるかもよ。
598 :
NAME IS NULL:04/12/10 21:36:53 ID:/SbrvFX+
>>597 協力したくてもそんなに知識ないし(>_<)
convertはあきらめてjcode(perl)でeucに変換してから入れることでとりあえず
回避しようと思ったのですが、みごとに、その"機種依存文字"以降がバッサリ
切り落とされてしまって最悪です(泣)。
mysql3なら入るのにmysql4で出来ないなんて厳しいですね。
ダウングレードするしか解決方法は無いようです(*_*)
>>582 再現するねぇ。
(こちらは本家にあるRPMを使いました)
ucs2だと大丈夫だし、やっぱりutf8がアヤシイっすね。
バグレポ見たけど、ぱっとみ登録されていないような。
>>598 いや、4.0にしな。
4.1はまるきり別もん。
>>601 たしかにMYSQLは4.0で終わったと思っていいくらいだからな
とくにWin版
>>602 そう? 別に4.1でも困らないっちゃ困らない。
ただ、マルチバイトコード関連はPerl5.6のutf8並みに微妙なので、
日本語を扱うぶんにはやっとγとかRCになった感じのような気がする。
ま、正式リリースになってもPerl5.8のutf8程度にはハマル部分がありそうだけど。
varchar(4)で4文字なのか4バイトなのか、とかでね。
(4文字のほうが正しいわけだが、互換性を考慮したsyntaxが欲しいとは思う)
事実上UTF8しか使い物にならないくせに
コマンドラインはMS932が必要になるから対話ツールが結局使えない
605 :
NAME IS NULL:04/12/10 23:30:32 ID:/SbrvFX+
>>601 ありがとうございます。4.0にしました。
問題なくjcodeで変換した文字列がきちんと入りました。
mysql4.1はまだ日本語入れる場合は厳しいのですね。
606 :
NAME IS NULL:04/12/10 23:33:50 ID:/SbrvFX+
mysql3から4.0をskipして4.1に行ったので4.0やったことなかったんですけど、
なんかビミョーに速い気がしますね。
気のせい?
>>604 set names sjisとかである程度は。
えー ここ見てから4.1にすりゃよかった、、
唐突ですみませんが
サーバーにインストールされたMySQLを
ネットワーク上のWindowsアプリケーションから操作するプログラムが可能な
フリーのプログラマーさんを探しております。
こちらのMySQLはroot権限があり自由にDBアクセスできます。
WindowsのクライアントソフトはMFCのダイアログベースでそれほど
複雑なものではありません。
DBプログラムに精通されている方でしたら1週間程度で作成可能かもしれません。
仕事としてお願いできる方いらっしゃいましたらメール頂けませんでしょうか?
工賃はご相談に応じます。
610 :
NAME IS NULL:04/12/11 10:55:45 ID:lPGeGrfn
MySQL4になって、起動プライオリティがchkconfig: 2345 90 20に変更に
なっているんですけどなにか理由があるんですか?
611 :
582:04/12/11 11:06:54 ID:2+zpM2FC
>599
確認ありがとうございます。
やっぱり再現しますか・・
4.1は怖くて業務用には使えないですね(^^;
しょうがないので4.0をEUC-JPで使い続けようと
思います。
このバグが本家に届いてるのかどうか、ちょっと心配です。
自分で報告できるほどの英語力は無いし
日本のユーザー会のこともよくわからないので。
>>612 結局パッチ当てて対応したところでその環境のみが対応になるし
次期バージョンでは動いているという話と動いてない話とあってどうもわからん
誰でも本家から自由にダウンロードしたバージョンのみで完結してほしい
とくにWindowsの場合はコンパイル環境作るのに金かかるわけで
4.0の後継はサブクエリーが使えて高速になったPostgreSQL8かもしれん・・・
614 :
582:04/12/11 16:20:47 ID:2+zpM2FC
>>612 早速、MLに入会して投稿してみました。
既出だったらちょっと恥ずかしいかも・・・(^^;
>>614 660で指摘されてた
ttp://bugs.mysql.com/bug.php?id=6643 ↑これと同じなんじゃ?
UTF8のVARCHARレコードに対して、フィールド長よりも短いindexを作成し、
そのindexで検索すると嘘の内容が返ってくる
テーブル全体をUTF8に指定しても、数字がUTF8になるとは思えないし、
各文字列フィールドで無指定の場合にUTF8になる だけだと考えるとつじつま合うと思うんだが。
618 :
NAME IS NULL:04/12/12 12:23:44 ID:LIQde0yx
MySQLのアクセスポートって3306固定なんですか?
ルーター3306開放して外部からログオン、DBメンテナンスとかしてるんですけど。
DBを実際利用してるユーザーは別サーバーのPHP経由なんで問題ない?・・
巨大なレコードの検索や10000を超える新規入力のデータをPHP介して
動作させるとパフォーマンスかなり落ちるでしょうか?
教えてください、素人ですんまそん。
>>618 んなことない、設定で変更できる。デフォルトのポートが3306なだけ。
ただ一部のサードパーティのクライアントアプリで3306前提の奴があった。
(コードの頭で定義してたから変えればいいだけだけど。昔の話だから変更済みの可能性は大いにあり)
620 :
582:04/12/14 20:52:59 ID:/UAg/KXZ
582の件(4.1.7でUTF8にした時のWHEREの不具合)ですが、
MLで質問してみたところ、4.1.7では症状が出るが
最新版のソースでは大丈夫だったそうです。
4.1.8のリリースに期待です。
おお
GJ!
622 :
NAME IS NULL:04/12/14 22:48:54 ID:fp7b0mIn
mysqlでcvsファイルをロードするためのコマンドってありますか?
CVSはCSVのtypoだと解釈したが、
CVSで間違ってないなら、その指し示すものを説明してくれ。
CSV
現在PHP+MySQLで、ユーザーの条件で検索して表示…って感じのアプリを作成しています。
ユーザー数が数万からのオーダーなので、mysql_fetch_assocを使って必要な数だけ
fetchしてくるようにしているのですが、どうもDBサーバーとPHPが動いているWEBサーバー
間でのトラフィックが多いような気がします。
mysql_fetch_assocって実データはmysql_fetch_assocした瞬間に持ってくるんでしょうか?
それとも一旦PHP側で一括して取得するんでしょうか?
627 :
NAME IS NULL:04/12/16 00:14:44 ID:eASK0wdK
>>624 1行がレコードで、各項目をカンマで区切られたデータファイルです。
sqlファイルだと可読性が悪いと思ったので、cvsファイルだとエクセルで扱えますし・・・
↓こんな感じです。
1,2,3
4,5,6
>>627 それcsvというんだよ
それに細かい仕様が決まっていないので各社ばらばら
1行で1レコードときまっているのもあればエクセルのようにそうでないものもある
エスケープの仕方もばらばらで個別対応が必要
おわかり?
まあ、普通はload data infileで読めるけどね。
へんてこりんな形式はやっぱこまるね。
TAB区切りだけだとおもてた
タブ区切りは tsv
>>626 クライアント側(PHP)にクエリの結果を全部持ってきて処理してる。
>>632 マジですか…
それじゃSQL文でLIMITするくらいしか方法はなさそうですね…
4.1.8揚げ
…だが、4.1.7から上書きインストールしたら
mysqlサーバーの起動はするのだが、
クライアントではlibmysqlclient.14が見つからないって接続できなくなったヨヽ(`Д´)ノ
4.1.7に戻すと接続できるのに。
ライブラリのディレクトリにはパスも通ってるし…、ナンデダヨ!!
また別物になったか?
4.1なかなか安定しないね。
4.0上位互換になる日はくるのかな?それとも別物のままかな。
いらん改悪にわけの分からんライセンス
そういうのは市場をほぼ独占してからするもんだろうに
>>637 上位互換は基本的にないっぽい。
本家は表名や列名をUTF-8固定にするって判断らしいので。
今後のことを考えると内部では統一しておくってのは仕方ないとは思うけど。
あと、charやvarcharにバイナリを入れると弾かれるっぽい。
今まで入ってたのがナニと言えばナニではあるけど。
Postgresと違ってずっとバイナリ互換でイケてたのが良かったのにとは思うけど。
ついに移行ツールが必要になるのかと思うと感慨深い。
>>639 UTF8固定で列名はいいとしてもテーブル名がUTF8で格納、
そしてファイルシステムがどういうコードかも考えずにそのままUTF8のまま格納
という根本的なところが死んでる希ガス
641 :
582:04/12/17 20:28:50 ID:EPB4yf3L
>>640 データベース名やテーブル名がファイルシステムに依存してるのは問題だよね。
もっとも、ファイルシステムに依存してるのを知ってたから、
マルチバイトな名前にしたことはないけどね。
UTF-8決め打ちにするなら、ファイル名を適当にエスケープするような
実装にすればいいのにとか思わなくもないです。
>>640 なるほどな。言われてみりゃそうだよな。
ということは、UTF8化されてるFedoraCore専用か?
ツカエネー
644 :
NAME IS NULL:04/12/18 06:22:08 ID:3dqMZ2Yk
4.0でサブクエリーが使えないのは仕様ですよね?
646 :
635:04/12/18 19:37:29 ID:???
ウホッ、良い男(^ε^)
>>635 そういや同じ質問(バグレポート)を本家のMLで投げてる香具師がいたな。
すいません、
ttp://artry.net/xoops/Chap02w03my01.htmlをみながら MySQL3.23.58をインストールし、サイトの下の方に記載してある動作確認方で
動作確認をしようとしたところ、コマンドでinsert into tast1 values("TESTDATA!"); と入れると、
error1146:table 'test.test1'doesn't exitと表記されます。
その前のコマンドcreate table test1 (field1 char(10));
までは上手く行ってるんですがそこで止まります。
それでも取り合えずPHPファイルを作りアクセスしてみると、
Warning: mysql_connect(): Access denied for user: 'zeroment@localhost' (Using password: YES) in c:\apache\htdocs\mysqltest.php on line 2
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\apache\htdocs\mysqltest.php on line 3
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\apache\htdocs\mysqltest.php on line 4
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\mysqltest.php on line 5
The data:
と出てきます。
どうか対処法を教えてください。
OSはwin2000SP4です。
>>648 create table test1 (field1 char(10)); して無い気がする。
またはconnect test; する前に CREATE TABLEしたか。
650 :
648:04/12/20 17:32:09 ID:???
create table test1 (field1 char(10));はしました。
試しにもう一度実行したらもう出来てるとでてきました。
WinMySQLAdminで確認しても存在しているみたいです。
でもなぜかinsert into tast1 values("TESTDATA!"); を実行すると
error1146:table 'test.test1'doesn't exitとでてしまいます。
>>650 「USE test」でDBを選択して(CONNECT testでもいいけど)、
「SHOW TABLES;」でtest1が出来てるか確認。
なんか他のDBにtest1を作って、作った気になってるような。
それと件のページの
「insert into tast1 values("TESTDATA!");」のtast1はtest1のtypoだね。
もしかして、そっちはそのままコピペしてて、エラーメッセージは書き写したので
「error1146:table 'test.test1'doesn't exit」と"正しく"直っちゃってるのでは?
652 :
NAME IS NULL:04/12/21 19:03:47 ID:TwMFdK75
Aテーブルの構造で
Bテーブルを作成するプログラムを書きたいのですが、
mysqldump -d だとAテーブルの名前がそのまま
create table文に入っているので、Bテーブルを作る事ができません。
何か簡単にできる方法はないでしょうか?
CREATE TABLE table2 SELECT * FROM table1 WHERE 1=0;
とかどーよ?
>>652 sedでも使って簡単に置換すれば良いだけ。
あと同じ構造のテーブルをぽこぽこ複製するっつうのも
データベースの使い方としてちと奇妙さを感じる。
同じ構造のDBなら結構あるけど(ユーザ毎に作るとか)
656 :
650:04/12/21 21:08:26 ID:???
>>651 アドバイスありがとうございました。
何とか解決できました。
>>654 んーとね、MERGEテーブルとか使うときは便利っすよ>同じ構造のテーブル。
んで、ログとかで1か月ごとにテーブルを足したりするの。
MySQL4.0.23記念真紀子。
4.0系はこれで打ち止めっぽいね。
4.1系へ移行する気は無いし、そろそろPostgreSQLへ復帰する
準備を始めないといかんなぁ・・・。
660 :
NAME IS NULL:04/12/22 11:58:53 ID:6BMH1hEX
>>653 auto_incrementの構造がうまく継承できないね。
4終了
>>660 あー、そうだっけ。
4.1なら
CREATE TABLE table2 LIKE table1
とか出来たハズだけど。
>>660 インデックスが全部無視されちゃうっぽい
pgpoolのMySQL版みたいのはどこにありますか?
phpMyAdmin か?
MySQLのバージョン上がるたびにみんなテストしてんの?
鯖で 3.23.54 使ってるけど今順調に動いてるんで
Fix版も入れたくない
テストも関連のPHPとかクライアント動いてる
Delphiで書いたプログラムとか考えるとやりたくないなぁ
場合による。
3.23系のマイナーバージョンなら、まあ上げるかな。
3.23→4.0系も、まああまり問題が無かった気がする。けど無理には勧めない。
4.1系はエンコディング周りが大幅に変わってるから、上げない。
新規プロジェクトならそろそろ4.1系を使いたいけど。
漏れの場合は、
メジャーもマイナーも、
一度テストサーバでいじってみる。
で、マイナーの場合は不具合が無いことを確認して、
本番導入する。
メジャーの場合は今のアプリ(漏れの場合はEJB)で
問題無いか確認して導入。
アプリ側で問題があったら、アプリ改善として懸案して、
後々のアプリバージョンアップ時にDBもバージョン上げ
ま、外部にはMySQLだってこと黙ってるがな(ワラ
いや、どんどんみんな4.0 --> 4.1に移行してくれい。
それで、マニュアル FAQの不備とかバグとか不都合とか
ごるぁしてくれい。でないと、いつまでたっても4.1系は収束
せんぞ。
なんでそこまでMySQLに固執するのか疑問。
4.0までは低機能だが速い良くできたDBだったが、4.1なんて糞だろ?
最近の子を与えられたものを享受することしか考えないのかね。
オープンソース振興とかいっても末端の意識がこれじゃねぇ。
4.1 の評判が良くないが,ちょっといいこともある.
ちょっとづつ,従来のバグが直されているようだ.
SELECT * FROM [table_name] WHERE [column_name] <> NULL
これは一行も返さないのが正しい.
SELECT * FROM [table_name] WHERE [column_name] NOT IN (NULL)
これは,上と同じ内容を,IN 文を使って書いたもの.
後者のクエリだが,4.0系だと全行が返ってきてしまう.
4.1系だと,正しい結果(一行も返らない)になる.
多分,サブクエリの導入に伴って,SQL の間違った解釈が修正されたのだろう.
修正されるのはいいのだが、従来のアプリが動かなくなるというのはそれはそれでダメだと思う
IN がおかしいのは俺もおもっていた
4.0のシステムはそのままで、新規案件はPostgresのほうに全部いった
>>674 それはもっともだが,多分この修正が従来のコードに影響を与えることは
ほとんどないと思う.
なぜなら,IN の引数として明示的に NULL を与えるコードを書くことは
実際にはまず考えられないからだ.サブクエリの結果を IN に与えた
ために,引数に NULL が入る場合がほとんどだろう.
だから,サブクエリを使えるようになったバージョンから,NULL の解釈を
標準に合わせるというのは,現実的だと思う.
俺は遅くてもかしこい処理系が好きだ.選ぶなら間違いなく PostgreSQL だが,
残念ながら,DBMS を選定できる立場にいない.何もわかっていない人間が
流行りという理由で選定した MySQL を使わされている.だから MySQLが
まともな DBMS に少しずつ近づいていることを喜びたいんである.
>>674 それを言ったらPostgresなんてバージョンちょっと上がっただけで
動かなかったりするっすよ。
その点ではまだMySQLのほうがマシ。
IN の中にNull入れたいってのはよくあるよ
NULLはイコールで判断できないからとか
どっちにしろ今までちゃんと動いていなかったSQLだからつかわないかと
デバッグしてないコードで動いてるように見えて・・・というのはあるかもしれんが
それはバグだしな
Postgres使っていればわかるけど、MySQLと速度差はない
機能差はある
DB選択する権限もある
が、MySQLは俺も3.xから使ってきてかなりの愛着がある
それでも業務で使う場合の不具合を避けるためにはどうしようもないのだ
文字コード問題はPostgresはかなり昔から積極的に取りくんでいて
UNICODEのマッピングの問題も現実的な解決方法をとっているよ
4.1はサブクエリーが使えることで大幅にDBとしてはよくなったのは確か
でもそれ以上に問題が多いのでは本末転倒
MySQLだってInnoDBがすでにデフォだしInnoDB使ってる限り
Postgresと比べて速度的なメリットはないし
唯一の問題だったプラットフォームも8からはWindows正式対応することや
商用目的でもライセンス代がかからないこと、商用サポートがほしければ
Powergresを選べることとかいろいろある
スタンドアロンベースや本当に小規模ならHSQLDBレベルで十分だ
こちらは小さいくせにサブクエリーがきれいに動く
WindowsとLinux対応でシンプルさ考慮ではInterBaseもいいだろうけどね
5から使ってるが安定性とか癖もわかってるので扱いやすい
複数のバージョンを扱うとき面倒だけどね
>>677 え、Postgresってそんなに速くなってる?
コネクションが増えると悲惨だった記憶が……。
あと、バージョン間の非互換問題とかどーなの?
最近の事情は知らないもので。
文字コードについてはPostgresのほうが進んでるのは間違いない。
だからこそ日本じゃPostgresのほうが優位なんだしね。
個人的にはInnoDBがデフォってのは間違ってると思うっすよ。
ライセンス料違うし(w
ちなみに、商用でもライセンス料はかからないっすよ?>MySQL
サブクエリーは微妙なんだよね。本当に必要なケースはそんなには多くないから。
それよりVIEWのほうが必要だと思うんだけどー。
まあ、SQLでごりごりしたい人には勧められないのは確か。
そうそう、MySQLはSolarisがベストだと思うので、
フリーになったSolarisに移行するのが良いかもとか思ってるのですが、
どーなんでしょね。
楽天今でも使ってるんだっけ?
さあ?
Yahoo!とlivedoorは使ってると思ったけど。
真ん中は分かんない。
681 :
a:04/12/23 23:19:17 ID:c0t8Vv5a
今、Apache2.0使ってアプレット呼び出して、JDBC介してMySQL接続って
のをやってるんだけど、ユーザーとパスワードを設定ファイルに記述し
てアプレットと同じフォルダに置いてサーバー側から呼び出してるのね。
もちろん平文。
で、アドレスで設定ファイル名を叩くとそれが見えちゃう。そこで、
アクセス禁止にしたら今度は設定ファイルが呼び出せないからMySQLに
接続できない。
で、暗号化モジュールを作ってそれを通すことも考えたけど、暗号化
したにせよ結局その設定ファイルをダウンロードできちゃうのではい
ずれ解読されそうで怖い。
なんかいい方法ないかな?もちろん自宅鯖だよ。
>>677 細かいことを言うようだが,
> IN の中にNull入れたいってのはよくあるよ
> NULLはイコールで判断できないからとか
これはいかがなものかと思う.
なぜなら,IN は本来,複数の = の省略形に過ぎないからだ.
もし NULL が IN でマッチするなら,それは MySQL のバグである.
それを利用しているなら,処理系のバグに依存した,危険なコードと
言わざるを得ないのだが.
>>678 業務系でトランザクションがないってのはありえないからね
InnoDBがデフォってのは4.1からはデータベース作成するとデフォでInnoDBになってたはず
商用でもかからないってのはたしかにGPLライセンスにすればかからないが
商用製品ではあまり現実的ではない
>>682 PreparedStatement面倒なんで書きたいということはある
まぁNullは特殊な型なんでここはどうにでも
>>678 Solarisがベストな理由ってなんでしょう?
個人的にはLinuxのファイルシステムは信用できないので使いたくない
と思ってるけど、理由によってはSolarisも試してみたい。
SQLはSQLで定められてる仕様があるのだから、
バグで間違えた動作している部分を使うのは危険なだけだろ。
バグを期待して書くコードはバージョン挙げて動かなくなっても、
書いた人が悪いだけ。
>>684 今は知らないけど、昔はMySQL ABがそう言ってたよ>Solaris
まともにスレッドが実装されてるOSだからじゃないの?
そういう意味ではWindowsもアリではあるけど。
スレッドに関してはLinuxやFreeBSDはちょっとね。
ファイルシステムもSolarisのほうがまともな印象があるけれど、
こっちはちょっと調べてない。
>>686 マニュアルにはこんな記述がありますねぇ。
個人的にはFreeBSDが好きなんですが…。
ttp://dev.mysql.com/doc/mysql/ja/Which_OS.html ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
以上の基準から、現時点で MySQL を実行するのに最適なプラットフォームは、
SuSE Linux 8.2、2.4 カーネル、および ReiserFS (または類似の Linux ディストリ
ビューション)を搭載した x86 と、Solaris(2.7 〜 9)を搭載した SPARC です。
FreeBSD は第 3 位ですが、スレッドライブラリが改善されればベストグループに
仲間入りするはずです。
x86Solarisではないのね
4.1系で サーバ側の文字コードを UTF-8 にして使っている方,SQLの発行や
テーブルの編集にはどんなツール(Windows上の)を使っておられますか?
当方は今までのところ,ちゃんと使えたことがありません.
・CSE ... 特殊文字(鰍ネど)が化けてしまう
・DBEdit(Eclipse プラグイン)... 表示はきれいに出るが,編集すると全ての
文字が化ける.
・MySQL Query Browser ... 機能はきれいに動くが,きわめて不安定.
・かねやん ... 試していないが,SJIS と EUC 以外駄目らしい.
今までは4.0系で CSE を使っていたので,同等の機能があれば嬉しいのですが.
どなたかお願いします.
UseUnicode&UTF-8設定の JDBCのツールならOK
普通にコンソール。
set names sjis
とかで。
692 :
689:04/12/25 01:16:28 ID:???
>>690 Eclipse のプラグインもその条件に当てはまるはずなのですが,
どういうわけか,DbEdit は編集すると即,すべての文字が化けてしまいます.
何か設定がまずいのでしょうか.
>>691 「〜−梶vといった文字が化けませんか?それが困るので,クライアント側も
UTF-8でやりたいのですが.
そのへんは大丈夫になったような。
まだ駄目だっけ?
694 :
689:04/12/25 01:49:10 ID:???
>>693 少なくとも,MySQL 4.1.8 on Win2000 では,「梶vは??になってしまいます.
MS932 のマッピングが存在しないから,仕方ないとは思いますが.
これは CSE でも同じです.
CSE で,UTF-8 が使えたら良いのですが.
あー、じゃあまだ作業中なのか。
やってはいるそうなので>MSCP932対応
>>692 JBuilderやNetBeansで化けないのでたぶん設定かツールの問題かと
697 :
689:04/12/25 10:52:51 ID:???
>>696 もう一度設定を調べなおしてみます.
DB 操作のためだけに NetBeans を導入してみるのも,豪儀で面白そうですが.
>>695 そうですか.MS932 対応が済んだら,コンソールでも CSE でも問題無く操作できる
ようになるでしょうね.
実は,4.0系で進行中のプロジェクトがあるのですが,サブクエリが使えないのが
あまりにも不便だったので,4.1系への移行を検討中なのです.しかし,現在は
UTF-8 しかまともに使えないということなので,試験的に文字コードを移行した
ところ,今度は周辺のツールが使えなくなって,困っています.
いずれにせよ,生産性低いなあ.4.1系がMS932に対応するまで,移行はやめた
方がいいかなあ.
サブクエリーがないとたしかに厳しいが、4.1はまだ様子見かと
使いたいのならPostgresいけ
こっちにもぺたぺた
varcharは文字コードをクライアントのコードページによって文字変換しないよね?
条件
アルファベットの大文字小文字の区別は無し
多言語対応(クライアントのコードページに依存しない事)
MS-SQLからMySQLへ移行しようと思ってる
>>699 > MS-SQLからMySQLへ移行しようと思ってる
正直今はお薦めしない。
>>701 ちっとは過去レス読みましょう。
MS-SQLサーバ使ってるようだけど今まで文字コード周りを
意識してシステム構築してるの?
varcharで問題多発してるんだよ
MSSQLからならPostgresのほうがよくないか?
今RC2でたところだが、カバーする範囲はそっち方面が多いだろう
Mysql-4.0.22 でこんなの↓やると思ったとおりの答えが出るんだけど、
--------------
SELECT INTERVAL(7,2,4,8,16) + INTERVAL(3,1,3,5,7)
--------------
+--------------------------------------------+
| INTERVAL(7,2,4,8,16) + INTERVAL(3,1,3,5,7) |
+--------------------------------------------+
| 4 |
+--------------------------------------------+
4.1.7 と 5.0.1 で試すと
ERROR 1064 (42000): You have an error in your SQL syntax;
と言われてしまいます。
これはこういう仕様になったの? それともバグですか?
MySQLもうだめぽ
>>705 バグというかなんつか分からんが、
SELECT (INTERVAL(7,2,4,8,16)) + (INTERVAL(3,1,3,5,7));
なら動く。
MySQLの勉強を始めようと思いWinXPsp2にインストールしたのですが
WinMySQLadminでMySQLに接続できません。
EnviromentのタブのMyODBCのところが
「Not Found Driver 3.51 Not Found」
となっているのですが、よろしければどなたか解決方法
教えてください。
>>709 >「Not Found Driver 3.51 Not Found」
それはODBCドライバーの状態なので、例えばAccessなどから
ODBC接続するなどの場合以外には関係ない。
インストール直後に接続が出来ない、MySQLが起動してない等は
色々原因があるので、インストールに関するドキュメントをちゃんと
読んでみて原因となりそうなものをチェックしてみてください。
普通はインストールしただけで取り合えず接続は出来る状態なので
順に原因を探っていかないと判りません。訊かれた方も原因が判らんと
解決法は示唆できません。
>>710 「Not Found Driver 3.51 Not Found」 って
エラーメッセージじゃなかったんですね・・・勘違いしてました
設定はあんましいじってないですが、もう一度マニュアル見てみます。
レスありがとうございました。
712 :
705:04/12/26 17:25:04 ID:???
>>707 あ、ほんとだ括弧でくくるとエラーにならない…
なんか構文解析のバグっぽい気もするけど、これで逃げておくことにします。
Windows (x86)4.1.835.9M
をインストして、ルート権限で接続したけど、データベース作れない。
一部の基本的コマンド(\q)とかは効くが、あとのコマンドが全然反応しない。
いろんなサイトみたりしたが無駄だった。
わけわかんねー。
多分匿名でログインしてるんだと思うよ
サーバー:MySQL 4.1.7 (Linux)
くらいあんと:win2k
クライアントから、batファイル作って、サーバーにLOAD DATA/DMLを実行したいんだけど
-v -v -v オプションで実行すると発行したコマンドも出力されちゃうじゃない?
あれを結果だけ出力したいんだけど、そんなのできます?
FreeBSD 5.2.1 で MySQL 4.1.8a をmakeすると
cd . && /bin/sh /usr/src/mysql-4.1.8a/missing --run makeinfo -I . --no-headers
--no-split --output manual.txt
makeinfo: missing file argument.
Try `makeinfo --help' for more information.
*** Error code 1
このあたりで止まってしまう
どうすればいいんだろう?
>>717 野良ビルドかな?portsはどうやってるか、参考にしてみては。
719 :
717:04/12/30 00:10:03 ID:???
野良ビルドってのがわかりません
ソースから./configure、make、とする方法です
makeinfo -I . --no-headers --no-split --output manual.txt
と直に打ってみてもエラーが出るので
makeinfoの使い方が間違ってるのかなー、とか思ってます
portsを調べるなんて高級な技はできません・゚゚(´□`。)°゚。ワーン
MySQLの勉強をしたいと思い自分のPCにMySQLを入れて
AN HTTPD起動しつつphpMyAdminで中身いじってみてるのですが
あるときMySQLを起動していない状態でphpMyAdminを使ってみたら
普通どおり使えた(DBの中身確認できるだけじゃなくテーブル作ったりもできる)
のですが、これってなぜなんでしょう?
MySQLって起動してなくても(winmysqladmin.exeを実行中じゃなくても)
使えるものなんですか?…まぁ実際使えてるんだからそうなんだろうけど。
なんかとってもアホな質問だったらすみません。
たぶん根本的な何かが分かってないんだろうな俺。
なんなんでしょう?
使い方を知りたければドキュメントを読みましょう。
仕様が知りたければソースを読みましょう。
>>720 winmysqladminはMySQLの管理用クライアントアプリ。
MySQLサーバはサービスで起動しているか、
Win9xなら普通のプログラムとして実行しているか。
723 :
720:04/12/30 02:57:02 ID:???
>>722 サービスをチェックしてみたら、その中にあったわMySQLが。
インストールしたらサービスで動作するのねMySQLって。知らんかった。
AD HTTPDみたく普通に起動させてないと動かないものと思い込んでた。
winmysqladminはあくまでも管理用のアプリで、MySQLの動作には直接は関係ないのね。
1つかしこくなりますた。レスありがd。
724 :
717:04/12/30 07:36:26 ID:???
>>719 挫折しました
makeinfo の所はインチキ技で突破したのですが
(単に依存関係まわりで makeinfo に入力ファイル名がわたっていなかっただけ)
今度はこんなエラーが
makeinfo: Removing output file `include.info' due to errors; use --force to preserve.
なんのことだかわからない・゚゚(´□`。)°゚。ワーン
include.texi から include.info を生成する時に何かがおこってるのかな
位にしか思えなくて、会費手段不明
>>724 makeinfo に -force をつけてやれば通るのでは?
726 :
717:04/12/30 15:15:50 ID:???
>>725 ごめん、もう4.0.22を入れちゃった
>>724 ./configure --without-docs
728 :
NAME IS NULL:05/01/03 18:15:54 ID:nFrxyPU7
いつもお世話になってます。
現在、自分が読んだ2chスレッドを取得するプログラムを作成中です。
取得したスレッドをテーブルに登録しているのですが、
以下の場合にだけ登録が出来なくなります(SQL文が実行されない)。
>INSERT INTO thread_news7 VALUES(1104277200, 141, "私事ですが名無しです","","05/01/01 11:02:20","K3Glvy4K","2005が出たらネ申");
「ネ申」あたりが怪しいと思い
INSERT INTO thread_news7 VALUES(1104277200, 141, "私事ですが名無しです","","05/01/01 11:02:20","K3Glvy4K","2005が出たら");
で登録したらすんなり出来ました。
どうやら「ネ申」という言葉に不思議な魔力があるようなのですが
これって何なんでしょうか?回避法などご存知でしたら教えてください。
ちなみにmy.iniでdefault-character-set=sjisとしていますが
DBに登録されるとなぜか日本語が文字化けしまくりです。
これも関係アリでしょうか?
------------
mysql:4.1.8
php:5.0.3
OS:Windows XP (SP無)
申がsjisで0x90 0x5cなのでその後ろの文字がエスケープされてる
730 :
728:05/01/03 18:44:02 ID:nFrxyPU7
>>729 ありがとうございます。そういうことだったんですね。
ところで、こういう文字ってたくさんあると思うんですが、
一つ一つ潰していくのが大変だと思います。
なんかうまいやり方ありませんか?
どうしたらいいか少しは自分で調べたり考えた方が勉強になるぞ
余計なお世話だったら無視してくれ。教えるのは簡単だけどさ。
>php:5.0.3
>OS:Windows XP
INSERTのSQL文をPHPスクリプト中に書いてるなら、
そのPHPはスクリプトのエンコーディングにSJISが使えるように
コンパイルしてる?
shift-jisの文字コードエスケープの問題はかなり有名だろ
736 :
サザビー:05/01/04 10:58:12 ID:RpmpU4TA
本日、初めてMySQLをインストールしました。
MySQL/bin/WinMySQLadmin.exeでユーザー名などの設定をするとマニュアルに記されていますが、WinMySQLadmin.exeを立ち上げても3秒くらいで画面が落ちてしまいます。
これはなぜなのでしょうか?
ご存知の方がおられましたら教えて下さい。
737 :
NAME IS NULL:05/01/04 11:28:14 ID:6V6teOmO
漏れもsage忘れた。。。吊ってくる。
739 :
サザビー:05/01/04 12:16:09 ID:RpmpU4TA
タスクバーに注意しましたが、なにも表示されませんでした。
原因不明でしょうか?
PHP4 MySQL+apache1.33 で動かしてるのですが
phpmyadminが以下のエラーが出てどうしても動きません。
扱えない拡張子のファイルです,
PHP の設定をチェックしてください。
ヘルプ
PHP自体は動く(WIKI等)のですが、これは何が原因なんでしょうか?
741 :
php板より参りました:05/01/05 10:34:20 ID:PUk94m52
SELECT word FROM TempTable WHERE NOT EXISTS (SELECT * FROM ngTable WHERE ngTable.ng=TempTable.word);
上記のクエリをmysqlにぶち込んでみたところ
something is wrong in your syntax : EXISTS (SELECT * FROM ngTable WHERE ngTable.ng=TempTable.word); 付近と出てしまいました
これはmysqlに対する副問い合わせができていないのでしょうか。解決方法をご教授ください。
ちなみにmysqlは4ver.0.18です。
INに変えてみると
SELECT word FROM TempTable WHERE NOT IN (SELECT * FROM ngTable WHERE ngTable.ng=TempTable.word);
something is wrong in your syntax : SELECT * FROM ngTable WHERE ngTable.ng=TempTable.word); 付近と出てしまいました
>>742 SELECT word FROM TempTable WHERE word NOT IN
(SELECT ng FROM ngTable);
こうしてみてくださ〜い
4.0ってサブクエリ対応してた?
>743 まったく同じエラーが出ましたー・・・・・
>744 サブクエリ対応は4.1系統のみなのでしょうか?
MySQL バージョン 4.1 以降では、標準 SQL で規定されているサブクエリのすべての形式と操作に加え、MySQL 固有のいくつかの機能をサポートしています。サブクエリを使用する主な利点は次のとおりです。
クエリの各部分が互いに分離されるように、クエリを記述することができる。
複雑な結合や集合処理を必要とする操作を、それらの処理を行わずに実行できる。
(多くの人々の意見として)判読しやすい。事実、初期の SQL が ``構造化問い合わせ言語'' と呼ばれるようになったきっかけは、サブクエリにある。
バージョン 4.0 より前の MySQL では、サブクエリの使用を避けたり、その使用に対処する必要がありましたが、これからコードを書き始める人々は、サブクエリがツールキットの非常に便利な要素であることがわかるはずです。
おまいらMySQLに突っ込んでるデータって何よ?
もしかしてSVNリポジトリとかMySQLに入れれる?
slash
質問です.
CSE で MySQL 4.0系に接続すると,次のエラーメッセージが表示されます.
(それ以外は,どの操作も問題なく実行できます)
----------------------------------------------------
アプリケーションの実行中に以下のエラーが発生しました。
エラー内容:
オブジェクト情報取得中にエラーが発生しました。
DBエラー詳細:
データベースの詳細情報を取得することが出来ませんでした。
----------------------------------------------------
これは一体なぜなのでしょうか?どうしたら解決するでしょうか?
どなたかお教えください。
環境は,MySQL 4.0.23-max(Windows2000) と,4.0.21-log(Debian Linux)
CSE ver1.59 です.
751 :
741:05/01/06 13:46:01 ID:???
SELECT word FROM TempTable WHERE NOT EXISTS (SELECT * FROM ngTable WHERE ngTable.ng=TempTable.word);
mysql4.018でこれと同等の効果を得るにはどうしたらいいのでしょうか?
SELECT word
FROM `tempTable` T
LEFT JOIN `ngTable` N ON T.word = N.ng
WHERE N.ng IS NULL
こうか?
753 :
750:05/01/06 15:17:51 ID:???
MySQLインストールできない〜〜
セットアップの最後のところ Processing configration ...
のStart service が
Could not start the service MYSQL.Error:0
とでて、cancelしか出来なくなる。
助けてください。ver 4.1.8-winです
>>754 同じエラーが私も出ましたが,実はインストールは済んでいて,どういうわけか
問題なく使えました.試しに,エラーを無視して使ってみては?
サービスの起動,停止は
コントロールパネル → 管理ツール → サービス
でも出来ます.
>>755 ありがとうございます。教えてもらった方法で起動してみようと
試みたところ今度は「エラー1067 : プロセスを途中で強制終了しました。」
と出てしまいました。フォルダを調べたところどうやらファイルは
正常にMySQLフォルダにコピーされているようです。
困りました…
>>755 私もまったく同じ現象で困っています。
私のは4.0.23のアンインストで失敗したのが原因だと思います。
一応、Install As Windows Service の Service Name を MySQL41 など別の
名前に変更すればいけるようですが、根本的な解決になっていません。
困った。
759 :
755:05/01/06 20:13:16 ID:???
私の場合,MySQL4.0 に4.1を上書きインストールするつもりで,同じフォルダを
選んでインストールしたのですが,すると先のエラーメッセージが表示されて
インストールが正常に終了しませんでした.
「アプリケーションの追加と削除」を見ると,
4.0 と 4.1 が両方ともインストールされたという状態になっていました.
(この状態での動作は確認していません)
そこで,MySQL のサービスを止め,winmysqladminを終了し,
MySQL を 4.0, 4.1 ともにアンインストールし,その上で 4.1 を再インストール
したところ,インストールが正常終了しないのは同じでしたが,4.1 が普通に
使える状態になっていました.
mysqldump が取ってあれば,インストールの前に関連フォルダを全部消してしまう
のが安全かも知れません.
今は4.0.23に戻していますが,そのときはフォルダを消してやり直しました.
(c:\mysql)
760 :
NAME IS NULL:05/01/07 00:45:42 ID:XMHN25LK
以下の手順でうまくいったことがあります。
Windowsディレクトリ直下に、my.iniが残っている場合があるので消してしまう。
サービスは、ServiceManager(フリーウェア)を使って削除。
761 :
NAME IS NULL:05/01/07 19:47:58 ID:FJEeP9Vp
すんません、スレ違いだったら誘導して頂けるとありがたいです。
ServletからJDBCでMySQLを検索する練習してるんですが、
検索結果が沢山あるときに、検索サイトみたいに10件くらいずつ
表示するようにしたいんですが、これってどうやればいいんですか?
毎回検索してはじめのデータを捨てるんですか?
>>717 遅レスだが、gmakeで難なく通った@FreeBSD4.10
あるvarcharのカラムに対して、小文字のiだけ入れると大文字に変わるの私だけですかね・・
aiを入力->ai(そのまま) iを入力->I(大文字に)こんな具合に化け(?)ます。
ふと思うところがあって、SQLを直接発行したら逝けました・・。
ODBC経由で入れたらまずかったみたい。首津ってきます。
765 :
NAME IS NULL:05/01/08 09:23:10 ID:PRicmdjx
%
と
mysql>
はなにが違いますか?
文字が違う
>>764 日記は、焼きミスったCD-Rにでも書いとけ!
>>765 上はshellのプロンプトの可能性が高く、
下はmysqlの対話モードのプロンプトの可能性が高い。
どちらも変更可能だから、あくまでも可能性。
>>761 そう、全部取って捨てる。
捨てないである程度次回に再利用できるJDBCドライバもあったはず。
MySQL4.1でLIMIT掛けてFOUND_ROWS()使う方法もあり。
771 :
NAME IS NULL:05/01/08 19:04:35 ID:MUIjcyKf
ねえねえ、CGIのFormで、ユーザとパスワードを入れさせて、
SQL文にかませるんだけど、データをデコードしなければ、
英数字以外って、16進数だから、
$str = "SELECT * FROM users ";
$str .= " WHERE user_name = '" . $user . "' ";
$str .= " AND user_password = PASSWORD('" . $pwd . "') ";
って感じで文字列を作ってMySQLに渡せば、
SQLインジェクション対策はOKって思っていいの?
773 :
NAME IS NULL:05/01/08 19:48:57 ID:CmkzWlMw
innerjoin と
select * from aa, bb, cc where aa.id = bb.id AND aa.id = cc.id
(whereでand でくっつけるやり方)
どちらの方法がいいのでしょうか?
あるデータベースだけ違うディレクトリに置くことってできますか?
ディレクトリ?
容量とかが問題なのかしら
InnoDB←読み方教えてください。
いんのでぃーびー
778 :
NAME IS NULL:05/01/09 06:13:31 ID:WMlak8T/
mysql.iniとmy.iniの違いってなんですか?
779 :
NAME IS NULL:05/01/09 08:34:28 ID:XP1oo5b4
780 :
NAME IS NULL:05/01/09 12:15:49 ID:UjMxcVYa
>>774 MyISAMなら、最初からデータベース毎にディレクトリをつくる。
テーブル毎ならCREATE TABLEで DATA DIRECTORYオプションとか
INDEX DIRECTORYオプションで指定できる。
InnoDBなら4.1.1以降my.cnfにinnodb_file_per_tableでテーブル毎に
データファイルをつくれるようになった。
781 :
NAME IS NULL:05/01/10 12:23:29 ID:94IELNqN
mysql5.0なのですがdrop tableしても応答がないことがあります。
コマンドプロンプトからだとまったく応答がないのですが、ctrl+cで戻ってみてみるとしっかりtableは消えているといった感じです。
応答がないためかphpに組み込んだ場合そこから先に進んでいない模様です。どのような解決方法がありますでしょうか?
「自己解決、原因の切り分けができない香具師はalpha版を使わない」
というのが最大の解決方法
alpha版使うんだったら英語のフォーラム行くのは必須
784 :
761:05/01/10 19:29:58 ID:1ivAlrTW
>>762>>770 ありがとうございます。
limitで何とかなりそうです。
でも、あんまり無駄なデータの取り出しをしないためには
一番最初にcount(*)か何かでデータ数を調べないと駄目なんでしょうか。
本を参考にしてJavaBeanで検索して、LinkedListに結果レコードをしまうようにしてみたんですが
もしlimitかけずに大量のレコードがヒットしちゃったら
LinkedListがメモリ沢山使いそうで何か気持ち悪いんです。
いろいろ考えたけど、他にいい考えを思いつかない・・・
FC2+MySQL3.23+PhpMyAdminでWebminから設定してます。
MySQLの「ユーザの許可」でユーザを追加しphpmyadminでアクセスすればBASIC認証でログインできましたが
てきとうなユーザ名+パスワードなしでもログインできてしまいました。
「ユーザの許可」にMySQLインストール時からある匿名ユーザにパスワードが設定されてないので
このせいだと思い設定したところMySQLが起動できなくなりました。パスをなしにすれば正しく起動します。
これは正常なのでしょうか。また匿名でのログインを許可しないように設定するにはどうしたらいいのでしょうか。
リモートホストからの全ての問い合わせを拒否する設定ってどうするんでしょうか?
ローカルだけで使いたし。データ丸見えにしたくないんです。
787 :
NAME IS NULL:05/01/11 08:13:38 ID:OFQtILMJ
javaからmysql呼び出した際にクエリーを複数送信できないんですかね?
「カーソルの状態が無効です」とか出るんですけど何でなんですかね?
javaもmysqlも素人ですが何か?
>>788 で、できるのか否か教えてくれたら凄く嬉しい
>>784 limit掛けないとメモリ食うよ。
以下、何を問題にしてるのか不明なんだけど。
「limit掛けずに」とか言ってるけど、
今はlimit掛ける話をしてるわけでしょ?
“件数”と“limit掛けたデータ”の両方が欲しければ、
FOUND_ROWS()使えばいいわけだし。
794 :
NAME IS NULL:05/01/11 23:08:16 ID:a9o+a9pA
Windows XP SP2にするとMySQL自体が動かなくなりました。
mysqladminとかmysqldとか全部が・・・・・
SP2にした人で原因がわかる方、ヒントでいいのでお願いします
問題なく動くよ
796 :
761:05/01/12 01:33:36 ID:wVszRYBC
>>792-793 limitとSQL_CALC_FOUND_ROWSでなんとかできてきました。
はじめのFORMのあるページにhiddenで隠して開始番号と表示件数をパラメータにして
それをサーブレットで受け取るようにしてみました。
次のページにも検索文字列と一緒にそのパラメータもGETで渡すようにしてみてます。
でも、GETで送る日本語パラメータがちゃんと受け取れなくて困ってます・・・
URLEncoder, URLDecoderを使ってもうまくいかない・・・
パラメータに#が入ってるとIEの場合だけ問題が起こるよ
MySQL-Front
http://www.mysql-front.com/ Beta Version 3.2, Build: 0.13:
Release Version 3.1, Build: 14.14
共に日本語に対応しました〜。
(データはSJISのみ対応を確認済み)
799 :
NAME IS NULL:05/01/12 15:08:02 ID:o/4MMi5P
>>771 PASSWORD()関数を使っていたのでちょっと気になったんだけど、
MySQLオンラインマニュアルには以下のような記述があります。
-----------------------------------------------------------------
注意: PASSWORD() 関数は、MySQL サーバの認証システムで使用される。
アプリケーションでは使用しないこと。アプリケーション用には、
MD5() か SHA1() を代わりに使用する。アプリケーションでの
パスワードと認証の安全な処理の詳細については、 RFC-2195 も参照。
-----------------------------------------------------------------
http://dev.mysql.com/doc/mysql/ja/Miscellaneous_functions.html 理由はわからないけれど、sha1かmd5を使うのが無難では。
800 :
NAME IS NULL:05/01/12 15:54:01 ID:upRH3x+c
基本的な事で質問があります。
mysqlで作成したDBの
ユーザー名とパスワードは
どうやって設定するのでしょうか?
DBは
mysqladmin create testdb
で作成するのは分かったのですが
ユーザー名とパスワードの設定方法が分かりません。
大変基本的な事で申し訳ないのですが
ご教授頂けますと幸いです。
村上氏に聞きな、間違った知識提供する著者は多いからな
805 :
800:05/01/13 12:24:04 ID:+VXpjb7J
>801さん
RESありがとうございます。
GRANTでユーザーを作成出来るのは大体わかったのですが
ユーザー名:hoge
パスワード:fuga
で作成する場合どのように表記するのか構文がわかりません、、
申し訳ないのですがお教えいただけないでしょうか?
dbは
mysqladmin create testdb
で作成いたしました。
806 :
NAME IS NULL:05/01/13 23:15:16 ID:nSIbcpDs
foreign keyについての質問です。
馬鹿っぽいと思われるかもしれませんが、primary keyだけではなくて、titleと言う名前のvarcharフィールドも共有したいと思ってます。
具体的には
tableA
id int unsigned auto_increment primary key
title varchar(255)
・・・・・
tableB
id int unsigned primary key
title varchar(255)
・・・・・・
で、tableAのtitleを更新したらtableBにある、同一idのtitleも更新されるようにしたいのですが。
二つのテーブルで二つ以上の同一フィールドを持つ自体が、DBの最適化を知らない素人だと思われるかもしれませんが。
まずは可能か不可能か?
そして可能で有れば、どのような方法が有るのかを、是非ご教授願いたく。
よろしくお願いいたします
807 :
761:05/01/13 23:31:33 ID:???
>>797 Firefoxからも試したりといろいろやりましたが
とりあえず自力では解決できませんでした・・・
これ以上はすれ違いなので失礼します。
limit教えてくれた皆さんはありがとうございました。
>>806 MySQL4.xだとできないなぁ。
MySQL5.xで出来るかもだけど。まだ駄目かな。
質問致します。。
当方winxpでMySQL4.0.22を最初に使っていたのですが
ある日突然show databases;で見たら
mysqlが消えていて・・・
自分で作ったデータベースは残ってました。
それで新しくデータベースを作ろうとしてもエラーが出て
仕方なく再インストールしても相変わらず同じ状態でした。
それで調べて、まずsc.exeというツールが有って
それをコマンドプロントからsc delet MySQLとしてからc:\に有ったmyも消しました。
その後、再インストールしたら起動しなくなってしまって
今は4.1.8を使ってるのですがこれも最初固まったままで
今は何故か動くには動くのですが
出来ればMySQL4.0に戻したいですけども
正しいアンインストールとうか再インストールって出来ますでしょうか?
長文申し訳御座いません。
。。←何コレ
( ● ・3・ ● ) エェー 句点じゃないKANA
正しい日本語で質問してくださいね。。
ではまず正しい日本語の定義からはじめようか。
--with-charset=ujis
815 :
NAME IS NULL:05/01/15 16:14:09 ID:D9erU1BS
>>803 MySQLに限らず、プログラム関係の本って平気で嘘を書いているものが
少なくないしね。
本屋の立ち読みでパラパラとページをめくっていると
「お前、公式ドキュメントを読んだこと無いだろ」って
突っ込みたくなることが時々ある。
ところで村上氏って誰?
816 :
NAME IS NULL:05/01/15 19:19:32 ID:4FHOd537
基本的な質問でごめんなさい。
VB.NETとMySQLの接続の仕方が全くわかりません。
方法の紹介がされているサイト、書籍などを知っている方がみえましたら教えて下さい。
お願いします。
>>816 odbc mysql vb.net でぐるる。
>>816 MySQL? Connector/Net
http://www.mysql.com/products/connector/net/ ダウンロードしたら、中にクラスの説明やサンプルが
chmのヘルプファイルに入ってるので、それみて作る。
見ても判らないなら、MySQL(またはSQL)の一般的なことが判って無いか
ADO.NETが判って無いかなので、そっちを先に勉強する。
OOPで何らかのDBMSを操作した事があれば、サンプル見て
ごにょごにょやってるうちに直ぐに使えるようになるよ。
820 :
NAME IS NULL:05/01/15 21:56:36 ID:4FHOd537
819さん
ありがとうございます
821 :
NAME IS NULL:05/01/16 18:24:46 ID:npEsoqm0
ADOによる接続について質問です。
OS: Windows XP Proffessional SP2
MySQL Server Version: 4.1.8-nt
MyODBC Version: 3.5.1
データベース(home)作成後、ユーザー(home)をパスワード(home)で作成しました。
以下の接続は、成功します。
mysql -h localhost -D home -u home -p
ですが、ADOで以下の接続文字列でOPEN使用とすると
Driver=MySQL ODBC 3.51 Driver;Server=localhost;Port=3306;Database=home;User=home; Password=home;OPTION=3
ソース: Provider
コード: 8000FFFF
エラー: 致命的なエラーです。
というメッセージが表示されてしまいます。
ちなみに、DSNを使用した接続でも、同様なエラーがでました。
間違っている箇所がおわかりになりましたら、ご指摘お願いします。
822 :
ライセンスがわからない:05/01/18 16:43:33 ID:P5wzg3Rv
ライセンスで教えてください。
・S社の社内WEBシステム開発を受託
・弊社は開発ライセンスが必要でしょうか?
・S社は実行ライセンスが必要でしょうか?
・ライセンス数はWEBサーバーが1台ならば1で良いのか?
>>822 ・開発ライセンス、実行ライセンスの区別はない。
・サーバ1台なので1ライセンスでOK。Webからの接続数、ユーザ数、マシンのCPU数は問わない。
(WEB以外からMySQL社製のクライアントライブラリを利用した接続の場合は別)
825 :
NAME IS NULL:05/01/19 01:57:01 ID:YeGNeTDn
MySQLってどのくらいまで大きくして大丈夫なのでしょうか?
あとDBを大きくし過ぎるとどんなマズイことが起こるのでしょうか?
1ファイル4GB以上になるばあいは、create tableするまえに設定が必要。
一応そのぐらい。
あと、テーブル数があまりに多いと、OS自体の動作が遅くなる。
あとは、無駄にでかいテーブルはキャッシュのききが悪くなるかな。
動画と静止画と音声データをごっちゃにして(タイムスタンプ順にする)テーブルに入れるときの
データタイプって何がいいんですか?仮に別々にするとどうですか?
動画も静止画も音声データも、DBからみたらみんないっしょ。
マルチメディアデータをDBに格納するのは、メリットよりデメリットの方が上回る気が。
メリットっても精精、管理が一緒なのでバックアップが楽なぐらい。
そのバックアップの楽さも、別に管理しても極端にめんどくさくなるわけでも無いしね。
>827
MySQL3で1データベース中に4万テーブルってのは見たことあるけど
普通に動いてたよ?
要素じゃなくてテーブルの数が4万か・・・
832 :
825:05/01/19 14:49:51 ID:YeGNeTDn
かなり大丈夫なのですね。
安心しました、どもです。
テーブルが4万かよ...。
テーブル4万で普通に動くと聞いて俺もちょっと安心した
すいません、apache,MySQL,phpを入れ、自宅にhttpサーバを立てデータベースを管理しようとphpMyAdminをインストールしたんですが、パスワードを入力しphpMyAdminに入りデータなどは弄れるんですが、
ログアウトの際ログアウトのボタンを押すと、何故かログイン時の
ユーザ名とパスワードの入力画面が現れ、phpMyAdminにログインした際のユーザ名とパスワードを入れても弾かれ、消したはずのroot/パスワードを入力すると、rootでログインしてしまいログアウトできません。
どうかアドバイスをお願いします。
phpMyAdminの認証モードはhttpです。
使用環境はW2K、apache1.3.33、php4.3.10、MySQL3.23.49、phpMyAdmin-2.6.1です。
836 :
NAME IS NULL:05/01/20 14:02:50 ID:UoPbFkOB
batchモードで実行時、
エラーなどの標準出力をログファイルとして出力する方法はありますか?
エラーは標準エラー出力じゃね?リダイレクトすればいいじゃん
838 :
NAME IS NULL:05/01/22 12:58:56 ID:jlZOSGV8
freebsd4.2で、mysql4.1-client,server,scriptをportsからいれたのですが、
「
#su
ほげほげ
#find / safe_mysqld -name -print
」しても、
safe_mysqldがみあたりません。。。どうすればいいんでしょう?
840 :
NAME IS NULL:05/01/23 01:23:24 ID:F1RV0zE5
FreeBSD4.10使ってるので、linuxthreadオプション付けてportsからインストールしました。
で、まあこれでOKだとは思うのですが、linuxthreadで動いてるという確証?みたいなのを確認したいんです。
コンパイルオプションを表示できたりとか他の方法でもいいので、linuxthreadで動いてるよ、って分かる方法ないですか?
>>840 psとかtopで見たときに、linuxthreadなしのやつはmysqlが一人しかいないけど、
linuxthreadだとmysqlがいっぱいいる。
842 :
NAME IS NULL:05/01/23 05:14:13 ID:7eVUqPcY
FreeBSD 5.2-RELEASEで、MYSQL4.1をポートインストールしたのですが、/etc/my,cnfを書いても、
mysql> mysql -u root -p
warning: World-writeable config file /etc/my.cnf is ignored
といわれてしまいます。
どうすればいいのでしょうか?
警告メッセージの意味は無視ですか、そうですか。
>>841 おお!ありがとうございます。
確認してみます。
845 :
NAME IS NULL:05/01/23 23:09:43 ID:TsryjGr9
このDB、ADO.NETプロバイダのドライバってないのですか?
848 :
NAME IS NULL:05/01/25 23:11:46 ID:N4uy5BXa
今2chのスレッド検索作っていて、
検索をlike '%検索ワード%' で検索すると10数秒かかってしまいます
どうにか早くする方法ないでしょうか?
正規化する
制約等極力外す
indexを張る
>>849 前後両方にあいまい検索かけるのはどうしても遅くなる。
853の言うようにその項目にindexを張るとかしかないね。
あとはnamazuみたいな全文検索エンジンとかSQL以外を選択するとか。
検索に特化して、特殊な索引を作るから、条件があいまいになるほど
SQLよか速くなる。(件の前後同時のあいまい検索とか)
Kakasi とか Chasen で文字列分割した状態で保存して
binary 指定させれば日本語でもなんとか MySQL で全文検索ができるがどうなんだろうな
>>848 内容はどれもショボく見る価値もない!!っが一番下のコメント記入フォームがなんで2つあるのかが知りたい。
>>851 単純に鯖パワーの問題だろ。
Opteron250x2のメモリ4GB〜&15KSCSI-HDDを5台くらいでRAID-5のマシンを2台用意して、
WebとDBを完全に分離して動作させれば
ttp://makimo.to なんざ目じゃないほどの超高速検索ができる。
と妄想してみますた
力技も嫌いじゃないが、極力頭を使うようにしないと
どんどん馬鹿になる。
バイナリファイルを格納してそれを問い合わせたときに
それなりのアプリケーションにデータを流し込むことってどうやるんですか?
できればその回数をカウントしてそれもデータベースに
まずそのアプリケーションの口をあけさせて、そこに最初はゆっくり、最後は一気に流し込む
バッチファイルでできますか?
アプリケーションの口をあけさせてるの?
>>849 全文検索関係のスレで聞いたほうがいいでしょ。
MySQLでも全文検索がいちおうできるしパッチを作ってる人もいるみたいだけれど、
基本的にはRDBMSは全文検索するためものではないので。
865 :
NAME IS NULL:05/01/27 00:04:38 ID:kLWE/KJf
866 :
NAME IS NULL:05/01/27 01:18:57 ID:yGFL5Wie
MySQL3.23.58を使っています。
文字コードはEUC-JPです。
ごくごく一般的な顧客管理のためのシステムを作っていて、
顧客マスタテーブルには「フリガナ」というフィールドが存在します。
フリガナを部分文字列検索したいのですが、
「は」や「ま」でSELECTした場合にはうまくいくのに、
なぜか「つ」や「や」ではうまくいかず、全件ヒットしてしまいます。
原因と対策をお教え頂ければ幸いです。
もまいの使っているプログラムが
(与えられた文字数が少なすぎて)文字コード自動判定に失敗していると思われ。
>>866 最初から3文字以下は検索対照からはずせ。
869 :
866:05/01/27 09:33:21 ID:???
>>867 >>868 ありがとうございます。
そうですか・・・
1文字や2文字でのLIKE検索をすることはどうしても不可能ですかね?
>>869 プログラムの方の作りをもうちっとマシにすれば
可能になるんじゃねーの。hiddenで長文列渡すとか。
MySQLの話じゃ無さそうだな。
>>870 >
>>869 >プログラムの方の作りをもうちっとマシにすれば
>可能になるんじゃねーの。hiddenで長文列渡すとか。
>
>MySQLの話じゃ無さそうだな。
長文渡さなくても「美乳」でOKだよ。
もっと言やあ「日」でOK。
(SJIS/JIS/EUC判定の場合ね)
872 :
869:05/01/27 18:52:05 ID:???
>>870-871 ん?なんか誤解されてるような・・・
SELECT * FROM TABLE_NAME WHERE 'フリガナ' LIKE '%ま%'
はうまくいくのに
SELECT * FROM TABLE_NAME WHERE 'フリガナ' LIKE '%や%'
がうまく行かないのはなぜ?っていう話なんですが・・・
>>866 カラム、もしくは、クエリにBinary属性つけてますか?
binaryついてないと、大文字、小文字、区別しないあたりの処理で
そんな感じになることがあります。
874 :
866:05/01/27 20:16:34 ID:???
>>873 おぉ、ありがとうございます!
Binaryつけたらうまくいきました
>>873 いや、DBをきちんとEUC-JPに設定してれば
そんなこと(binaryが必要)にはならんのだが。
不適正な設定(latinとか)になってるんでないの
876 :
866:05/01/27 22:31:32 ID:???
>>875 ほんとだ!
character setがlatin1になってました・・・
877 :
875:05/01/27 23:54:12 ID:???
879 :
NAME IS NULL:05/01/28 22:55:25 ID:/4DtIs8m
神様、哀れな初心者をお救いください。
重複するレコードを見つけるには、group by句を使うことは解ったのですが、
最終的にチョイスされるレコードに条件を付けることは出来ますか?
例えばですが、
-------------------------------
1,ダックス,オス,3才
2,ダックス,オス,2才
3,ダックス,メス,5才
4,チワワ,オス,3才
5,チワワ,オス,2才
6,チワワ,メス,5才
-------------------------------
とデータがあるとして、
犬主で group by して、チョイスされるレコードは、若い子順にしたいのです。
なので、検索結果をこう出したいのです。
-------------------------------
2,ダックス,オス,2才
5,チワワ,オス,2才
-------------------------------
よろしくお願いします。
880 :
873:05/01/28 23:28:46 ID:???
あらま。間違ったこと教えてしまったようで。
ごめん。勉強になった。
882 :
NAME IS NULL:05/01/29 00:49:12 ID:33SCGnuL
>>881 私が知る限りの order by だと、検索結果が対象であって、
group 内の order by ってできるんですか?
ダックス,メス,2才がいたらどうなっちゃうちゃう?
884 :
NAME IS NULL:05/01/29 01:03:24 ID:lXfHR+co
>>883 とにかく、group内の orderが決められればうれしいです、神様。
885 :
884:05/01/29 01:12:48 ID:lXfHR+co
切羽詰っているので、連続ですまそですが、
HAVING 句 をうまく使うのかな・・・
キーって何?どうやって使うと(゚д゚)ウマーになるの?
>>879 若い順ではなく一番若いのを抽出したいなら、
自己JOINして自分より若くないやつがいないレコードを取り出す
SELECT a.*
FROM test a
LEFT JOIN test b ON (a.kind=b.kind AND a.age > b.age)
WHERE b.id IS NULL;
こんなんで答えになってるかな?
888 :
884:05/01/29 08:38:13 ID:lXfHR+co
>>887 レス、ありがとうです!
希望通りの検索結果が出ました。
自己JOIN というものを勉強します。
どうもでした!
889 :
887:05/01/29 09:27:18 ID:???
>>888 >自己JOINというものを勉強
つうか、キーワードは外部結合(LEFT JOIN)な。
たまたま外部結合を自分自身で行なうから自己JOINとか
言ってみただけだ。
最初の 「select a.*」 を 「select *」 に変えて、
「 WHERE b.id IS NULL」を外して結果を見てみると
LEFT JOINのしくみが解り易いだろう。
>>883が指摘したようなレコードを入れるとこのSQLの
結果はどうなるか、とかな。
具体的な課題があって、納期や締切りがあって切羽詰ってる時の
経験が一番勉強になる。がんがれ。
先日、思い立ったようにmysqlを起動させて見たら
前にパスワードを設定していたらしく、そのパスワードがどうしても思い出せなく
ログイン出来ないのですが、どうしたらいいでしょうか?
OS linux Fedora Core2
>>887 おぉっ、そんな手があったのか。
今までそう言うときは別にキー作ってたよ。
こんど試してみよう。
いま、887のやりかたやってみたけど、件数が多いと速度が実用的じゃないな。
いいやりかたなんだが。
>>893 IS NULLが引っかかってるんじゃね?
自身と結合するのは内部結合という気がするがまぁどうでもいいな
895 :
ちょん:05/01/29 21:56:37 ID:+Zw8o1nC
MYSQLにVB.NET(ADO)で繋ごうと思っているんですが
繋げません・・コネクションすら張れません・・
どなかたお力添えお願いします
ADOバージョン .2.8
MYSQLバージョン 4.1
ODBCドライバ 3.5
VB.NET(STD) 2003
MYSQLサーバー
WINDOWS XP OR WINDOWS 2000
charset SJIS
他は特にいじってません。
開発環境
WINDOWS XP Pro SP2
VB.NET(STD)
COMのインポート
MSDASC
ADODB
Dim adoCo As New ADODB.Connection
adoCo.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=127.0.0.1;" & _
" DATABASE=test;" & _
"UID=root;PWD=****;OPTION=3"
adoCo.Open() オープンでエラー(致命的なエラー)
System.Runtime.InteropServices.COMException' のハンドルされていない例外が あるらしい
adoCo.Close()
Dim adoCo As New ADODB.Connection
adoCo.ConnectionString = "dns=*****"
adoCo.Open() オープンでエラー(DNS見つからないエラー)
adoCo.Close()
もちろんDNSは登録してあります。ODBCマネージャーでからのドライバーテストは成功しています。
VBのサーバーエクスプローラーからも致命的なエラーで登録不可です。
VB.NETってCOMコンポーネントって使えないんでしょうか?
ドライバーのトレースしたんですが見方がよくわかりません。自分なりの解釈ですと
接続ハンドルがアプリケーション側に渡って来ないようなんですが・・・
ODBCドライバーも入れ替えたりしたんですが接続できませんでした。
よろしくお願いします。
896 :
NAME IS NULL:05/01/30 17:17:30 ID:kph/mXfc
FreeBSD 5.2-RELEASEなのですが、
ps -aux | grep mysql
すると、
2つのひっかかるのですが
/bin/sh /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysql/31.com.pid
usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/db/mysql --pid-file=/var/db/mysql/31.com.pid --port=3306 --socket=/tmp/mysql.sock
これって変ですか?
実は、mysqlコマンドでもブラウザからでもmysqlのDBにアクセスできなくて困ってます。
どうすればいいのでしょうか?
お前らに質問。
phpMyAdminでselectすると文字が化ける。
これなんで?
環境
macosx, mysql 4.1.7 , php5.03 ,phpMyAdmin 2.5.7-pl1
my.cnf でujis ,php.iniでEUC-JPを設定。
phpMyAdminのmysqlの変数を見てみると、何故かセッション値とグローバル値が異なる。
ちなみに、terminal(macosxのコマンドライン)では日本語OKなんだ。
変数 セッション値 グローバル値
character set client latin1 ujis
character set connection latin1 ujis
character set database ujis ujis
character set results latin1 ujis
character set server ujis ujis
character set system utf8 utf8
分かる奴いる?
899 :
897:05/01/31 00:19:49 ID:???
>>1も読めないクソガキが沸いてまことに申し訳ございませんでした。
以下、今までのような普通のスレをご覧ください。
901 :
897:05/01/31 00:56:54 ID:???
>>900 ああ、それね。
見たけど、のってないのよ。
>>897 >分かる奴いる?
いる。俺が超ド素人の時に同様の現象でハマった。
navicat6.0.7を使用期限解除する事に成功。
たった3箇所書き換えるだけで解除できた。
解除しようと思った経緯はあるエミュを動作させるのにmysqlが必要で、
dbを管理するのに適したnavicatのうざったい使用期限を無くしてしまおうと思ったわけです。
ついでにTRIALの字消しもした。
まず使用期限云々を消すのに一箇所をEBに書き換え、
あと2箇所をそれぞれ20 20 20 20 20で埋めた。
日記はチラシの裏に...
公式サイトから
Windows Essentials (x86)4.19をダウンロードして
インストールしたのですがBINの中に
winmysqladmin.exeが見当たりません。
いったいどこにあるのでしょうか?
4.1系では廃止
一応互換性のためにインストールもできるけど、
肝心のconfig書き換えるツールがついてるから用なしということらしい
無理やり新規上書きされるからあれも使いにくいんだけどな
908 :
ttt:05/01/31 16:03:50 ID:ylFPCCrs
トランザクション管理におけるロールバックの必要性を. 具体例を示しながら説明する ...
とちゅーまで処理してたけど、やっぱりやめたって時にろーるばっく
910 :
897:05/01/31 22:26:33 ID:???
>>902 ,903
↓これのこと?
mysqli_options(connection, MYSQLI_READ_DEFAULT_FILE, "/etc/my.cnf");
mysqli_options(connection, MYSQLI_READ_DEFAULT_GROUP, "php");
すまんが、今のオレではどこで使えばよいかわからん。
もうちょい、手取り腰取りお願いします。
911 :
897:05/01/31 22:50:11 ID:???
さらにすまん。
↓これのことか。
●PHP(Ruby,Perl,C,...)のアプリの変更。サーバーに接続した後にすぐ、"SET NAMES キャラクターセット名" という SQL 文を実行する
●PHP(Ruby,Perl,C,...)の MySQL モジュールの標準キャラクターセットを、自分が使うキャラクターセットにする。これはアプリの変更はない。しかし、libmysql.dll, libmysqlclient のコンパイルし直しが発生する。
上でいきたいんだが、phpMyAdminではどうすれば。。。
すまんが、腰取りお願いします。
>>911 何も考えなくて良いのはPHP(のMySQLクライアント)に
パッチがあたったものを使うこと。MyNAにあったと思う。
913 :
912:05/01/31 23:58:44 ID:???
ああ、上か。
PHPのスクリプトをgrepして該当しそうなところを書きかえ。
取り合えず自分でやってみれ。
データ入れたんだけど次なにすればいいのかにゃ?
俺に聞かれてもなー。
>>914 エロ画像やエロコピペをデータとして保存/取り出し(閲覧)できるようなプログラムを書き、君のPCの中にある膨大な量のエロ関係を移す。
で、MySQLにパスワードをかければ、君が死んでも名誉はまもられる。
>>916 ロールモデルを提案してくれ。エロペグ5万枚+2000枚/月だ。
重複チェック機能とグロ&しょぼいの検出機能は必須な。
とりあえずトランザクションは全く考慮しなくていいのでMyISAMは確定な。
重複チェックはmd5でいいだろう。
もしくはmd5+ファイルサイズ。
この重複チェックを抜けるのは誤差みたいなもんだ。
見たか見てないかすら判断付かない数だから気にしなくてOK
sha1使って実際にやっているが、それ以前にMySQLだと同時接続周りがショボいので
多人数で使う場合にデカいファイルで取り出しに長時間かかるとダメだったりする。
920 :
NAME IS NULL:05/02/03 01:41:05 ID:Etcvc3Ee
MySQL-4.0.22とかねやん1.43を使ってます
かねやんで新規ユーザ登録するために
ユーザー情報で必要事項入力した後に更新を押すと「更新に失敗しました」と出ます
どうしたら登録できるようになりますか?
921 :
920:05/02/03 02:19:29 ID:???
結局、ユーザー登録はmysqlプロンプトからやりました
でも、かねやんからデータベース作成ができないです
「設定」→「データベース作成」でサンプルを作った後に
「設定」→「テーブル新規作成」を選択する事ができません
文字が半透明になっている状態です・・・
なにか設定が足りないんでしょうか?
どうしたら「かねやん」でできるようになりますか?
かねやんってなんやねん
>>922 >>3 参照
かねやんに限らず、この手ので「上手く動かない」は
libmysql.dllのバージョンの差異があったりする。
924 :
920:05/02/03 15:43:59 ID:???
>>923 あの〜すいません
何も設定してないとlibmysql.dllはないですよね、今readme見ました
すいません、逝って来ますorz
バージョン4.1.9
どう工夫しても、りテーブル名に2バイト文字を使ってはダメなのか・・・
my.cnfやmyodbcの設定ではどうにもならい。
なんとかなると思って、5時間も無駄にしてましった
926 :
NAME IS NULL:05/02/04 10:59:17 ID:j4q4WnMV
Mysql 4.1.9 をコマンドプロンプト上で動かしています。
set names 文などでサーバとクライアントのキャラクターセットを同じにしました。
statusコマンドで確認しても
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis
と表示されるのですが、それでも「ソ」など 5C のコードを
含む文字が上手く insert できません。(下記の様になります)
どなかた解決方法をご教授ください。
mysql> use test
Database changed
mysql> create table my_table(moji char(10));
Query OK, 0 rows affected (0.40 sec)
mysql> insert into my_table values('あああ');
Query OK, 1 row affected (0.04 sec)
mysql> insert into my_table values('ソソソ');
'>
927 :
926:05/02/04 11:08:36 ID:j4q4WnMV
sjis の文字コードの関係で後ろの文字がエスケープされているのは分かるのですが、
できれば文字コードは sjis のままで動作させたいと考えています。
ちなみに、同様のことは今まで使っていた 4.0.18 では問題なくできていました。
SQLにSJISは鬼門
>>928 SJISとSQLには何の関係もないがな
日本語周りがダメなのはMySQLだけ!
ここは他のDBにない特長といえる
質問です。PHPでランキングを作っているのですが、点数が重複しているレコード
のKeyを習得してくるクエリーでシンタックスエラーが出て困っています。
できればどなたか宜しくお願いします。DBはMySQLです。
//エラーのでるクエリー。大文字で書いてあるのはテーブル、フィールド名
select * from RANK where CNT = (select CNT from RANK group by
RNK having count(CNT) > 1);
一つミスです。レコードのKeyではなく、レコードを習得してくる、でした。
それだけで何が分かるというのだ、君!
副問い合わせの予感…
934 :
NAME IS NULL:05/02/05 19:54:32 ID:UAvLwy1D
date型のフィールドを2つ持っているのですが
これらの時間差を計算したいのですがどうすればよいのでしょうか?
例えば17:00:00から8:30:00をひいて8:30みたいにだしたいのですが・・
935 :
934:05/02/05 19:55:21 ID:UAvLwy1D
失礼しました。
date型じゃなくてtime型です。
937 :
NAME IS NULL:05/02/05 23:52:31 ID:185xDm1w
上の方でmysqlのsjisが鬼門と聞いて怖いのですが
質問させて貰います。
winxpで
mysql4.1をaccess2003で操作しようと思ってmyodbc3.51.11をインストールしました。
accessからodbcでリンクさせると繋がるには繋がるんですけども日本語入力したら
エラー#1267と出てカラムの中の表示が全部?nameになります。
エラーメッセージでsjisっとlatin1_swedishの・・collationは駄目だよ、君
と英語で怒られます。
jdbc経由でjspやサーブレット(utf-8)から使っても普通に文字化けしないですが。
出来ればユニコードで統一したかったのですがコマンドプロントはsjis以外だと
文字化けで使えないの取りあえずはmysqlをsjisで使ってます
それで一応確認の為、mysqlのstatusのコマンドで見ても文字コードは全部sjisになってるし
accessはsjisが使えないのですか?それとも自分の知らない内にlatin1になってるでしょうか・・・?
頭の良い方、どうぞよろしく御願い致します。
mysqlでっていうか、mysql4.1は日本語自体に難ありじゃなかったか?
4.1.x はまだ文字コードに関して安定していない。
副問い合わせが必要でない限り 4.0.x を使う方がいい
過去ログ嫁
マルチやめろ
941 :
NAME IS NULL:05/02/06 14:13:47 ID:rLKYDgcs
Mysqlを4.1.9にしてデータをUnicode(utf-8)で保存し、webでの表示上は
問題ないのですが、Dumpファイルが文字化けしてしまいます。My.cnfの設
定が悪いのかと思い、[mysqld]セクション以外にも[mysqldump]セクション、
[mysql]セクションともに、default-character-set=utf8を設定してみまし
たが、全く変化がありません。
他の理由を教えてください。
そのテーブルがどういうストレージエンジンか調べるにはどうやればいいんでしょうか?
describe XXXじゃ出てこないですよね。
>>940 頭の悪い奴には聞いてないから出てくるな
mysql4.1と5.0で文字コードをutf8にしたら
何故かaccess2003から日本語でも操作出来た。
意味不明だしコマンドプロントからだとsjisじゃ無いから当然文字化ける
がまぁaccessでもsq文で使えるからこのまま行く羽目に・・・
過去ログ嫁
マルチやめろ
サーバの MySQL バージョンを 4.0.18 から 4.0.23 にバージョンアップしたところ、
localhost 以外のクライアントからのアクセスができなくなってしまいました。
(クライアントのバージョンは 4.0.18 のまま)
そこで元のバージョン(4.0.18)に戻してみたのですが、やはり同じでした。
インストールには何も問題はなく、権限テーブルも一切変更していません。
原因としてどのような事が考えられますでしょうか?
948 :
947:05/02/07 11:50:38 ID:???
エラーメッセージは「ERROR 2003: Can't connect to MySQL server on '192.168.90.150' (10060)」という表示になります
949 :
NAME IS NULL:05/02/07 12:20:28 ID:TEspFIfg
>>947 /etc/my.cnfの[mysqld]にskip-networking書いてない?
951 :
947:05/02/07 14:18:36 ID:???
>>948 レスありがとうございます。
my.cnf というファイルは特に作成していませんが、
MySQL インストール時に作成される C:\WINDOWS\my.ini にはskip-networking とは書いてありません。
my.ini の内容は↓です。
[mysqld]
default-character-set=sjis
basedir=C:/mysql
datadir=C:/mysql/data
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-max-nt.exe
user=○○○○
password=□□□□
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
サイト内検索を考えています。
サイト内検索を行おうとする際に、Database を利用するのがいいとの事です。
それには、サイト設計をきちんと行っていないと、いけないということですが、
DATABASEを利用するのに良い、サイト設計方法等ありますでしょうか?
953 :
NAME IS NULL:05/02/07 14:48:44 ID:TEspFIfg
RedHat7.3にmysql-3.23.58-pc-linux-i686.tar.gzを
手動でインストールしたのですが、アンインストールの方法は
どうすればよろしいのでしょうか?
先にPHPがインストールされてましてあとからMySQLをいれて
PHPから利用したいのですが、PHPinfoみてもMySQLの
情報がでてきません。
>>954 手動でアンインストール。
phpは--with-mysqlでコンパイル。
MySQL4.1って本当に正式版か?
windowsでperlのdbd::mysql使ってsqlをいっぺんに登録するスクリプト書いたんだが、
えらい時間が掛かって変だなと思ったら、2.5Mのデータが3.2Mに増えやがった。(w
増えてたデータってのが主キーつけてなかった所ので重複登録されてやがんの。
>>952 俺もグーグルがいいとおもうよ。
大手メーカーでも、例えばHONDAなんかはサイト内検索もグーグルだよ。
Google使えば、部分的な検索の制御が難しくなる。
たとえば、現在の階層以下を検索する場合とか、BBSのスレッド内のみを検索とか・・・
DBを使えば、自由自在に組み込める。
>>952 上記のような、部分的に検索させるような検索じゃなきゃGoogleとか、可能ならnamazuとか使ったほうがいい。
サイト設計っていうか、普通のHTMLページからDB対応にするには、一から設計し直したほうがいい。
必要なデータ領域は、すべてDBに格納して、JSPやPHPから読み出して表示するように・・・
で設計ファイルはXMLとかにまとめると管理が楽。管理者専用の管理ツールも作れば更新も楽。
個人でやる分には、PHPとかが一番いいと思う。超簡単。
管理・メンテ重視で鯖のパワーがそこそこある場合は、やっぱりJavaServlet/JSP/EJBで構築するのが一番。
どのみち、データベースを使うにはWeb系プログラミングの知識は必須。
>>944 Accessは97以降でUnicode対応だろ
毎回のアクセスでDB接続となると、接続数増えてくるとMySQLじゃやばそうだな
>>961 普通にDB対応BBSとかだとそうなるだろ。
>>960 最近のDBは、そんなに脆くないよ。
一昔前のMS-ACCESSとかだと、速攻でファイル破損が起きてあぼーんだったけど・・・ってMS-ACCESSは、DBソフトか・・・
少なくとも、普通にWebサイトとして考えられるようなアクセス(数秒に1ページアクセス・5DB接続程度)なら全然大丈夫。
mysqlって接続数増やしすぎるとアボーンするんじゃなかったっけ?
>>964 確かに馬鹿ほど増やすとアポーンすることは知られているが、
それはアポーンするほど増えないように制限するのが普通であって。
Apacheってプロセスの寿命長くするとメモリ占有量がパンパンに
なってアポーンするよねとか言ってるのと同じようなことかと。
Postgresとか100000ぐらいコネクション張るとどうなるん?
話の流れを読まずにカキコ.
同じ日時の date 型と,datetime 型を比較すると,必ず datetime 型が大きいと
判定されることが分かりました.
例えば,
date '2005-02-09' < datetime '2005-02-09 00:00:00'
つうか,これが原因のバグに半日悩みました.畜生!
ちなみにバージョンは,MySQL 4.0.23-max (win2000)ですた.
>>965 100000までは行った事ないけど、25000位なら余裕で耐えてる。
>>968 なんで?どういう原理なんだろう?よろしかったら説明キボンヌ.
いろいろ試してみたけれど,DATE 型のカラムと,DATETIME 型のカラムは,
決してイコールにならない.
DATETIME の時刻が '00:00:00.0000' でも,DATE より後だと判定される.
'2005-02-09 00:00:00.0000' > '2005-02-09'
'2005-02-08 23:59:59.9999' < '2005-02-09'
何でこんな実装になっているのだろうか?
文字列に変換して比較されていると見た。
エッエー!内部表現は UNIX 時間じゃないの?!
>>971 まさかと思ったが,正解かもしれない.
SELECT '2005-02-09 00:00:00.0000' > '2005-02-09 00:00:00'
SELECT
ADDDATE('2005-02-09 00:00:00.0000', INTERVAL 0 DAY)
= ADDDATE('2005-02-09 00:00', INTERVAL 0 DAY)
, ADDDATE('2005-02-09 00:00:00.0000', INTERVAL 0 DAY)
= ADDDATE('2005-02-09', INTERVAL 0 DAY)
, ADDDATE('2005-02-09', INTERVAL 0 DAY)
, ADDDATE('2005-02-09 00:00:00.0000', INTERVAL 0 DAY)
注意して使わないと,ハマるな,こりゃ.
>>971 それだと時間差分計算ができないと思うが?
>>970 >'2005-02-08 23:59:59.9999' < '2005-02-09'
↑は別に問題ないでしょ。
要するに、
'2005-02-09' < '2005-02-09 00:00:00.0000' < '2005-02-09 23:59:59.9999' < '2005-02-10'
ってこと?別にそんなに違和感ないけど。
'2005-02-09' = '2005-02-09 00:00:00.0000'
ってなって欲しい気もするが、そんなもんだといわれたら納得できるくらいだけど。
>>975 うん、全く違和感ない。
つうかDATETIME型とDATE型を比較するような実装が…
977 :
NAME IS NULL:05/02/09 21:09:58 ID:07btmO1N
MySQL4.1を使っています。
カラム1|カラム2
-------------
aaaaaa|111111
aaaaaa|111111
bbbbbb|111111
cccccc|111111
aaaaaa|222222
bbbbbb|222222
というようなデータがあるとき、カラム2を指定して
カラム1の値を重複させずに、レコード数を取得しているのですが
少し時間がかかってしまい困っています。
なにかアドバイスくださいませ。
[クエリ]
select count(*) as alias from(select distinct カラム1 from table_name where カラム2 = '111111') as alias
これで0.15秒かかり、数十回まわすので、3〜4秒かかってしまう。
これでどうだろう?
SELECT COUNT(DISTINCT カラム1)
FROM TABLE_NAME
WHERE カラム2 = '111111'
もし,ループがカラム2の値によるものなら,
SELECT COUNT(DISTINCT カラム1)
, カラム2
FROM TABLE_NAME
GROUP BY カラム2
これでループなし,SQL一発で値が取れる.
979 :
977:05/02/10 00:25:33 ID:???
>>978 ありがとうございます!
DISTINCTって COUNT() でも普通に使えたのですね orz
勉強不足でした。
前者のをループされたら、早くなりました。ありがとうございます。
カラム出力の制御で
select * /* - (column1,column2,..) */ from table_name;
みたいなことって出来ますか?
つまり全てのカラム出力から特定のものだけ除いて出力する方法です
初歩的なことで申し訳ありませんが質問させてください。
Windowsでmysql4.1.19を使っているんですが
shell> mysqldump --opt database > backup-file.sql
などで保存するファイルの保存先はどうやって変更すればいいのでしょうか?
またその情報はどこで管理されているのでしょう?
また、リストアする時は.sqlファイルの場所の指定などどうやればいいのでしょうか?
具体的なコマンドなどで教えてください、先生お願いします!
>>981 それはMySQLの話ではなくてシェルのリダイレクトの話ではないか?
>>980 『全てのカラム出力から特定のものだけ除く』=『必要なカラムだけ列挙する』
>>981 shell> rename backup-file.sql C:\hoge\hoge\backup-file.sql
とすればよろし。
shell> mysqldump --opt database > C:\hoge\hoge\backup-file.sql
ならなおよろし。
ところで質問です。
>>980-981 は釣りですか
984 :
981:05/02/10 14:12:26 ID:???
>>983 素早いレスありがとうございます。
それで保存したファイルの場所指定はできました。
ただ、パス指定しないときのバックアップファイルのデフォルトの保存場所と
読み込む場所を変えたいのですがいい方法はないでしょうか?
>>982 すみません、シェルのリダイレクトって何ですか?初心者なのでよくわかってなくてすみません。
985 :
anonymous:05/02/10 15:21:46 ID:QzwSdLEx
pdf データを MySQL サーバーの特定のフィールドに格納は可能でしょうか?
Web上から、pdfの番号を検索して、それに該当するpdfするpdfを表示するシステムを
希望します。
もしかして
>>981は
「>」から右がMySQLのコマンドとか引数とかと思ってるのかもね
988 :
981:05/02/10 19:01:59 ID:???
シェルのリダイレクトでググって調べてみたらなんとなくわかりました。
デフォルトのファイル出力位置はMySQLで設定するものじゃないんですね。
勘違いだったみたいです。失礼しました。
>>985 画像や音声データなどと同様にBLOB型を使って扱える。
まあPDFは中身はフォーマッテッドテキストなので、
きちんと文字コード等を合わせてやれば、テキストとして
扱えなくもないし、場合によってはその方が良いこともある。
PDFのフォーマットに関してはオープンにされてるので
色々資料を読むなりしてください。
似たような疑問が出てるので便乗。
画像ファイルをMySQLに突っ込もうとしてるんですが
perlのDBI使って入れるぶんには出来てるんですが、
これをmysqlシェル上からやる構文、みたいのはないでしょうか?
あと、この画像をbashシェル上からバッチモードでselectした際
そのまま表示するビューアとかってないでしょうかね。
$mysql -u hoge -p < fuga.sql |xv
とかやっても無理でした。環境はLinuxです。
漏れもMySQLに格納されているバイナリファイルを問い合わせた後の
アプリケーションにバイナリデータが流れる過程について詳しく知りたし。