
mysql ヘルプ!
- 1 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:08 ID:kMbsTQE3
- リモートから家(常時接続)のmysqlサーバにつなげません
状況を詳しく書きます
PHPが動くプロバイダーのディレクトリにおいた自分の家の
mysqlサーバを操作するPHPに
$db = mysql_connect("mysqlサーバのip:3306","ゆーざ","ぱす");
と書いたのですが、駄目でした。
どうすればいいのでしょうか?
- 2 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:10 ID:???
- で、エラーメッセージは?
- 3 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:15 ID:kMbsTQE3
- Warning: Can't connect to MySQL server on '場所
Warning: MySQL Connection Failed: Can't connect to MySQL server on '場所'
エラーじゃないんですが はっきりつなげないと出てしまって・・
- 4 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:21 ID:???
- リモートにDBサーバを置いて つーのはやったことないからよくわからんが、
他の手段でそのリモートにあるmysqlサーバを使うのはできるの?
- 5 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:23 ID:???
- 当然家のサーバーはポート開いてるよな?
- 6 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:24 ID:???
- MySQLはちょろっとしかやったことないがアクセス制限とかかかってないの?
- 7 名前:4 :2002/01/22(火) 16:25 ID:???
- >5 そういうことが言いたかった。 ウツダ。
- 8 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:26 ID:kMbsTQE3
- そのDBサーバーは自宅のPCにインストールしてあるので、
もちろんローカルにおいたPHPからは操作できます。
でもそのMYSQLサーバーのローカルIPアドレスを
PHPのmysql_connect関数にかいて、外のプロバイダーに
おいても接続できないと出てしまいます。ポートは
デフォルトでは3306ですよね・・ どうすればいいん
でしょうか。
- 9 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:30 ID:???
- すいません、ネタにマジレスしようとしていた私は爆死いたします。
- 10 名前:4 :2002/01/22(火) 16:32 ID:???
- >8
あー >>5-6 について考えてみよ〜
- 11 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:33 ID:kMbsTQE3
- 5> 6>
家のポートというのは、要するにMYSQLを起動しているという
事ですか?
アクセス制限はROOTでアクセスしてDBに入ろうと思ってるので、
大丈夫だと思いますが・・・
- 12 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:53 ID:???
- さて
まず>>1の接続している環境を考えてみよう。
ずっと接続されていると仮定して。
なんで外から中に接続できないのか。
やっぱり考えていただこうではないか。
めんどうかもしれないがネット接続関係の専門書をお勧めする。
- 13 名前:4 :2002/01/22(火) 16:57 ID:???
- >11 家のポートというのは、要するにMYSQLを起動しているという事
違う。
- 14 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 16:58 ID:kMbsTQE3
- すいません 分かりません
あのmysql_connect関数の引数のIPはMYSQLのenvironmentの
LOCALIPADRRESSというところの194.22.〜.〜でいいんですよね。
後、逆にどうやったら、プロバイダーにおいたPHPから
家のDBを操作できるようにできるんでしょうか?
- 15 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:04 ID:???
- >>12が密かに縦。。。
- 16 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:05 ID:kMbsTQE3
- 13>ポートを開くというのは具体的にどうすれば
よいのですか?
- 17 名前:4 :2002/01/22(火) 17:09 ID:???
- >16 OSによります。
- 18 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:16 ID:kMbsTQE3
- >17 家のOSはウィン2000です。
プロバイダーのサーバはおそらくリナックスだと思います
もちろんMYSQLはconfigでwith-mysqlでついてました。
- 19 名前:4 :2002/01/22(火) 17:24 ID:???
- >18 ご自身で調べる努力を。
ttp://www.byakuya-shobo.co.jp/hj21/vol4/jyouji.html
- 20 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:29 ID:kMbsTQE3
- 19>わかりました。 関数使ってIP指定したら簡単にDBを操作できると
思ったんですが、そうは問屋がおろさないみたいですね。
まだまだハードルがありそうだ・・・
- 21 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:44 ID:???
- IPが。。。以下略
- 22 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 17:46 ID:???
- ポートが。。。以下略
- 23 名前:4 :2002/01/22(火) 17:48 ID:???
- >20 このスレでは全てを語り尽くせません。 パッシュシュビドゥバー♪
頑張れ。
- 24 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 18:03 ID:kMbsTQE3
- ところで何の本を読めばいいんでしょうか?
サーバー構築の本でしょうか?
プロバイダーのサーバはいじれないから、家のサーバーっていうか
PCか。それとmysqlサーバーの設定かな。
- 25 名前:4 :2002/01/22(火) 18:16 ID:???
- 実際の設定は
ttp://www.oreilly.co.jp/BOOK/wnt2ksec/
とかかなぁ。よぅ知らんのよ。Windowsは付属のヘルプも充実してると思うが。
あと、知識用にTCP/IP接続の本かWebページ。
- 26 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 18:32 ID:kMbsTQE3
- 25>やっぱりローカルとは違うんですね 見たらめまいがしてきましたよ。
ローカルならPHPにmysql_connect(localhost,root)で簡単に
操作できたんですけど ネットワークにサーバか・・
- 27 名前:4 :2002/01/22(火) 18:43 ID:???
- 誰もが一度は通る道さ。
- 28 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 18:57 ID:???
- そして俺も通った道さ
- 29 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 22:02 ID:???
- mysql.userは?
- 30 名前:名無しさん@お腹いっぱい。 :2002/01/22(火) 22:31 ID:???
- インストールだけして起動していない。
- 31 名前:名無しさん@お腹いっぱい。 :2002/01/23(水) 00:11 ID:???
- チェックリスト
1・MySQLの該当ユーザーのアクセス権限がどうなっているか。
外からアクセスできるように設定されているのか
2・ローカル(家)のルータ|FWはport 3306をmysqlサーバーに通すようになっているか。
3・リモートのサーバーから外部のport 3306に接続することはできるのか。
エラーメッセージからは>>5-6のいうとおり 2,3っぽいね。
3を確認するためには >>4のいうとおり、他のmysqlサーバーにあたってみよう。
2を確認するためには外部から telnet TARGETHOST 3306してみよう。
- 32 名前:MySQL :2002/02/13(水) 19:40 ID:???
- 最近MySQLの勉強を始めたのですが、ユーザー権限の設定で行き詰まってしま
いました。周りに質問できる人もいないし、どなたか私を助けてくれませんか?
やりたいこと 下のような権限を持つユーザーを作る
1.テーブルは自由に作成、削除できる
2.他人の作ったテーブルは見れない、消せない
3.データベースの作成、削除はできない
こんな感じで意図は伝わりましたか?もう頼るところが無いんです...、
よろしくお願いします。
- 33 名前:しょしんしゃ :2002/02/14(木) 11:05 ID:???
- >>32
1.グローバルな権限は全部Nにしてユーザを追加(3.に対応)
2.データベースをつくって、テーブルをつくりたいユーザーに
CREATEをGRANTする。(1に対応)
3.テーブルを作るときに、テーブルをつくったユーザーに
すべてをGRANT。それ以外には権限をあたえない。(2に対応)
って感じじゃない?たぶん。
- 34 名前:しょしんしゃ :2002/02/14(木) 11:07 ID:???
- あ。
1=グローバルの権限
2=データベースの権限
3=テーブルの権限です。
- 35 名前:32 :2002/02/14(木) 23:57 ID:???
- >>33
しょしんしゃさん、お返事ありがとうございます。
> 3.テーブルを作るときに、テーブルをつくったユーザーに
> すべてをGRANT。それ以外には権限をあたえない。(2に対応)
この作業はテーブル作成時に管理者さんがしないとダメですよね?
ユーザー自身が自由にテーブル作成・削除はできるけど、他人の作った
テーブルには一切アクセスできない、というようなことができればなぁ、
と思ってたのです。やっぱり無理なのかな?ふぅ。
となると、ユーザー毎にデータベースを作るのが現実的なのかな?
- 36 名前:nobodyさん :2002/07/05(金) 13:21 ID:sTJoXJtl
- 質問です。
分散データベースの研究をしております。
同じテーブル定義のテーブルを分散しているのですが、
その分散したテーブルを一つのテーブルにしたいのですが、
なにか方法はありませんか?
- 37 名前:nobodyさん :2002/07/05(金) 22:13 ID:???
- >>36
マルチ
回答不要
http://pc.2ch.net/test/read.cgi/php/983250751/228
- 38 名前:nobodyさん :2002/07/08(月) 18:54 ID:lARTVJ7d
- mySQLがWindowsNT上でローカルホストとして
接続できません。
コマンドプロンプトの画面で、
「net start mysql」と入力しても、
途中でエラー:1067が発生し、
中断します。
コントロールパネルの「サービス」からも
同様の結果になります。
なぜでしょうか?
- 39 名前:クラさん :2002/07/24(水) 12:45 ID:tjNyt0k2
- MySQLmax-3.23.51-winをWin2000proにテスト的に導入しています。
WinMySQLadminからサーバーのコントロールは出来ますが
VariablesやProcess、Database、Reportなどの情報が
WinMySQLadminでは取得できません。
その他、DOS窓やクライアントプログラムから接続は出来て
特に支障ないです。再インストールしてみたりもしたのですが
状況が変わりません。わかる方いらっしゃるでしょうか?
- 40 名前:nobodyさん :2002/08/23(金) 00:39 ID:rUynFkaj
- MySQL 3.23とMySQL Max 3.23
何がちがうの?
- 41 名前:nobodyさん :2002/08/23(金) 15:44 ID:BcNB4bej
- >> 40
Maxと付く方はトランザクションをサポートしている
- 42 名前:nobodyさん :2002/09/02(月) 00:40 ID:dngEI4Fe
- >>38
スタンドアロンならうまく逝くんでない?
それと深いdirに置いてない?
c:\mysql なんかに置いてみれ!
- 43 名前:nobodyさん :2002/09/03(火) 08:03 ID:fHvwXYyd
- 先日よりMySQLの勉強を始めました。
tinyint=1byte
smallint=2byteと思っていたのですが、
show tableすると、Typeに
tinyint(3)
と表示されます。これは3バイトってことですよね?
1バイトの大きさのカラムを作るにはどうすればいいのですか?
- 44 名前:PhpMyAdmin :2002/09/16(月) 10:51 ID:???
- えっと、僕はWindows2000でApache+MyAQL使ってますけど、ダウンローダーや
巡回ソフトなんかで集中的なアクセス食らってもサービス落ちしないような
設定を考えてみたんですが、こうでいいでしょうか?
[client]
#password=my_password
#port=xxxx
port=3306
#socket=MySQL
[mysqld]
port=3306
#socket=MySQL
skip-locking
#default-character-set=sjis
set-variable = key_buffer=64M
set-variable = max_allowed_packet=4M
set-variable = thread_stack=512K
set-variable = flush_time=1800
set-variable = table_cache=256
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
#set-variable = long_query_time=1
basedir = D:/MYSQL/
datadir = D:/MYSQL/DATA/
<<本文が長かったり改行が多いと板に怒られるから次のレスへ続く>>
- 45 名前:PhpMyAdmin :2002/09/16(月) 10:53 ID:???
- <<>>44からのつづき>>
#innodb_data_file_path = ibdata1:200M
#innodb_data_home_dir = C:\ibdata
#set-variable = innodb_mirrored_log_groups=1
#innodb_log_group_home_dir = C:\iblogs
#set-variable = innodb_log_files_in_group=3
#set-variable = innodb_log_file_size=30M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_arch_dir = C:\iblogs
#innodb_log_archive=0
#set-variable = innodb_buffer_pool_size=80M
#set-variable=lower_case_table_names =0
#set-variable = innodb_additional_mem_pool_size=10M
#set-variable = innodb_file_io_threads=4
#set-variable = innodb_lock_wait_timeout=50
<<本文が長かったり改行が多いと板に怒られるから次のレスへ続く>>
- 46 名前:PhpMyAdmin :2002/09/16(月) 10:54 ID:???
- <<>>45からのつづき>>
language=D:/MYSQL/SHARE/JAPANESE
tmpdir=D:/DOCUMENTS AND SETTINGS/ADMINISTRATOR/LOCAL SETTINGS/TEMP
[mysqldump]
quick
set-variable = max_allowed_packet=16M
#default-character-set=EUC-JP
[mysql]
no-auto-rehash
#default-character-set=EUC-JP
[isamchk]
set-variable= key=16M
[client_fltk]
help_file= D:\MYSQL\SQL_CLIENT\MYSQL.HELP
client_file= D:\MYSQL\MYSQL.OPTIONS
history_length=20
database = test
queries_root= D:\MYSQL\QUERIES
last_database_file= D:\MYSQL\LASTDB
[WinMySQLAdmin]
Server=D:/MYSQL/BIN/MYSQLD-MAX-NT.EXE
user=ないしょ
password=ひみつ
自信がないので、「これならほぼ大丈夫だぜ!」っていう設定があれば
教えてください。おながいします。
- 47 名前:1日1善保守生活創刊号 :2002/09/16(月) 18:14 ID:???
- ホッシュアゲロゲーロ
- 48 名前:nobodyさん :2002/09/17(火) 02:37 ID:p6Xmi4dv
- >43
>tinyint(3)
それは文字数とおもわれ。
- 49 名前:nobodyさん :2002/10/07(月) 21:53 ID:m57T57IB
- JDBCドライバを使ってMySQLの日本語名DB(「テスト」など)に
アクセスする場合どうしたらいいのでしょうか。
- 50 名前:nobodyさん :2002/10/13(日) 02:41 ID:NZn49T9i
- すんません便乗なんですが
redhat7.3にrpmでmysqlインストールして
mysql -u root
set password for root=('設定するパスワード');
flush privileges;
で最後のとこで
ERROR 1045 Access denied for user: '@localhost' (Using password: NO)
ってでてつまってます。
なんか他のユーザー作成とかなにかやろうとするとすぐ同じエラーがでてきちゃう
んですけど、だれかたすけて〜
- 51 名前:nobodyさん :2002/10/14(月) 18:48 ID:???
- SELECT で対象を
あるデータベース内の全てのテーブルにしたいのですが、
どのように SQL を書けばよいのでしょうか?
- 52 名前:nobodyさん :2002/10/14(月) 21:13 ID:???
- >>51
joinしる!
- 53 名前:nobodyさん :2002/10/19(土) 15:58 ID:???
- http://pc3.2ch.net/test/read.cgi/tech/1008316065
で聞いた方がいいかもね。
ドライバ開発者もいるみたいだし。
- 54 名前:nobodyさん :2002/11/02(土) 05:56 ID:???
- 数値の合計とか平均とか出したい場合、CGIで計算して表示するのとsqlで計算して表示するのどちらがいいのでしょ?
- 55 名前:nobodyさん :2003/01/01(水) 02:13 ID:g22yKLaX
- Windows版のMySQL-MAXの公開やめちゃったの?
- 56 名前:nobodyさん :2003/01/01(水) 19:19 ID:pXgJfOxP
- 当方,テキスト形式のデータをperlで整形して,
perl scripからmysqlに読み込ませてきましたが,
新しいMySQLのバイナリー配布版で,"LOAD
DATA INFILE"が利用できなくて,困っており
ます。
ttp://www.mysql.com/doc/en/LOAD_DATA_LOCAL.html
これまでは,perl scriptから一度に複数のテキストファイルをmysqlに読み込ませました。
foreach ("load data infile 'list.txt' into table list", "load data infile 'lemmafe.txt' into table lemmafe"){
$out2 = $dbh->prepare("$_");
$out2->execute;
}
現在は,この作業をterminalから
mysql -u hogehoe -p --local-infile=1
とmysql clientを立ち上げて,手作業でtext
データを読み込ませています。
sourceファイルからmysqlをコンパイルすれば,
問題は解決できるようですが,コンパイルには
自信がありません。
local-infile=1でコンパイルしたosx用のバイナリ
ーファイルを配布しているサイトはありません
でしょうか?
- 57 名前:nobodyさん :2003/01/01(水) 19:38 ID:g22yKLaX
- ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-3.22/
ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-3.23/
ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-Max-3.23/
ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-4.0/
ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-Max-4.0/
- 58 名前:nobodyさん :2003/01/01(水) 19:42 ID:g22yKLaX
- Ver3.23.49からデフォルトでLOAD FILE LOCAL文が使用できなくなっている。
もしphpMyAdminでCSVファイルのアップロード等を行う必要がある場合、
「--with-local-infile」オプションをつけるか、
mysqlコマンドで「--local-infile=1」というオプションをつけて実行することで有効になる。
- 59 名前:nobodyさん :2003/01/01(水) 19:45 ID:g22yKLaX
- ここ。
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_MySQL_Database_Administration.html#LOAD_DATA_LOCAL
- 60 名前:ID:g22yKLaX@59 :2003/01/01(水) 19:47 ID:g22yKLaX
- すまそ、59のURLはブラウザにコピペしないと適切な箇所にジャンプしません。
- 61 名前:56 :2003/01/01(水) 21:52 ID:pXgJfOxP
- > mysqlコマンドで「--local-infile=1」というオプションを
>つけて実行することで有効になる。
mysqlサーバを立ち上げるときに,--local-infile=1を次のように
入れても,無効でした(osx)
/Volumes/mysql/mysqlNew/bin/safe_mysqld --user=mysql --local-infile=1 &
mysqlのソースをコンパイルするときに,local-infile=1を指定しないと,
サーバーでは有効にならないのでしょうか?
- 62 名前:nobodyさん :2003/01/06(月) 00:49 ID:YMUOqc9Y
- auto_incrementとprimary keyを設定しているフィールドのあるテーブルで、
2つのレコードを入れ替えたいのですが
例)
num,site__,url
_10,2ch___,http://2ch.net/
_22,Google,http://google.com/
↓
num,site__,url
_10,Google,http://google.com/
_22,2ch___,http://2ch.net/
こんなことできますか?
それとも手作業的にupdateしないとダメ?
- 63 名前:山崎渉 :2003/01/15(水) 13:36 ID:???
- (^^)
- 64 名前:nobodyさん :2003/02/28(金) 17:53 ID:XIiZ4aB7
- hogeと言うデータベースがあるとします。
このデータベース「hoge」にはMySQLのユーザ「root」でしかアクセス出来ないようにするにはどうしたら良いでしょうか。
逆に、「foo」と言うユーザーは「boo」と言うデータベースにしか接続できない様にするにはどうすれば良いのでしょうか。
よろしくお願いします。
- 65 名前:nobodyさん :2003/03/11(火) 13:25 ID:pS3CSiOr
- >>64
かねやんMySQLAdminってソフト使ってみたらどうでしょう。
質問させて下さい。
$sth->fetchall_arrayref();で
NAMEやTYPEを取得したいのですがどうすればいいですか?
$sth->fetchrow_array();なら
$names=$sth->{'NAME'}とすれば
$names->[0]で取得できますが、
2回もfetchするのは、効率悪い気がします。
お願いします。
- 66 名前:nobodyさん :2003/03/12(水) 04:14 ID:txYiwVgf
- age
- 67 名前:nobodyさん :2003/03/12(水) 11:46 ID:???
- >>65
MySQLの質問というよりはDBIモジュールの質問ではないかな。
$sth->execute;
$name = $sth->{NAME};
$type = $sth->{TYPE};
$data = $sth->fetchall_arrayref;
これで漏れは全部のデータが取得できるんだが。
- 68 名前:nobodyさん :2003/03/12(水) 12:18 ID:myMG93+U
- >>67
ありがとうございました。
たしかにDBIモジュールの質問ですね。
ORACLEだとfetchall_arrayrefでも
$sth->{NAME}->[0]とかすれば
最初のNAMEを取得できたのに
MYSQLではエラーになったので
ここに質問してしまいました。
以後気を付けます。
- 69 名前:nobodyさん :2003/03/12(水) 23:17 ID:PTQ2BK4j
- 副問い合わせが使えないからどうすればいいですか?
- 70 名前:山崎渉 :2003/03/13(木) 16:58 ID:???
- (^^)
- 71 名前:nobodyさん :2003/03/25(火) 16:25 ID:BGwX64RN
- InnoDBを導入することになりました。
けど読み方がわからないのでおしえてください。
- 72 名前:nobodyさん :2003/03/27(木) 03:03 ID:Ya09dI5I
- PHPを使って、webよりユーザー登録、ユーザー削除、権限の設定などをする
スクリプトはありますか?
- 73 名前:nobodyさん :2003/03/27(木) 12:10 ID:???
- phpmyadmin?
- 74 名前:山崎渉 :2003/04/17(木) 12:11 ID:???
- (^^)
- 75 名前:山崎渉 :2003/04/20(日) 06:22 ID:???
- ∧_∧
( ^^ )< ぬるぽ(^^)
- 76 名前:nobodyさん :2003/05/17(土) 17:45 ID:ghc51a2p
- Unicode(UTF-8)で接続出来ませんか?
- 77 名前:nobodyさん :2003/05/17(土) 17:55 ID:/0gIo8DK
- http://www.h3.dion.ne.jp/~oto/
- 78 名前:nobodyさん :2003/05/18(日) 16:45 ID:NH4N97Dj
- >76
Unicodeはあくまでも文字のコードであって、
通信の方式やツールのことじゃないから、質問意味不明ナリ
データベースの文字型の扱いをUTF-8にしたいってんなら、
MySQL4あたりだと出来るはずだよ。
- 79 名前:nobodyさん :2003/05/18(日) 16:46 ID:aNJYcTmW
- リンクスタッフは登録無料!1クリック10円。
バナー紹介料として、リンクスタッフ登録の度に1000円の報酬。
掲示板などに宣伝すればクリックや紹介がある度に報酬が得られます。
登録はメールアドレスと任意のパスワードを入力すれば完了です。
メールアドレスはフリーメールでもOK!
今なら登録するだけで1000円プレゼント。
ちなみに私の先月分の収入は、1日30分ぐらいの宣伝で138340円でした。
http://accessplus.jp/staff/in.cgi?id=9140
直リンクできないのでアドレスをコピーして貼り付けてジャンプしてください。
- 80 名前:動画直リン :2003/05/18(日) 17:08 ID:rGbr42DC
- http://homepage.mac.com/hitomi18/
- 81 名前:nobodyさん :2003/05/19(月) 17:16 ID:O90Qa4tT
- TIMESTAMP型を使って自動的に更新日時が入るようにしたいんですが、
YYYYMMDDHHMMSSのように区切り文字なしでDBに格納されてしまいます。
DATETIME型のようにYYYY-MM-DD HH:MM:SS のフォーマットで
DBに格納されるようにしたいんですが可能でしょうか?
- 82 名前:梨 :2003/05/20(火) 23:52 ID:Y6HkOJuA
- >>81
マニュアルにズバリ書いてあったよ。頭使ってもわかりそう。
ヒント: 4バイト
で、DATE_FORMATじゃだめなん?
- 83 名前:nobodyさん :2003/05/21(水) 01:20 ID:???
- 初歩的な質問ですが、データ数が少ない場合(100とか200)
テキストファイル使った方が効率良いんでしょうか。
最近は楽さを選んでみんなDB使っちゃってるんですが、
無駄にサーバーに負担かけてるかな?
- 84 名前:梨 :2003/05/21(水) 16:21 ID:AbGSjTDt
- >>83
何をするかによるんでないかい?
「データ数」の定義も微妙だし。
行数が200程度しかないフラットな掲示板のログファイル1つのために
DB使うのはやりすぎって気もするけど、
書き込みが多いからロックファイル作って云々考えるとどっこいかも。
漏れは基本的にMySQLかな。
いろんなサーバに入れる場合は、ファイルで管理する事が多い。
- 85 名前:山崎渉 :2003/05/22(木) 01:57 ID:???
- ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
- 86 名前:81 :2003/05/22(木) 11:01 ID:rjjMwksk
- >>82
レスありがとうございます。
確かにマニュアルにフォーマットを指定できるようなことは書いてあるのは
読んだのですが、具体的にどのような書式で指定すればいいのかがわかりません。
4バイトだとYYMMという形式になってしまうのではないんでしょうか?
DATE_FORMATも読みましたが、私がやりたいのはCREATE TABLEで作成する際に
TIMESTAMPで何か書式が指定できるのかな、と思いまして。。。
- 87 名前:bloom :2003/05/22(木) 11:08 ID:x2YZ4VCE
- http://homepage.mac.com/ayaya16/
- 88 名前:梨 :2003/05/22(木) 13:51 ID:meYOXQTH
- >>86
ごめん。TIMEか何かと勘違いしていたので訂正します。
MySQLの日付型は次のフォーマットを持ちます。
a. 格納フォーマット
b. 表示フォーマット
c. (指定用の)共通フォーマット
結論から言うと、TIMESTAMPは、
aが4バイトのUNIX秒型、bがYYYYMMDDHHMMSSの桁数指定型、
cはDATEやDATETIMEと共通のフォーマットになっています。
bで指定出来るのは桁数だけなので、
表示フォーマットを指定するにはcで調整するしか無いです。
それが嫌ならば、DATETIME型を手作業で更新するという手もあります。
詳しくは「6.2.2.2 DATETIME, DATE, TIMESTAMP 型」に全部書いてあります。
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html
- 89 名前:81 :2003/05/22(木) 15:50 ID:rjjMwksk
- >>88
なるほど。やはりbの表示フォーマットは変えられないんですね。
リファレンスのその部分は何度か読んだのですが、
表現的によくわからなかったので、ここで質問しました。
これでスッキリしました。DATETIME型でやってみます。
ありがとうございました。
- 90 名前:nobodyさん :2003/05/22(木) 22:23 ID:jBpXLiPH
- テーブルのカラム名にdescという名前が使用できません。
SQL> create a_table ( desc varchar(64) );
ERROR 1064: You have an error in your SQL syntax
near 'a_table (desc varchar(64) )' at line 1
どうしたらいいっすか?
- 91 名前:nobodyさん :2003/05/22(木) 22:36 ID:???
- >>90
もう一度テーブルの作り方勉強したら?
- 92 名前:90 :2003/05/22(木) 22:41 ID:jBpXLiPH
- >>90
descもdescrもdescriもdescribもdescirbeも使えない。
- 93 名前:90 :2003/05/22(木) 22:47 ID:jBpXLiPH
- >>91
ごめん、まちがい
mysql> create table a_table (desc varchar(64) );
>>92
descとdescribeがカラム名として使えない
- 94 名前:nobodyさん :2003/05/22(木) 22:49 ID:???
- DESC 、 DESCRIBE は予約語
テーブルやフィールド名として使用できないれす
- 95 名前:90 :2003/05/22(木) 23:55 ID:???
- >>94
ぐぅ、残念。「'」や「"」で囲んでもだめだった。
Oracleとは違うのね。
- 96 名前:nobodyさん :2003/05/23(金) 00:11 ID:???
- >>95
「`」 で囲んでみたら?
「`」は Shift+@ ね。
- 97 名前:90 :2003/05/23(金) 09:40 ID:???
- >>96
mysql> create table a_table ( `desc` varchar(64) );
Query OK, 0 rows affected (0.00 sec)
mysql> desc a_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| desc | varchar(64) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)
すげー、できたよ!
めっちゃ多謝です >96
- 98 名前:nobodyさん :2003/05/23(金) 09:53 ID:5VJPohZk
- 質問。
次のようなテーブルがあります。
mysql> select * from sample;
+----+-------+
| id | count |
+----+-------+
| 1 | 100 |
| 2 | 100 |
+----+-------+
ここで
mysql> update sample set count=count+10 where id=1;
とすると
mysql> select * from sample;
+----+-------+
| id | count |
+----+-------+
| 1 | 110 | ← 10増えている
| 2 | 100 |
+----+-------+
のようになります。
このupdate文は、アトミックなんでしょうか?
つまり、多人数で同時に実行しても必ず意図した
結果が保証されるんでしょうか?
- 99 名前:nobodyさん :2003/05/24(土) 15:41 ID:???
- >>98
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Reference.html#LOCK_TABLES
http://www.mysql.com/doc/en/LOCK_TABLES.html
日本語訳だけじゃなくて元の英文にもあたって欲しいんだが、
例(単一のupdate)だとlock不要(即ち保証される)
むしろ弊害と折れは読んだが、どうか?
http://www.mysql.com/doc/en/Tips.html
"very fast!"ってどんだけ速いんだよぅ?
- 100 名前:nobodyさん :2003/05/24(土) 15:42 ID:+sQLJUip
- ついでなんで、100age
- 101 名前:nobodyさん :2003/05/24(土) 16:38 ID:oDSDORJV
- ★○マ○コは地球を救う★
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
- 102 名前:nobodyさん :2003/05/26(月) 09:56 ID:???
- >>99
返事がおくれたけど、ありがとう。
これで安心して眠ることができるよ。
でも、なんで弊害なの?害となることが思いあたらん。
- 103 名前:山崎渉 :2003/05/28(水) 17:07 ID:???
- ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
- 104 名前:質問その@ :2003/05/29(木) 00:52 ID:???
- MySQL4.0.5 、WinXP 、Apache1.3.24の環境で質問です。
以下のような二つのテーブルがあります。
テーブル名 j_table
+----+-------+
| id | jusho |
+----+-------+
| 1 | 新宿 |
| 2 | 渋谷 |
| 3 | 新宿 |
| 4 | 新宿 |
+----+-------+
テーブル名 k_table
+----+-------+
| id | konomi |
+----+-------+
| 1 | giko |
| 2 | giko |
| 3 | giko |
| 4 | mona |
+----+-------+
- 105 名前:質問そのA :2003/05/29(木) 00:52 ID:???
- @gikoが好きな人は何人か?
mysql> select count(*) from k_table where konomi="giko"; だと3
Agikoが好きで新宿住まいの人は何人か?
mysql> select count(*) from k_table a,j_table b where a.konomi="giko" && b.jusho LIKE "%新宿%"; だと3
Bgikoが好きで渋谷住まいの人は何人か?
mysql> select count(*) from k_table a,j_table b where a.konomi="giko" && b.jusho LIKE "%渋谷%"; だと3
Cgikoが好きで中野住まいの人は何人か?
mysql> select count(*) from k_table a,j_table b where a.konomi="giko" && b.jusho LIKE "%中野%"; だと0
テーブルを結合させると該当する行があると、住所の条件に関係なくgiko好きが3人と出てしまうのですがこれは何故でしょうか?
該当する行が無い場合はキチンと0になるのですが・・・
普通Aは2、Bは1になるはずなのですが、結合の仕方がまずいのでしょうか?
だれかぜひ教えてください・・・おながいします!
- 106 名前:nobodyさん :2003/05/29(木) 01:16 ID:???
- >105
aのidとbのidはどのような関係が?
countしないでどこかに出力してごらん。
SQLの基本なので良い機会なので入門書を買って味噌。
- 107 名前:nobodyさん :2003/05/29(木) 01:30 ID:???
- >>106
おお、そうですた。
a.id=b.idするのを忘れてますた。
なぜこんな初歩的なミスを・・・
ありがとうございました。
- 108 名前:nobodyさん :2003/05/29(木) 10:44 ID:???
- >107
いや言いたかったのはWHEREの条件に混ぜるんじゃなくて、
必要ならリレーション(関係)を張っては?ということ。
"外部キー"とか"JOIN"とかその辺の単語でぐぐーる。
- 109 名前:nobodyさん :2003/06/17(火) 12:58 ID:0HXSsTQY
- auto_incrementの初期値を0にする方法を教えてください。
テーブル作成時にauto_incrementをカラムに指定した場合、
初期値は1になります。この初期値を0にしたいんですが、できますか?
1以上の正整数に指定するのは、次のような方法でできました。
create table table1 (
id integer not null auto_increment,
value varchar(64),
primary key(id)
)
auto_increment = 100;
しかし100を0にしても、初期値は1にしかなりません。
auto_incrementの初期値を0にする方法があれば、
教えてください。
- 110 名前:nobodyさん :2003/06/17(火) 13:22 ID:???
- カラムA、カラムBが合った時に、その両方が一致する行をユニークにしたいのです。
A B
aa 11
bb 11
aa 22
cc 22
aa 11 ←こいつはINSERTさせたくない
イメージ的にはABの2カラムを合わせてPRIMARY KEYにしたいのです。
こういう場合はどうすればいいんでしょうか。
- 111 名前:nobodyさん :2003/06/17(火) 14:49 ID:???
- >>110
You can use "primary key(A, B)".
----
create table sample (
A varchar,
B integer,
primary key(A, B)
);
----
- 112 名前:nobodyさん :2003/06/18(水) 18:04 ID:???
- >>111
めちゃサンクス。primary key(A, B) でいけました。
#実際にはAがBLOBなのでprimary key(A(128), B) としました。
- 113 名前:nobodyさん :2003/06/18(水) 23:51 ID:TnNRaExh
- mysqlではレコードを追加したらそれに張ってあるインデックスも自動的に
追加されるのでしょうか?
- 114 名前:nobodyさん :2003/06/18(水) 23:57 ID:???
- 追加されないDBなんてあるの?
- 115 名前:nobodyさん :2003/06/19(木) 00:34 ID:70FTCJ+V
- A,Bのテーブルがあるとします。
A
ID1りんご
ID3みかん
ID4ぶどう
B
ID2メロン
ID3みかん
ID4ぶどう
この二枚のテーブルでどちらかのテーブルに存在すればヒットする
ようなselec文はどう書いたらいいのでしょうか。重複する行は、
一行のみ抜き出したいです。
こういうかんじにです。
ID1りんご
ID2メロン
ID3みかん
ID4ぶどう
よろしくお願いします。
- 116 名前:113 :2003/06/19(木) 02:25 ID:70FTCJ+V
- > 114
追加されました。確認もせずに投稿してしまいました。
すいませんでした。
- 117 名前:nobodyさん :2003/06/19(木) 02:36 ID:tb30wkPm
罪と罰のゲーム、皆さんもやりませんか?
http://gekiya77.gi-ga.net/cgi/
以下から、新規登録出来ますので。
http://gekiya77.gi-ga.net/cgi/ore_reg.cgi
<注>私は管理人ではなく、ただの利用者です。
- 118 名前:nobodyさん :2003/06/22(日) 22:04 ID:xUqQ3nDm
- >>115
left outer join
- 119 名前:nobodyさん :2003/06/27(金) 20:50 ID:HoNlAHtV
- mysqlのインデックスファイルであるMYIを見るツールはないのでしょうか。
どんな感じでインデックスがはられているのかみたいのです。
- 120 名前:nobodyさん :2003/06/28(土) 01:44 ID:???
- >>119
バイナリーエディタ…
MYDとかと同じ。つかバイナリー見ても理解できんでしょ。
インデックス情報見るなら素直にSHOW INDEXコマンド。
有効にインデックスが機能しているかはEXPLAIN SELECTでチェックすれ
- 121 名前:119 :2003/06/28(土) 17:10 ID:3aXiHYmQ
- すいません、説明不足でした。
インデックスが英語のFULLTEXTインデックスなんです。
どんなワードがインデックスに入っているのか確認したかったのです。
stringsというコマンドでバイナリにはいっている文字列がみえるのが
わかりましたが、MYIファイルをきれいに表示する方法はないでしょうか?
ないとは思うのですが、もしあって知らなかったらとおもって聞いてしまいました。
- 122 名前:nobodyさん :2003/06/30(月) 12:25 ID:5tKrGL8Q
- データベース板できました
http://pc2.2ch.net/db/
- 123 名前:nobodyさん :2003/07/10(木) 00:05 ID:yUDG6lLt
- 一個の項目をとある文字で分割して検索する事ってできますか?
splitみたいな。
no|key|
1|a,b,c|
でkeyを「,」で区切って「b」があるかどうかで検索…。
正規表現を使う事も考えましたが、できるならうれしいなっと。
- 124 名前:無料動画直リン :2003/07/10(木) 00:14 ID:YKCrjqtm
- http://homepage.mac.com/miku24/
- 125 名前:nobodyさん :2003/07/11(金) 01:26 ID:???
- >>123
key LIKE '%,b,%' OR key LIKE 'b,%' OR key LIKE '%,b'
- 126 名前:125 :2003/07/11(金) 01:30 ID:???
- 正規表現といっているから効率は度外視。
本音を言えば「外部キーくらい正規化すれ。」
- 127 名前:123 :2003/07/11(金) 04:21 ID:ET0riVu5
- レス有難うございます。
「外部キーくらい正規化すれ。」 について勉強してきました。
こんな効率的なやり方思い浮かびませんでした。
そして、新たなる壁に当たりました…。
例えば、keyを別テーブルの置き、keyにbが含まれているものを検索した場合…
普通にヒットしますが、このとき、ヒットしたnoのそれ以外のキーをSELECT時に取得する事は出来るでしょうか?
ちなみに、テーブル構成はこのような感じです。
--TableA
no|省略
1 |省略
--TableB(キー)
no|key|
1 |b|
1 |a|
1にはaとbが登録されているとして、bで検索した場合、それ以外の「a」も取得できるようにしたいのです。
一生懸命検索もしたんですが、どうしても分かりませんでした(T.T)
参考サイトでも良いので誰か助けてー
- 128 名前:123 :2003/07/11(金) 08:52 ID:???
- noでグループ化して登録keyの「数」を取得するとこまではいけました。(countで)
が、欲しいのは中身なのれす…。
- 129 名前:123 :2003/07/11(金) 15:18 ID:???
- すみません、む板の方に移動してきます。
- 130 名前:山崎 渉 :2003/07/15(火) 11:07 ID:???
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
- 131 名前:nobodyさん :2003/07/31(木) 19:38 ID:AJvCrklt
- mysql3.23.55使用してます。
テーブルを作成する時にデフォルト値を設定できますが、
NOW()をデフォルトにはできないのでしょうか。
create table member(
username varchar(60) NULL,
createdate datetime default "NOW()"
);
とし、
insert into member (username) values('AAA');
実行しても
mysql> select * from member;
+----------+---------------------+
| username | createdate |
+----------+---------------------+
| AAA | 0000-00-00 00:00:00 |
+----------+---------------------+
となり、入力した日時が入ってくれません。
どうすれば良いのでしょうか。。
- 132 名前:nobodyさん :2003/07/31(木) 21:57 ID:VMyHT8tg
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://ninkirank.misty.ne.jp/19/enter.cgi?id=okyaku
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.
- 133 名前:nobodyさん :2003/08/01(金) 02:27 ID:???
- >>131
それをやるなら createdate は TIMESTAMP型じゃないか?
- 134 名前:131 :2003/08/01(金) 14:23 ID:???
- >>133
できました!ありがとうございます。
- 135 名前:nobodyさん :2003/08/01(金) 17:59 ID:???
- MySQLってどうよ
http://pc2.2ch.net/test/read.cgi/tech/1008316065/642
から勝手に移動してきました。重複して見る方スマソ。
質問をコピペします。
↓ここから
GROUP化したタプルに現れるデータに条件付けするにはどうすればよいですか?
No ID 名前
--------------
2 a あほ
1 a ばか
3 a まぬけ
SELECT * FROM table GROUP BY ID
で取り出すとき、3つのタプルのどれが出てくるかを制御したいんです。
例えばNoの1番小さいやつ(1 a ばか)を取り出す、とか。
↑ここまで
よろしくです。
- 136 名前:nobodyさん :2003/08/01(金) 19:12 ID:???
- >>135
できないんじゃねーの
っていうか、そもそもそんなことができるDBってあるわけ?
ちなみに
http://allabout.co.jp/computer/database/closeup/CU20020307/?FM=glcct
を見ると、
SQL> select empno,ename,job,sal,deptno from emp group by job;
select empno,ename,job,sal,deptno from emp group by job
*
1行でエラーが発生しました。
ORA-00979: GROUP BYの式ではありません
SELECTの後ろの列名にグループ化した列、集計関数で集計した列でない列を指定したために
エラーとなっている
だそうだが...。
- 137 名前:nobodyさん :2003/08/01(金) 20:22 ID:???
- >>136
やっぱできないのかなあ。
自分で調べた限りではできなかったけど、調べ方が悪いのかと思って2chを頼ってみた。
>>135が実際に必要となる場面としては、
----------------------------
UserName Date EMail Amount
----------------------------
というテーブルがあって、UserNameごとの合計金額をSUM(Amount) GROUP BY UserNameで集計しているんですけど、
その時ついでにEMailも出力しているのです。
ところが、同じUserNameでも複数のEMailが存在する場合があるんです。
その場合はDateが最新であるタプルのEMailを出力したい。
というわけだったのです(最初からこれを書いた方が分かりやすかったですね。すいません)
今は一旦UserNameを取り出して、各UserNameに対してDateが最新であるタプルのEMailを取得しているんですが
UserNameが多くなってきたので時間がかかるようになってしまいました。
何かアドバイスがあればよろしくおながいします。
- 138 名前:nobodyさん :2003/08/02(土) 01:50 ID:???
- >>137
これではだめ?
実際に試してないから、このままで実行できるかわからないけど、
テーブル名をlogとした場合、
CREATE TEMPORARY TABLE temp
AS SELECT UserName, MAX(Date) AS Date, SUM(Amount) AS Amout
FROM log GROUP BY UserName;
SELECT * FROM temp, log
WHERE temp.UserName = log.UserName AND temp.Date = log.Date;
適切なインデックスを作成してあれば、速いはず。
ただ、設計自体が間違っているような気がしないでもないが...。
- 139 名前:山崎 渉 :2003/08/02(土) 02:22 ID:???
- ∧_∧
( ^^ )< ぬるぽ(^^)
- 140 名前:ぼるじょあ ◆ySd1dMH5Gk :2003/08/02(土) 04:50 ID:???
- ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
- 141 名前:nobodyさん :2003/08/02(土) 12:08 ID:???
- >>138
あ、なるほど。
MAX(Date)をSELECTするとDateがMAXなタプルのEMailが取り出せるんですね。
今実験環境がないのでできませんが今度試して報告します。ありがd。
この最新のEMailが欲しいという要望は後から出てきたので
今までのプログラムに付け足す形でやったので
>>137に書いてあるようになってしまったんです。
>ただ、設計自体が間違っているような気がしないでもないが...。
・・・うーん。特に変な設計したつもりはないんですけどねぇ。
- 142 名前:nobodyさん :2003/08/09(土) 06:13 ID:ykXF7Sbd
- MySQLのバックアップは、
/usr/local/mysql/var/
配下の目的のDBのディレクトリをコピーするだけでOKですか?
復元時は、このディレクトリを戻してやるだけで使えるのでしょうか?
何となく、乱暴すぎる気もするし…どうなんでしょう?
- 143 名前:nobodyさん :2003/08/09(土) 09:15 ID:???
- >>142
サーバダウンが迫ってるとか緊急時はそれでおーけー
それ以外の時は、きちんとコマンドラインからやるのが吉
- 144 名前:山崎 渉 :2003/08/15(金) 22:39 ID:???
- (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
- 145 名前:nobodyさん :2003/08/28(木) 21:47 ID:???
- LIKE %A%
みたいに一文字検索って出来るのですか?
- 146 名前:nobodyさん :2003/08/30(土) 14:20 ID:???
- >>145
できる
- 147 名前:nobodyさん :2003/09/02(火) 15:19 ID:nC941VSc
- MySQLのユーザーを削除するにはどうするの?
drop user hogehoge; じゃだめだった。
マニュアル読んでも、どこにかいてあるのかさっぱり。
- 148 名前:nobodyさん :2003/09/02(火) 15:59 ID:???
- 新しく作ったユーザでうまくログインできん。
パスワードありではログインできず、なしだとログインできる。
パスワードを設定したにもかかわらずだ。
## MySQLにrootでログインし、ユーザを作成する
bash$ mysql -u root -p
Enter password:
mysql> grant all on *.* to user1 identified by 'passwd1';
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Bye
## 作成したユーザでログインすると、パスワードありではログインできず、
## パスワードなしだとログインできる。なぜ?
bash$ mysql -u user1 -p
Enter password:
ERROR 1045: Access denied for user: 'user3@localhost' (Using password: YES)
bash$ mysql -u user1
mysql>
なぜ?どっか抜けてる?
- 149 名前:nobodyさん :2003/09/02(火) 16:11 ID:???
- >>148
ユーザ名だけでなくホスト名も指定する。
mysql> grant all on *.* to user1@localhost identified by 'passwd1';
mysql> grant all on *.* to user1@"%" identified by 'passwd1';
- 150 名前:nobodyさん :2003/09/03(水) 02:32 ID:uWREVGUN
- >>147
MySQLはユーザ管理をデータベースのテーブルで行っているので、
該当するユーザにマッチする行を削除する。
具体的には、
USE mysql;
DELETE FROM user WHERE User='該当ユーザ';
FLUSH PRIVILEGES;
確かにマニュアルではそれらしい記述が見つかんないな。
とは言え、ユーザ管理を自身のデータベースデーブルで行うという
MySQLのちょっと変わった部分は、MySQLの本を買えばどこにでも
出ているような内容なので、何か本買った方がいい。
- 151 名前:nobodyさん :2003/09/03(水) 07:25 ID:???
- >>150
さんくす。
そうか。やっぱり入門書かなんか買おうかな。
お勧めの本とか、逆に勧めない本とかあれば教えて。
田舎なんで、本屋にいっても置いてなくて読めないんだ。
- 152 名前:nobodyさん :2003/09/03(水) 12:16 ID:737CDtFn
- 割り込んですいませんが、
InnoDBって、なんて発音するんでしょうか?
- 153 名前:nobodyさん :2003/09/04(木) 00:17 ID:???
- >>151
MySQLの入門なのか、スクリプト言語をつかって
RDBMSにアクセスするアプリケーションの入門なのかによるな。
MySQLの入門なら「MYSQL徹底攻略ガイド」が良いかな。
また、これには言語毎の接続と簡単なアクセスの仕方も
載ってるので「マニュアルが読める」様なので問題なく
理解できるレベルだと思います。MySQLの使い方メインで
もっと深めるなら「MySQL徹底活用」。
これは本当にRDBMSとしてのMySQLの話(運用とかツールも)に
限定してちゃんと書いてある。
RDBMSにアクセスするアプリケーションの入門が欲しいなら、
言語毎に色々出てるのを適当に選んでも支障はないと思います。
http://www.mysql.gr.jp/books.html
の中で、その言語もタイトルに書いてある奴。
あとユーザ削除の追記で正確にはmysqlという名の管理データベースに
ある全てのテーブル(何個かある)のUser='hoge'にマッチする行を
DELETEする必要があります。ユーザ単位に細かく、特定データベースや
テーブルのアクセス権を設定していない場合は不要ですけど。
- 154 名前:nobodyさん :2003/09/04(木) 08:25 ID:???
- というか入門系って、結局著者のヘンなクセがつくだけだから、今後も使い続けるのであれば
オライリーのMySQL & mSQL買って必要な事項をひきつつ前に進んだ方が、あとあと良いだろ。
- 155 名前:nobodyさん :2003/09/04(木) 17:48 ID:???
- 俺もMySQL徹底活用の方がおすすめかな。
MySQL & mSQLは内容が古い。
- 156 名前:nobodyさん :2003/09/07(日) 21:40 ID:???
- >>153
遅れたけど、丁寧な回答サンクス!
- 157 名前:nobodyさん :2003/09/14(日) 00:03 ID:kQoNWvNk
- >>152
XOOPSの集まりに行ったら、MySQLの開発者Montyさんが来てたので聞いてみた。
MyISAM=マイアイサム(いさむじゃないのか...)、
InnoDB=イノディービー
で良し。ソフトエージェンシーの立岡さんも同じなので、日本語でもいっしょ。
- 158 名前:nobodyさん :2003/09/14(日) 00:32 ID:???
- >157
#152じゃないけど、さんくす
- 159 名前:nobodyさん :2003/09/27(土) 17:43 ID:kMMUBk/8
- AUTO_INCREMENT なフィールドを後から追加して
さらにそれをプライマリキーにしたいんだけど
簡単な方法を教えてください。
- 160 名前:nobodyさん :2003/09/27(土) 17:53 ID:???
- >>157
ISAM はMySQL特有ってわけじゃないぞ
- 161 名前:_ :2003/09/27(土) 18:00 ID:???
- ( ´Д`)/< 先生!!こんなのが有りますた。
http://mona.h.fc2.com/jaz03.html#.2ch.net
http://mona.h.fc2.com/jaz11.html#.2ch.net
http://mona.h.fc2.com/jaz02.html#.2ch.net
http://mona.h.fc2.com/jaz08.html#.2ch.net
http://mona.h.fc2.com/jaz09.html#.2ch.net
http://mona.h.fc2.com/jaz05.html#.2ch.net
http://mona.h.fc2.com/jaz06.html#.2ch.net
http://mona.h.fc2.com/jaz01.html#.2ch.net
http://mona.h.fc2.com/jaz10.html#.2ch.net
http://mona.h.fc2.com/jaz07.html#.2ch.net
http://mona.h.fc2.com/jaz04.html#.2ch.net
- 162 名前:nobodyさん :2003/10/10(金) 14:59 ID:wsQ4ga7c
- MySQL+PHPなんですけど、
DBのデータを月ごとにバックアップしたいんですが、どんな方法が最良かご教授下さい。
毎月、cronでCGI版PHPを動かし、
先月分のデータはCSVでバックアップ。
バックアップした分のデータはDBから削除。
なんですけど、普通にselectで取り出してCSVで保存→deleteで削除
で良いんですかね?
一月分のデータ量は1000件も無いとおもいます。
なにかいい方法があれば教えて下さい。
- 163 名前:nobodyさん :2003/10/10(金) 21:22 ID:???
- cronならmysqldumpでいいじゃないか。
- 164 名前:162 :2003/10/11(土) 11:56 ID:kzrER8VP
- >>163
mysqldumpで指定したレコードだけバックアップできましたっけ?
ざっと調べてみたんですが、それらしいことは見つからず。
月ごとにバックアップファイルを分けたいんですよ。
- 165 名前:162 :2003/10/11(土) 12:00 ID:kzrER8VP
- ああ!
--whereオプションがありました。
すみません・・・
これでやってみます。
- 166 名前:nobodyさん :2003/10/11(土) 16:26 ID:???
- >>78
>
> データベースの文字型の扱いをUTF-8にしたいってんなら、
> MySQL4あたりだと出来るはずだよ。
Blobを使うのじゃなくて、データベースの文字コードをUTF-8にできるの?
マニュアル読んだけどわからん。
ヒントをください。
- 167 名前:nobodyさん :2003/10/15(水) 18:40 ID:???
- http://www.mysql.com/doc/en/Charset.html の9.3の項をちゃんと読んでミソ。
(http://www.mysql.com/newsletter/2003-04/a0000000148.html にまとまってるけど)
全ての設定が可能なのはMySQL4.1から。それ以前はサーバ単位までだと考えてよい。
だから日本語のマニュアルにはサーバ単位の設定についてしか書いてないよ。
あと次の新しいバージョンではカラム単位の文字コードのサポートが強化される。
- 168 名前:nobodyさん :2003/10/15(水) 18:54 ID:???
- あー、リリースノート見ると4.0.6で
http://www.mysql.com/doc/en/News-4.0.6.html
Added syntax support for CHARACTER SET xxx and CHARSET=xxx table options
(to be able to read table dumps from 4.1).
となってるので、4.0.xでも一部サポートしてるかも知れぬ。
4.0固有の機能をちゃんと使ったこと無いので判らんが。
- 169 名前:nobodyさん :2003/10/15(水) 19:30 ID:???
- >>159
ALTER TABLE
- 170 名前:166 :2003/10/19(日) 08:48 ID:???
- >>167
遅レススマソ。
あれからマニュアルあさって4.1からサポートされるのを知って、
今4.1でテスト運用してます。
漢字はちゃんと3バイト消費するんだね。でもアルファベットなんかは
元のままと。
しかし、4.0.X系でもサーバ全体でならUTF-8が使えるって言うのは
初耳ですね。もう一度マニュアル読んでみます。
- 171 名前:nobodyさん :2003/10/26(日) 22:56 ID:???
- ここって次スレからはmysql総合質問スレにしよう。
- 172 名前:nobodyさん :2003/10/26(日) 23:05 ID:???
- と思ったらデータベース板なんてできていたのね。
次からはそっちで野郎。
- 173 名前:nobodyさん :2003/10/27(月) 01:09 ID:???
- >172
DB板って今は正常に機能してるの?
- 174 名前:nobodyさん :2003/10/27(月) 01:58 ID:???
- >>173
正常にって?
何か異常あるの?今日見つけたばかりだからわからない。
- 175 名前:nobodyさん :2003/10/31(金) 23:08 ID:???
- >174
うん。出来てすぐのころドラゴンボール板だとか
結構わやくちゃだったんだけど...今はそうでもないみたいだね。
- 176 名前:nobodyさん :2003/11/01(土) 06:23 ID:???
- . - _
_,..,_ ノ´//⌒ ミヾヽ、_
_____ ,r'´ ``'' - 、ーニ三彡´〃 ! ゙ゞヾ、_`ヽ
[|<|____├{ /´ { l | // ヽ`ーr' }
″ ! `、 ' ノ l. ||l i l / l ああっ、つ、つらいです...
', | ̄``''''ー―- ,'´l l |!` ‐--| l l l
', | l l | リ,! l
', | | | ,! ' リ
,.r''ヽ、 _ ', | |. |
,' ` ' ' ' ' ' ' ´ `ヽ ! | |
/ ,.r'´ ̄ '''''' ─−-........__ ,.r' | '''"''‐-、
~´  ̄ ̄ ̄
- 177 名前:nobodyさん :2003/11/05(水) 18:13 ID:ETjgtmUY
- テーブルAには、メンバーの名前・メールアドレス、URLなどの情報があり
テーブルBにはタイトル・内容などの掲示板の書き込みがあります。
この時、どのメンバーが投稿したかを判断するのに、テーブルB側にはメンバーID
も記録していますが、記録時に一緒に名前・メールアドレス・URLもテーブルAからコピーし
内容と一緒に保存した方が良いのか、それとも
読み込み時毎に、AとBを結合させてメンバーIDから名前やメールアドレスを呼び出したらいいのか迷い中です。
後者のメリットとしては、容量の軽減と、メンバーデータを編集した時に投稿記事にも反映される
と言う感じですが、テーブル結合は、どの程度負担が掛かる物なんでしょうか?
#全てのパターンを一時的に作成するようなので、素人考えて、データ数が多くなった時に
かなり負担が掛かってしまうんじゃないかと考えて、踏み切れないんですが…。
- 178 名前:nobodyさん :2003/11/05(水) 19:59 ID:???
- >>177
想定する件数や更新頻度などにもよるが。。
俺の美的感覚だと、BテーブルにAデータを埋め込むべきじゃない、と思うね。
- 179 名前:nobodyさん :2003/11/11(火) 23:34 ID:???
- >>177
正規化したほうがいい
考えてるほど負担はかからん
- 180 名前:nobodyさん :2003/11/13(木) 05:34 ID:XrP6U/53
- カラムのデータをインクリメントしたい場合、
一回のクエリーでは無理ですか?
今はロックしてから、selectで読んで1を足してupdateしています。
- 181 名前:nobodyさん :2003/11/13(木) 05:44 ID:???
- >>180
UPDATE table_name SET hoge = hoge+1 WHERE ・・・
みたいなことってできなかったっけ?
- 182 名前:nobodyさん :2003/11/13(木) 05:52 ID:???
- できゆ。
- 183 名前:nobodyさん :2003/11/13(木) 07:00 ID:XrP6U/53
- >>181-182
本当だー。ありがとうございます。
この場合もやっぱりロックはしておいた方がいいでしょうか?
- 184 名前:nobodyさん :2003/11/13(木) 08:52 ID:???
- >>183
単一のUPDATEクエリにはロックは不要。>>99 参照
- 185 名前:nobodyさん :2003/11/13(木) 10:12 ID:???
- 1行の場合、AutoCommitがはたらいて、
ロック→更新→ロック解除
が自動的に行われる
- 186 名前:nobodyさん :2003/11/13(木) 15:10 ID:???
- >>184-185
ありがとうございます。
勉強になりました。
- 187 名前:nobodyさん :2003/11/13(木) 16:02 ID:???
- >>182
ピノコ ハケーソ
- 188 名前:nobodyさん :2003/11/15(土) 06:00 ID:ZDgVRzRD
- いちいちターミナルでいじるのが面倒です。
PHPなどで出来た、
MySQLをウェブ上でいじれるプログラムなんてないでしょうか?
- 189 名前:nobodyさん :2003/11/15(土) 10:23 ID:???
- >>188
軟弱モノめ
phpMyAdmin - http://www.phpmyadmin.net/
- 190 名前:nobodyさん :2003/11/15(土) 12:13 ID:???
- >>189
まさにそのもののもの!ありがとうございます〜
- 191 名前:nobodyさん :2003/11/15(土) 12:18 ID:???
- CSEなんかの方が良いと思うが・・・
- 192 名前:189 :2003/11/15(土) 13:31 ID:???
- >>190
入れてみたら今まで何だったんだってくらい便利です。日本語でも使えるし。
いいものを教えて頂きありがとうございます。
>>191
http://www.hi-ho.ne.jp/tsumiki/
これですね。これも見てみます。ありがとうございます。
- 193 名前:nobodyさん :2003/12/02(火) 15:23 ID:???
- カラムAのレコードをカラムBに移す事ってできますでしょうか?
カラムA カラムB
232 0
422 0
433 0
↓
カラムA カラムB
232
422
433
MySQLでそのまま移動できれ良いのですが。
- 194 名前:nobodyさん :2003/12/02(火) 16:03 ID:???
- >>193
update文2回発行すればできる。
- 195 名前:nobodyさん :2003/12/02(火) 16:12 ID:???
- >>194
ありがとう。ちょい試してみます。
- 196 名前:nobodyさん :2003/12/02(火) 16:56 ID:???
- >>194
updateだけで出けた! ありがとでした。
- 197 名前:nobodyさん :2003/12/03(水) 18:39 ID:TwnN/agA
- レンタル系サービスをしているのですが、
コネクションが多すぎて接続できない、というようなエラーが出たので、
maxconnectionを2500にして再起動しました。
今のところ、正常に動作しているようですが、
maxconnectionの妥当な値とか限界ってどのくらいなのでしょう?
- 198 名前:nobodyさん :2003/12/03(水) 20:17 ID:???
- >197
おいおい、2500たぁすげえな。
サーバ資源追いつくのか(笑
デフォの100は少ないやね。直ぐに限界がくる。
#ウチは500。
- 199 名前:nobodyさん :2003/12/03(水) 23:02 ID:???
- >>197
サーバの能力次第としか言えんと思うけど・・・。
- 200 名前:nobodyさん :2003/12/03(水) 23:21 ID:TwnN/agA
- >>198
えっ…!!
100→500→とあげてきたので、もう一気にずばーんといってやれって感じで
5倍にしました。多すぎますかね?今のところは普通に動作しているようですが…。
>>199
topで見ると一つのmysqlがメモリ6〜7%くらいくってます。
全部のmysqlの数字が同じようなのですが、
これは全部まとめて6%ということでしょうか?
やばい数字ってtopで見ていくつくらいになりますか?
- 201 名前:nobodyさん :2003/12/03(水) 23:25 ID:???
- >>200
サーバの能力にも拠るが、DBへの問い合わせの負荷(テーブル設計に依存)にも
拠るので、単純にnコネクションなら大丈夫とか言えないということ。
- 202 名前:nobodyさん :2003/12/11(木) 04:22 ID:???
- ぶっちゃけ調べるの面倒なのでとりあえずyesかnoだけで簡単に教えてください。
WinMySQLのデータベースの内容をMS-Accessで編集できますか?
- 203 名前:nobodyさん :2003/12/11(木) 07:37 ID:???
- >>202
yes
- 204 名前:nobodyさん :2003/12/11(木) 15:33 ID:???
- ところでWinMySQLって何だ?そんな製品ないぞ
- 205 名前:202 :2003/12/11(木) 22:46 ID:???
- >>203
ありがとう。
>>204
winのmysqlの略でした。winmysqladminならあったっけ。
- 206 名前:nobodyさん :2003/12/13(土) 11:03 ID:F92TNOCR
- バージョンアップしようと思うのですが、
今稼働中のmysqlをシャットダウンして、
インストールした時と同様にインストールすればそれでOKですか?
稼働中のmysqlのデータファイルに変に上書きしたりしないでしょうか。
- 207 名前:nobodyさん :2003/12/13(土) 11:12 ID:???
- 一応バックアップ取っとけ。
- 208 名前:nobodyさん :2003/12/13(土) 13:45 ID:???
- >>206
上げなきゃいけない問題点とか最近あったっけ?
- 209 名前:nobodyさん :2003/12/13(土) 15:56 ID:???
- >>205
winmysqladminはあるよ。MySQL管理ソフト(クライアント)ね。
>>208
MySQL4.1.1が出たからそれに、とか。
- 210 名前:206 :2003/12/15(月) 07:08 ID:???
- >>207
ありがとうございました
>>208
微妙に古いのを使ってたことが分かったので3.23.58にしました
makeに予想以上の時間(1時間以上?)がかかって、
その間ちゃんとインストールできるのかドキドキでしたが
無事バージョンアップできますた。
- 211 名前:nobodyさん :2003/12/15(月) 10:03 ID:???
- > makeに予想以上の時間(1時間以上?)がかかって、
素朴な疑問なのですが
makeに1時間かかるマシンでもMySQLは実用になるのでしょうか?
できればマシンスペックを教えて下さい。
- 212 名前:nobodyさん :2003/12/15(月) 10:19 ID:6kUbsNOb
- レプリケーションをするために
バイナリログを取得する設定にして、
lsで見ていたら、
2秒で1万バイトくらい、ログのサイズが増加していくのに気づきました。
これではあっという間にディスクを食い尽くしてしまうと思うのですが
こんなものでしょうか?
- 213 名前:212 :2003/12/15(月) 13:08 ID:???
- 一時間に一度、ログをローテーション&二つ前のログを消去していくことにしました。
ログの連番は、
http://www.mysql.jp/mysql/TIPS/one_way_replication.html
ここを見ると001等、3桁ですが、これは999になった後はどうなるのでしょう?
- 214 名前:206 :2003/12/16(火) 00:16 ID:???
- >>211
三年くらい前に借りたさくらのレンタル鯖です
調べたらセレロン400/メモリ64Mでした。
今となるとかなりショボいっすね
MySQLはマシンスペックが素直に反映するらしいので乗り換えようかな。。
- 215 名前:nobodyさん :2004/01/26(月) 13:54 ID:???
- insert文を使うとき、
insert TABLE名 set COLUMN名='内容'
みたいにupdate文形式でも使えてしまうんですが、この文体で書いても問題ないんですか?
- 216 名前:nobodyさん :2004/01/26(月) 14:06 ID:???
- >>215
板違いです。
http://pc2.2ch.net/test/read.cgi/db/1056942908/
ここで聞きましょう。
- 217 名前:nobodyさん :2004/01/29(木) 22:18 ID:???
- php+mysqlでシステム組んでいるのですが
order by nameを使うとエラーが出てしまいます。
おそらくDBの作り方が悪いのだと思いますがどのように作るとよいのでしょうか?
phpmyadminで作っています。
フィールド名=omise
フィールドタイプ=varchar(100)
表示=なし
空の値=いいえ
基本値=なし
です
これ以外はなにも設定変えてません。
ヘルプよろしくお願いしますm(_ _)m
- 218 名前:nobodyさん :2004/01/29(木) 23:03 ID:???
- それはホントにorder byの部分でエラーがでてるのか?
- 219 名前:217 :2004/01/30(金) 09:37 ID:???
- すみません解決しました
Nullを設定してないだけでした
- 220 名前:nobodyさん :2004/01/30(金) 12:01 ID:???
- >>217
空の値=いいえって書いてあるね
- 221 名前:nobodyさん :2004/01/30(金) 23:09 ID:???
- ふつーのMySQLが使えるレンタル鯖って、innoDBはどれくらいの割合で使えるんでしょうか?
汎用系作ってるんですがロールバック使いたいので、どんなもんかと・・・。
よろしければご教授おねがいします。
- 222 名前:nobodyさん :2004/01/31(土) 03:28 ID:???
- >>221
割合が言えるほど資料も経験もない。
ただ最初からロールバックが使えるホスティング(innoDBかは知らん)と
innoDBが使えるように変更して貰ったホスティングの両方の経験はある。
「当てずっぽうで借りたら使えた」って程、一般的なもんではないので
ちゃんと契約する前に訊けばよい。
- 223 名前:nobodyさん :2004/01/31(土) 20:32 ID:???
- てか汎用系を連鯖で運用するのか?
- 224 名前:nobodyさん :2004/02/20(金) 04:49 ID:DNjtjE82
- 新しく借りた鯖にMySQLを移そうとしているのですが、
鯖屋が無料インストールしてくれたバージョンが3.23.56です。
今まで稼働していたのが3.23.58。
かなり些細なバージョン違いですが
やはりデータの形式に齟齬が出るでしょうか?
バイナリのデータをまるまるコピーできるのは
あくまでバージョンアップの時だけですか?
今テストしているのですが微妙にバギーな感じで、
もしかしたらバージョンの違いが原因なのかな、と思ったのですが…
- 225 名前:nobodyさん :2004/02/23(月) 10:58 ID:???
- 旧鯖でphpmysqladminとかでSQLをTEXTに吐き出して,
そのSQLで新鯖へデータ移行してみれば?
- 226 名前:nobodyさん :2004/02/23(月) 17:09 ID:???
- レスありがとうございます。
そうします。
Got error 127 from table handler
というエラーが出ました。
テーブルが壊れている時に出るエラーのようです。
- 227 名前:nobodyさん :2004/02/24(火) 18:12 ID:FnpMfmB+
- localでのテスト用にMySQLをインストールしました。Win98です。
Apacheを起動して、MySQLも起動しなければならないのですが、
どれを実行したらいいのかよくわかりません。
winmysqladmin.exeを実行すればよいのでしょうか?
- 228 名前:nobodyさん :2004/02/26(木) 02:53 ID:???
- すみません。
mytableから$sortで並べ替えてaddressを検索してlimitで$PAGESIZE * ($page - 1) ."$PAGESIZE
を取得したいのですが、
$sql = "select * from mytable order by $sort desc where address like '%$address%' limit " .$PAGESIZE * ($page - 1) ."$PAGESIZE";
これって間違ってるのでしょうか?
- 229 名前:nobodyさん :2004/02/26(木) 03:05 ID:???
- ↑ごめん
解決した
- 230 名前:nobodyさん :2004/03/02(火) 03:25 ID:U9B/qlfA
- テーブルにつけたコメントをphpで出力したいのですが
どうすればよいのでしょうか?
- 231 名前:nobodyさん :2004/03/02(火) 19:38 ID:???
- select comment from table into 出力ファイル名 by php;
- 232 名前:nobodyさん :2004/03/03(水) 12:43 ID:zpH+WglD
- 検索にかかった時間を取得するにはどうしたらいいのでしょうか?
- 233 名前:nobodyさん :2004/03/03(水) 13:01 ID:???
- query流す直前と流した直後の時間を取る。
- 234 名前:nobodyさん :2004/03/04(木) 15:50 ID:muAKEQzl
- データベースに同時にアクセスしたらどうなるのでしょうか?
flockのようなものはないのでしょうか?
- 235 名前:nobodyさん :2004/03/04(木) 21:56 ID:???
- >>234
複数からの接続はあってもSQLは順に処理されるから、
データが壊れるとかは気にする必要なし。
(これは一般のリレーショナルデータベースなら、みな同じ)
けれども、ひとつのクライアントが複数のSQLを発行していて、
その間に別のクライアントからのSQLが割り込んでもらったら困る場合は、
テーブルをロックする必要がある(たとえば、途中で更新されては困る場合など)。
マニュアルの
6.7.2 LOCK TABLES/UNLOCK TABLES 構文
を読むべし。
MySQL以外のリレーショナルデータベースは通常、
こういう用途のためにトランザクション機能を持っている。
MySQLもバージョンとテーブル型を選択することによって、
トランザクション機能が利用可能だ。
- 236 名前:nobodyさん :2004/03/05(金) 06:31 ID:fxR/ujQS
- webminを入れました。
webminにDBD::mysqlを手動で入れろと言われたので
入れようとしたのですが
perl Makefile.PLを実行すると、
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
と言われてしまいます。
mysql_configはmysql/binに入っていたので
それをDBD-mysqlディレクトリにコピーしてみても同じことで…。
いったいどうすればいいのでしょうか?
- 237 名前:nobodyさん :2004/03/05(金) 07:06 ID:???
- >>236
Perlのスレ(確かDBIのもあったはず)で訊け。
- 238 名前:nobodyさん :2004/03/05(金) 18:33 ID:6f95vfYH
- テーブルのカラムの型をどういうように決めればいいのでしょうか。
char, varchar, textはどのように使い分ければいいのでしょうか?
例えば、次のようなカラムを作ろうとした場合、文字列型は何が適切なのかで悩んでいます。みんなvarcharでいいような気もしますがどうなんでしょう。
id (半角英数)
password (半角英数)
名前(全角)
ふりがな (全角)
メルアド
郵便番号
住所
電話番号
>235はありがとうございました。トランザクション機能についてはよく分からないのですが、自分で勉強してみます。
- 239 名前:nobodyさん :2004/03/05(金) 19:46 ID:???
- >>238
全部charでいいんじゃないの?
- 240 名前:nobodyさん :2004/03/05(金) 23:22 ID:???
- >>238
CHARの方がVARCHARよりも検索スピードでは有利なんだけど、
MySQLはCHARとVARCHARとの間で暗黙(勝手に)の型変更があるので、
CHARだと思い込んで設計しない方が良いよ。
あと末尾のスペースの扱いも、ちっと他のDBMSと違うのにも注意。
- 241 名前:nobodyさん :2004/03/07(日) 10:51 ID:???
- レコード数が19万、テーブル全体で40MBほどのサイズになる予定のDBがあるんですが
これをレンサバ(Valuedomain)で運用する場合、やはり大きな負担になってしまいますかな?
使途はBBSなんですが、都合上スレッドの追加、削除をかなり頻繁に繰り返さなければ
ならないので上記の形(レス単位でレコード化)ではなくスレッド単位でレコードにしてしまおうか、
かなり悩んでおります。
形としては当然前者がスマートなんですが1分間に数百回insertするシステムて果たしてどうなのか・・・
- 242 名前:nobodyさん :2004/03/07(日) 10:55 ID:EF5NuiF0
- あげ
- 243 名前:nobodyさん :2004/03/07(日) 12:10 ID:???
- 掲示板データは書き込みの時にDBに追加して表示用のHTML作成して
表示の時はDBから毎回生成しなければそんなに負荷は掛からないんじゃないの
まあ 書き込み:読み込み のアクセス比率によっても変わるけどね
でも1分間に数百の書き込みって凄いと思うんだけど本当ですか?
- 244 名前:nobodyさん :2004/03/07(日) 12:13 ID:???
- 1つの書き込みで数十のテーブルに書き込むような構造にしてんじゃね?(藁
- 245 名前:nobodyさん :2004/03/07(日) 12:20 ID:???
- >>243
レスどもー
スレッド単位で激しい増減があるので結果的に数百というレコード数になってしまいますな
ただ先ほど、やはりBBSデータそのものをDBに保存するのは得策じゃないという結論に達しました
全文検索も簡単に出来るし使い勝手も良いのでなんとなくDBを使いたがっておったんですが、
スレッド毎にファイル保存して読み込むという、シンプルな手法を取ることにしました
DBはスレッドのいわゆるヘッダ情報のみを取り扱うことによってBBS群を管理しようかと思います
- 246 名前:nobodyさん :2004/03/07(日) 22:37 ID:???
- >>245
正直、全文検索が必要になるほどの価値のある書き込みのBBSを運用してみたいものよ。
MLのログアーカイブはDBに入れちゃって処理してるけどねぇ。
- 247 名前:246 :2004/03/07(日) 22:40 ID:???
- 補足:有料のGAME鯖のはCHATも含めてBBSもDBで運用してます。
(データのロギングやアナライズが結構必要なんよ)
- 248 名前:nobodyさん :2004/03/08(月) 00:24 ID:???
- MySQLの全文検索ってどうやるんですか?
- 249 名前:nobodyさん :2004/03/08(月) 01:19 ID:???
- >>248
http://www.google.com/search?&q=MySQL
- 250 名前:nobodyさん :2004/03/08(月) 01:49 ID:???
- GoogleってMySQLなの?
- 251 名前:nobodyさん :2004/03/08(月) 02:28 ID:Ajodln9P
- あー、なんかそんな記事を見た気が
- 252 名前:nobodyさん :2004/03/08(月) 02:28 ID:???
- ageスマソ・・・
- 253 名前:nobodyさん :2004/03/08(月) 03:20 ID:???
- へぇー
MySQLってすごいんですね。
- 254 名前:nobodyさん :2004/03/08(月) 04:23 ID:???
- googleの機能を全てMySQLで賄っている訳ではないと思うよ。
必要なところにはOracleだって使ってるだろうし、他のDBMSだって同様。
- 255 名前:nobodyさん :2004/03/08(月) 10:10 ID:???
- Oracleは使ってないだろう、多分。
- 256 名前:nobodyさん :2004/03/08(月) 10:10 ID:???
- 大部分は独自のエンジンだべ。
- 257 名前:nobodyさん :2004/03/08(月) 16:20 ID:???
- >>256
むしろ量での割合は結構使ってて、胆のフロントエンジンや
DBの分散PROXY(当然使ってるだろう)辺りは完全独自じゃないかと
思ってるんだけど。なんで量かっていうとキャッシュなどの部分で
ストレージっぽく貯めてるのがMySQLじゃないかな。
- 258 名前:nobodyさん :2004/03/08(月) 22:02 ID:???
- create table user(
ID varchar(10),
Name varchar(20),
Pass varchar(40),
No int(2),
unique(ID,Name,Pass)
);
でテーブルを作成しました。
僕が望んでいる動作はID,Name,Passが絶対に重複しないようにしたいんです。
ID:a Name:あいう Pass:1234
ID:b Name:あいう Pass:1876
この場合でも重複とみなしたい、ということです。
ですが、今は、IDとNameが重複したときのみ、エラーが出るんですが・・・
MySQLのエラーコードを見るには
a-あいう-1234・・・・
って出るので、もしかして、1列でまとめてデータ比較するから、だめってことですか?
- 259 名前:258 :2004/03/08(月) 22:31 ID:???
- よく分かりません。。。
MySQL側に頼り切るより
selectで呼び出して、重複して無いか調べるべきですね・・・
- 260 名前:nobodyさん :2004/03/09(火) 02:46 ID:AUivw7LZ
- テーブル作成時にidはauto_increment、nameはuniqueキーを指定しればいいと思う。
うちは重複してなんぼのDBだからよく知らないが・・。
- 261 名前:nobodyさん :2004/03/09(火) 22:15 ID:???
- constraint 句は使えんの?
postgreSQLは使えるよ
- 262 名前:nobodyさん :2004/03/09(火) 23:51 ID:???
- mysqlというかphpMyAdminで質問です.
mysql(MySQL 4.0.18nt)でphpMyAdmin(phpMyAdmin 2.5.6)を動かしています.PHPはVersion 4.3.4.
phpMyAdminで,データベースの各テーブルの【SQL】メニューから,
テーブルにテキストファイルの追加を選ぶことでcsv形式のファイルで登録しようと思ってます.
で,以前使っていたときはcsvファイルをuploadするときに文字コードを(EUCとかSJISとか)変換する
チェックボックスがあったのですがOSなどをインストールたところ,それがなくなってしまいました…
何か設定項目がありましたらどなたか教えてくださいm(_ _)mよろしくお願いします.
- 263 名前:262 :2004/03/10(水) 01:41 ID:???
- 自己解決しました.
php.iniでphp_mbstringを使えるように設定がうまくいってなかった模様でした.
- 264 名前:nobodyさん :2004/03/10(水) 02:37 ID:???
- みなさんは何でmysqlに入って管理してるんですか?
僕はWindowsのコマンドプロンプトから入るんですけど
その場合、マルチバイトの文字がフィールドにあると、化けますよね?(文字エンコードをEUCにしてるから)
それで、マルチバイトのデータがあるテーブルを見るときは、phpmyadmin使ってるんですが、こればっかりはどうしようもないものなのでしょうか?
- 265 名前:nobodyさん :2004/03/10(水) 04:14 ID:???
- なんだっけ?CSEだったかな?そんなSQLクライアントソフトがある。
それにeucかsjisのプラグインぶちこんであげれば
表示の文字化けが直る。ただエディタ機能はsjisしかないのかな?
だからうちもSSLでコマンドプロンプト。
- 266 名前:nobodyさん :2004/03/12(金) 07:39 ID:???
- レンタルサーバーでPHP+MySQL使ってますが
ソートと検索がうまくいきません
レンタルしてるサーバーはttp://www.80code.com/ですが
もしかして80codeも
ttp://zerokara.com/server_chart.html
ここのレンタルサーバーのページ下のほうに書いてあるように
ソートと検索において不都合が生じる可能性がございます。)
ということでしょうか?
- 267 名前:266 :2004/03/12(金) 10:59 ID:???
- 解決しますた
- 268 名前:nobodyさん :2004/03/12(金) 11:06 ID:???
- >266
自己解決したなら原因理由を書くのがマナー
- 269 名前:266 :2004/03/12(金) 16:10 ID:???
- 解決してません!。。。
- 270 名前:nobodyさん :2004/03/12(金) 16:42 ID:???
- >>266
TEXTじゃなくBLOBにするとか
VARCHAR を BINARYにするとかじゃないの。
- 271 名前:266 :2004/03/12(金) 18:12 ID:???
- レンタル屋さんに問い合わせしてみました。
テーブル作るときに文字コード指定したらいいとのことだったのですが
テーブルってphpで作れますか?
作れるとしたら教えてください。。。
また、コマンドプロンプトやMySQLManagerで接続しようと試みたのですが
どうあがいても接続できませんでした。。。(約4時間)
TableのSQLステートメントのDEFAULT CHARACTER SETというパラメータで
文字コードが選択できるらしいのですが、
ただテーブルを作るだけなのですが、わかりません。。。
よろしくお願いします。
- 272 名前:nobodyさん :2004/03/12(金) 18:35 ID:???
- >>271
コントロールパネルやphpMyAdminがついてるようだけど。
- 273 名前:266 :2004/03/12(金) 19:09 ID:???
- phpMyAdminでCREATE TABLE のSQLステートメント
DEFAULT CHARACTER SET使えないので。。。
- 274 名前:266 :2004/03/12(金) 19:12 ID:???
- あ、使えるのかな
- 275 名前:266 :2004/03/12(金) 20:02 ID:???
- どうもお騒がせしました。
以上で解決いたしましたm(_ _)m
- 276 名前:nobodyさん :2004/03/12(金) 20:09 ID:???
- >>266
つか、Query windowでSQLクエリ発行すれば
権限ある行為は基本的に全部出来るだろ。
SQLはMySQLのマニュアルなり本買ってきて読め。
- 277 名前:266 :2004/03/13(土) 13:28 ID:???
- すみません、解決してませんでした。
この構文が実行できないのです
create table hoge (name varchar(10) character set ujis);
ついでにこちらもできません
alter table table1 add (name varchar(10) character set ujis);
character set ujisを外すと実行できるのです
ちなみにcreateもalterも権限はあります。ujisもサポートされているとのことです。
よろしくお願いします。m(_ _)m
- 278 名前:nobodyさん :2004/03/13(土) 15:21 ID:???
- ていうか、そんな構文あったんかー
my.iniのdefault-character-set=ujisで全データベースのキャラクタセットが決まると思ってたんだがな・・
テーブルごとに変えれるとは知らんかったよ
- 279 名前:nobodyさん :2004/03/13(土) 15:31 ID:???
- >>277
MySQLのバージョンは?
ujis対応してるといっても、MySQL3.xまではサーバ単位
MySQL4.0.6以降でも単に"構文"が許されただけだよ。
(MySQL4.1からdumpしたのをぶち込むため)
"構文"の対応度もリビジョンで色々と細かく違うが、
実際に機能はしないので普通は関係ない。
実際にカラム、テーブル、DBでキャラクターセットを指定して
設定できるようになったのはMySQL4.1から。
http://www.mysql.com/doc/ja/Nutshell_4.1_features.html
貴方の使ってるところがMySQL4.1より前のだとしたら…
その程度で仕事してるとは、いい商売だな>レンタル屋の回答
- 280 名前:266 :2004/03/13(土) 22:24 ID:???
- >>279
何言ってるかよくわかりませんが
バージョン聞いてるってことは4.1以下ではできないってことですか?
- 281 名前:nobodyさん :2004/03/16(火) 14:56 ID:???
- >>266
4.1以前だとできない
- 282 名前:nobodyさん :2004/03/17(水) 02:48 ID:???
- >>280
>何言ってるかよくわかりませんが
20年早いってことだよ。
わかるようになってからおいで。
- 283 名前:266 :2004/03/17(水) 13:21 ID:???
- 先ほどメールが届きまして
プログラミング系のご質問はサポート外ですので当方ではご対応できません。
とのことでした。
これ以上僕にはどうすることもできません。。
ちなみにバージョンは3.23.58
2ちゃんねらのみなさん。ありがとうございましたm(_ _)m
- 284 名前:nobodyさん :2004/03/20(土) 13:02 ID:???
- MySQL超初心者です。2点質問があります。
MySQLをRedHat9にインストールしているのですが、
インストール終了後に行うDBの初期化で下記エラーがでてしまい、先に
進むことが出来ません。
ERROR: 1064 Something is wrong in your syntax : '"REPLACE works exactly like INSERT,
except that if an old\nrecord in the table h' 付近 : 1 行目
make installは上手くいったと思うんですが。。。。やはりインストール失敗
しているのでしょうか?ちなみにMySQLのバージョンは4.1.1-alphaです。
もう1点はRedHat9に収録されているMySQLをRPMでインストールしようとすると
[loca@llocalhost root]# rpm -ivh /mnt/cdrom/RedHat/RPMS/mysql-server-3.23.54a-11.i386.rpm
エラー: Failed dependencies:
mysql = 3.23.54a is needed by mysql-server-3.23.54a-11
というエラーメッセージがでてしまいます。
自分なりにいろいろ調べてみたのですが、どうしても解らない為、
どなたかご教授お願い致します。
- 285 名前:nobodyさん :2004/03/21(日) 03:29 ID:???
- 超初心者がalpha版をmakeして使おうって事自体おかしくないか?
- 286 名前:nobodyさん :2004/03/21(日) 22:31 ID:???
- >>285
知らない人間は黙っていましょう
僕みたいに(笑
- 287 名前:nobodyさん :2004/03/25(木) 12:22 ID:???
- >>284
上は4.1.1-alphaだとそうかもな。折れの場合起こらなかったけど。
同様のケースをMLだったかWebで見かけた。多分2chだったと思うけど、
自分で対処の仕方を探して見つけ、処理できないなら4.1使うのは止めとけ。
貴方に限らず良くAlpha版とかBeta版を選択する傾向があるみたいだけど何でなん?
AlphaやBetaのレベルは製品や会社毎で、出来合いの程度が違うから
その見極めが出来る前に、正版以外を選択するのはどうかと思う。
下はRPMの依存関係。要は3.23.54a-11.rpmは差分しか入ってないから
それ以前の3.23.54a自体も入れろってこと。
RPMの事まで説明すんの面倒くさいから、
http://www.softagency.co.jp/mysql/LAMP/
の配布パッケージ使っとけ。
- 288 名前:nobodyさん :2004/03/29(月) 20:12 ID:WLZZ269x
- select クエリでoutfileで出力したときのファイルをphpから消す方法しりませんか〜
mysqldの実行権限の問題だと検討つけてるんですけど、、、
- 289 名前:nobodyさん :2004/04/03(土) 13:28 ID:HKxnmMLJ
- 重複登録を防止するために
1)ロックをかけてその間にプログラムで検索する
2)MySQLのユニークキーを用いる
の2案を考えています。
この場合、
1)ではタイムアウトのおそれがあります。
2)では同じタイミングで複数からコネクトされたときに重複するおそれはないのでしょうか?
MySQL側で対応してくれるのでしょうか?
初歩的なことで悩んでいます。
よろしくお願い致します。
- 290 名前:nobodyさん :2004/04/03(土) 17:28 ID:???
- >>289
漆芝写璽芝社煮質射舎悉釈痔斜湿。ヲ治竺疾治嫉痔煮痔蒔痔痔痔屡痔蒔痔痔痔屡治爾
治隘軸治射璽赦璽?謝璽紗璽捨痔斜磁ァ射治湿磁識磁鹿治湿痔?紗痔痔痔。ヲ
治隘軸治射痔蕊痔煮屡竺痔失磁質磁痔磁釈磁?鴫痔蕊写璽質?辞痔ァ宍磁赦磁識磁縞痔七痔。ヲ質痔縞痔鹿痔射漆芝写璽痔嫉痔。ヲ蒔痔漆痔。ヲ煮痔写痔痔痔斜痔蕊痔執痔ヲ示痔辞治自
治隘赦璽?謝璽紗璽捨篠示痔蕊篠社竺?痔執痔屡痔識痔。ヲ。ヲ斜痔蕊痔執痔ヲ示痔辞治自
磁酌磁。ヲ蔀磁嫉磁。ヲ偲磁舎痔蕊屡鴫室?執痔屡痔ヲ示痔汐治爾痔漆痔。ヲヲ辞痔ネ煮痔識磁。ヲ識磁耳磁嫉磁縞痔煮
1痔柴痔者痔縞痔柴漆マ?痔七痔。ヲ酌痔嫉痔辞痔」爾漆芝写璽痔嫉痔。ヲ宍痔縞痔煮痔写痔痔痔蕊痔嫉治璽
- 291 名前:290 :2004/04/03(土) 17:33 ID:???
- うーん、コード変換が上手くいってないな...
>>289
重複登録防止の手法云々はおいておいて、
>2)MySQLのユニークキーを用いる
>2)では同じタイミングで複数からコネクトされたときに重複するおそれはないのでしょうか?
>MySQL側で対応してくれるのでしょうか?
マルチスレッドで動作してようが、それらから届くリクエストは
1つひとつ処理されますから、重複することはないです。
- 292 名前:nobodyさん :2004/04/03(土) 18:20 ID:???
- >>291
了解です。
たぶん、ちゃんとやってくれているんだろうなぁ・・・とは思っていたのですが、なにせ
確認する手段が無かったもので不安でした。
ロックかけてしまうとノロノロサーバなのですぐにタイムアウトしそうで・・・
どうもでしたm( _ _ ;)m
- 293 名前:nobodyさん :2004/04/06(火) 16:50 ID:RzzYT55p
- PHP + MySQL で test001 というテーブルがあるかどうか確認する手軽な方法はなんでしょうか?
- 294 名前:nobodyさん :2004/04/06(火) 18:03 ID:???
- >>293
状況がいまいちわからんがphpMyAdminを入れたら?
- 295 名前:nobodyさん :2004/04/06(火) 21:55 ID:???
- >>290
なんか、妙に「痔」という文字が目に付くのだが・・・
- 296 名前:nobodyさん :2004/04/07(水) 15:09 ID:4leqw1vc
- >>293
マニュアルでは
<?php
mysql_connect ("localhost:3306");
$result = mysql_list_tables ("wisconsin");
$i = 0;
while ($i < mysql_num_rows ($result)) {
$tb_names[$i] = mysql_tablename ($result, $i);
echo $tb_names[$i] . "<BR>";
$i++;
}
?>
- 297 名前:nobodyさん :2004/04/07(水) 17:41 ID:VgqQfo5b
- 今まで char(3) の フィールドで使ってました。
で、文字数を5文字に増やしたいので
char(3)を、char(5)に変えましたら、
フィールドタイプが可変長のverchar(5)になりました。
(3文字固定が5文字になったので、当然でしょうが・・)
やっぱり、やめようと思い、再び フィールドタイプchar(3)に設定しなおしたのですが
verchar(3)になり、charタイプに変更出来ません。
データの追加等々はしていません。
一度、vercharに変更すると、charには戻せないんでしょうか?
- 298 名前:nobodyさん :2004/04/07(水) 18:14 ID:qUHh0KEC
- >>297
6.5.3.1 カラムの暗黙的な変更
http://www.mysql.com/doc/ja/Silent_column_changes.html
MySQLではセオリーとしてCHARを指定しようが
VARCHARであるものとしてアプリ側を設計するのが正解。
http://www.mysql.com/doc/ja/CHAR.html
でCHARとVARCHARの違いと、他のDBMSとの違いにも注意。
文字長指定は日本語なんかだと1文字の長さ(バイト)が
固定で無いので、指定の意味が無いのも判るが
バイト長固定の型がない理由が良く判らん。
固定型の方がスピードで有利だと思うんだけどな。
- 299 名前:297 :2004/04/07(水) 20:32 ID:YKOta6fC
- ありがとうございます。
Mysqlは、VERCHARでやります。<(_ _)>
- 300 名前:nobodyさん :2004/04/08(木) 01:14 ID:/bs+vyyX
- テーブルがあるかの確認?
show tablesとかでできないの?
- 301 名前:nobodyさん :2004/04/08(木) 01:15 ID:???
- >>293
コンソールで mysql プログラムじゃだめなの?
shell が無いとだめだけど
- 302 名前: :2004/04/11(日) 12:41 ID:???
- ERROR 1030: Got error 127 from table handler
が、突然出ました。
復旧したのですが、
これって、どういう場合になるんでしょうか?
お分かりの方いらっしゃいますか?
- 303 名前:nobodyさん :2004/04/11(日) 17:59 ID:???
- 突然
ERROR 1030: Got error 127 from table handler
というエラーメッセージが表示されました。
その後、特に何も対処しなかったのですが復旧しました。
このエラーメッセージはどういった場合に表示されるのか
ご存知の方いらっしゃいますか?
- 304 名前:nobodyさん :2004/04/11(日) 19:19 ID:???
- >>303
302=303で、且つ別のスレにマルチポストしてる
香具師じゃないのか?
本人だったら投げるばっかりではなくちゃんと見ろ。
別人だったら情報を収集する能力をもちっと身に着けろ。
- 305 名前:303 :2004/04/11(日) 20:33 ID:???
- はい、マルチでした。
お許しください。
ペコm(_ _;m)三(m;_ _)mペコ
http://pc5.2ch.net/test/read.cgi/db/1079502373/74-
教えてくれかた。本当にありがとう
- 306 名前:nobodyさん :2004/04/13(火) 13:32 ID:???
- PHP + MySQLで、問い合わせ結果のソートをしたいのですが、ソートした物をさらに別の条件でソートする方法がわかりません。
どなたか解る方、いましたらご教授ください。
SELECT * FROM hoge ORDER BY id
↑このようにまずidでソートした結果にさらに、date(最終更新日データを持つint型のフィールド)でソートしたいのです。
- 307 名前:306 :2004/04/13(火) 13:34 ID:???
- 追記です。
最初にソートした結果が重複した場合に並べ替えたいという意味です。
- 308 名前:306 :2004/04/13(火) 13:37 ID:???
- 文書くのヘタですいません。
上記の内容で伝わるか不安なので、もう少し書きます。
例えば、スコアを競うゲームのランキングを表示する時に、スコア順でソートした結果、同じスコアの人が2人以上いた場合に、更新時間順で、順位を並べたいといった感じの
SQL文を書きたいのです。
- 309 名前:nobodyさん :2004/04/13(火) 13:54 ID:???
- >>306
http://dev.mysql.com/doc/mysql/ja/Sorting_rows.html
- 310 名前:306 :2004/04/16(金) 06:43 ID:???
- >>309
参考になりました。
ありがとうございます
- 311 名前:nobodyさん :2004/04/30(金) 11:42 ID:6/qGIiuk
- mysqlのconfigureを後から調べるにはどうすればいいですか?
- 312 名前:nobodyさん :2004/04/30(金) 15:45 ID:???
- >>311
# more ./config.nice
- 313 名前:nobodyさん :2004/05/04(火) 19:22 ID:???
- 普通にinsertで入れると化けないんだが、load dataで一気に読み込ませるとソだとか5Cが化けてしまう。
信頼のおけるデータに特化していないとはいえ、やっぱりかっこ悪いんで直したいんだけれども…。
全ファイルEUCに直しちまうかな。
- 314 名前:nobodyさん :2004/05/04(火) 19:32 ID:???
- まさかSJISでやってるとか・・
- 315 名前:nobodyさん :2004/05/04(火) 23:19 ID:???
- >>313
SONOMASAKA
- 316 名前:nobodyさん :2004/05/05(水) 01:31 ID:arqfTLfp
- point|col_A|col_B
―――――――――
+1|りんご|バナナ
-1|りんご|
-1|バナナ|
+1|もも |りんご
-1|バナナ|
こんな感じのテーブルがありまして、各果物ごとの合計数を出したいんですが、どうもうまくいかないんです。
(こんな感じが理想↓)
sum(point)| col
―――――――――
+1 |りんご
-1 |バナナ
+1 |もも
今、winローカルのMyQL4.0で勉強してるんですが、4.1なら
select col,sum(point) from table where not(col="") group by col =
(select col_A as'col',point from table union all select col_B,point from table);
こんな感じで通用しますか? 他に方法が思いつかないのですが……
- 317 名前:316 :2004/05/05(水) 01:38 ID:???
- 言い忘れましたが果物の名前は適当です。
実際に何が入るかはわからないので、where col = "りんご" とかは文に入れられないです。
- 318 名前:nobodyさん :2004/05/05(水) 05:27 ID:???
- webシステムでPHPなりASPからMySQLと連携する時
おまえら様はHTMLの文字コード何使ってんの?
おれは面同だからhtmlもmysqlもsjisに設定してるんだが。
EUC使うべきなんだろうか?
- 319 名前:nobodyさん :2004/05/05(水) 05:31 ID:???
- MySQLは当然EUC、PHPの内部処理も当然EUC、出力はたいていEUCだが気まぐれでSJISもあり。
- 320 名前:nobodyさん :2004/05/05(水) 11:33 ID:???
- sjisで使ってる奴って、ネタでやってんの?
内部処理とか考えたことあるの?
よくそれでずっとsjisで出来るな
- 321 名前:nobodyさん :2004/05/05(水) 14:07 ID:BMQ0QdDe
- HTML側はShift-jis、MySQL側をujisに設定してる場合、
フォームから拾ってきた値の中に、ソ、表、能などの文字があった場合
やっぱり文字化け起こすの?
- 322 名前:nobodyさん :2004/05/05(水) 14:21 ID:???
- はぁ、もうバカだなぁ・・・
Sjisで受け取ってPHP(cgi)内でEUCに変換して
MySQLに書き込むんだろが・・・
Web出力はS-JISが望ましいので
SJIS受け取り→スクリプト内でSJIS->EUC変換→MySQL書き込み
MySQL受け取り→スクリプト内でEUC->SJIS変換→SJIS出力
がセオリーだろ
- 323 名前:nobodyさん :2004/05/05(水) 15:36 ID:???
- >>322
SUGEEEEEEEEEE!
目から隣だぜ!
- 324 名前:nobodyさん :2004/05/05(水) 15:50 ID:???
- ・・・
バカにされてるのか
- 325 名前:nobodyさん :2004/05/05(水) 15:55 ID:???
- えー だってASPだと文字コード変換する関数がないんだもん
PHPにはあるの?
- 326 名前:nobodyさん :2004/05/05(水) 16:03 ID:???
- ASP+MySQLって組み合わせはあんまし聞かないね
ASPならACCESS(MSSQL)でやれば文字コード気にせずSJISで統一できる。
- 327 名前:nobodyさん :2004/05/05(水) 17:29 ID:???
- >>325
ASPでMySQL使うか?
PHP+MySQLが一番多いパターンだと思ったんだが
- 328 名前:nobodyさん :2004/05/05(水) 17:52 ID:???
- 何も考えずEUC-JPで統一すれば幸せになれるかもしらん
- 329 名前:nobodyさん :2004/05/05(水) 18:00 ID:???
- >>325
>えー だってASPだと文字コード変換する関数がないんだもん
BASP21のKconv使え。つか俺の場合ASPの言語比率はPerlの方が高いので、
ASP=VB/JScriptとするのは止めてくれんか。
- 330 名前:nobodyさん :2004/05/05(水) 18:08 ID:???
- Apache::ASP?
- 331 名前:nobodyさん :2004/05/05(水) 18:22 ID:???
- 全部UTF-8でやってるけど問題なし。
- 332 名前:329 :2004/05/05(水) 18:45 ID:???
- >>330
いやいや、普通にIIS+ActivePerl。
Apache::ASPを採用したことは今のところ無し。
移植するなら大いに有り得るが、シチュエーションがないですね
- 333 名前:nobodyさん :2004/05/05(水) 19:34 ID:???
- WinでApache+PHP+MySQLやってみようかと思ってるんですが、
PHP4.3.6でMySQL使えるようにするにはどうしたらいいですか?
試しにPHP5用のphp_mysql.dllをextensionsに入れて、
php.iniに設定追加などしてみましたがやはり認識しませんでした。
- 334 名前:333 :2004/05/05(水) 20:08 ID:???
- すいませんでした。
PHP4まではphp_mysql.dllは必要ないんですね。
php.iniいじらないといけないのかと勘違いしてました。
phpinfoみたら正常に動いてました。
- 335 名前:nobodyさん :2004/05/06(木) 20:10 ID:5CuaifxE
- >>326
basp21のkconv上手く使えないんすけど
ASPのinsert文でexcuteの所でエラーになる(型が一致しませんと)
リファレンス見てみると、なんだか戻り値にバイト配列受け取ってるのが原因っぽいんですがどうなんでしょう?
↓
[out] : 変換後の漢字コードを文字列(UNICODEの場合)あるいはバイト配列で
返します。
outtype = 0 なら漢字のタイプを数字で返します。
↑
HTMLはshift-jis、MySQLはujisに設定していて
shift-jis→EUCにしたいので、
out = bobj.Kconv(moji,2,1)
のように処理しているのですが・・・
- 336 名前:nobodyさん :2004/05/08(土) 16:27 ID:???
- mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
odbc
すみません。 これはphpinfoで示した物をコピペしたのですが
mysqlは動いているのでしょうか?
環境は Apache2(win32)+php4.3.4+mysql-4.0.18-win+perl です
mysql以外の動作は問題なく動いています
どうしてもweblogをやりたくて今回初めてmysqlを入れたのですが良くわかりません。
ググって調べてやれることはやったつもりなのですがうまくいきません。
申し訳ないのですがいい知恵が有りましたらお願いします
- 337 名前:nobodyさん :2004/05/08(土) 17:20 ID:???
- >>336
phpinfo()の表示からはMySQLが動作してるか/していないかの判別は出来ない。
>環境は Apache2(win32)+php4.3.4+mysql-4.0.18-win+perl
手元のPCに入れてるようなのでPHP+MySQLの組み合わせの簡単な
初心者本が何冊も出てるので、それみて基本から勉強した方がいい。
# MTとかの本にも環境のインストールから書いてあるものがあったとは思うけど。
- 338 名前:336 :2004/05/08(土) 20:32 ID:???
- http://www.dream-seed.com/server/mysql.html
ココと同じようにインストして次にパス通して(システム→詳細設定→環境変数→Path)
その後コマンドプロントで動作確認はしました。
タスクトレイでも青信号です。
何か糸口はないでしょうか
- 339 名前:nobodyさん :2004/05/08(土) 20:43 ID:???
- とりあえず、本当に”mysqlが動く”だけじゃできんよ
まずデータベースを作成しないと
そしてユーザー作成も
その辺はWebで漁ったらいくらでもある
しかし、そのレベルにも達してないような・・・
- 340 名前:nobodyさん :2004/05/08(土) 22:16 ID:???
- >>338
じゃあ、mysqldは動いてるね。
あとはmysql(クライアントツールの方ね)から接続できるか試してみて、
動作テストはMySQLのマニュアルに出てるでしょ。
# 「コマンドプロントで動作確認」がその指示に従ってるなら不要だけど
で、その設定(my.cnfのクライアントのところの設定)をPHPに反映させる手順かな。
phpinfoの表示からはmysql拡張モジュールは組み込まれてるのが見て取れるので、
アプリの設定だけで、多分上手くいくよ。
339が言ってるようにアプリによっては事前に専用の
ユーザやデータベースの作成が必要/推奨されてるかも。
その辺はアプリの話なので付属のドキュメントかblog系のスレをあたる。
大抵はユーザやデータベースをmysqlで先に作っておくのが常套。
- 341 名前:nobodyさん :2004/05/08(土) 22:48 ID:???
- phpかperlがあれば、load data infileうんぬんを使わなくても大丈夫だね。
web上にうpしたデータのパスの指定がわからんかったから、結局あきらめてfgetsで1行ずつ読んじまったOTL
- 342 名前:336 :2004/05/09(日) 22:22 ID:???
- 皆様ありがとうございます。大変ご親切な指導のおかげで動作しました。
うまくいかなかった原因は
http://www.dream-seed.com/server/mysql.html
ここのサイトの下の方に
ここで入力したユーザー名とパスワードはDBにアクセスする際に使用するもので、
PHPスクリプトなどでも使います。
こんな一文があり、この時点でユーザーとパスが設定されているものだと思い込んでいました
サイトに書いてあるからと鵜呑みにしては駄目ですね
>>340さんの
大抵はユーザやデータベースをmysqlで先に作っておくのが常套。
この一言が解決へつながりました。ありがとう御座います。
その他の皆様も真剣に答えていただき大変感謝しております。
これを機に少しでも多く覚えられるよう勉強していきたいと思います。
本当にありがとうございました
- 343 名前:nobodyさん :2004/05/09(日) 23:05 ID:???
- >>342
解決おめ。
>サイトに書いてあるからと鵜呑みにしては駄目ですね
そうだな。できる限り原典(公式マニュアルとか)にあたるか、複数ソースでウラを取ったほうがいいよ。
- 344 名前:nobodyさん :2004/05/11(火) 00:09 ID:???
- >>342
http://www.dream-seed.com/server/mysql.html
こいつ厨まるだしだな
- 345 名前:nobodyさん :2004/05/11(火) 00:59 ID:???
- そう、公式マニュアルが当然一番詳しい。
良く分からん解説ページなんて、見るのは時間の無駄だ。
- 346 名前:nobodyさん :2004/05/11(火) 10:16 ID:???
- >>344
技術的な間違いはともかく、そういう抽象的な指摘は良く判らん。
少なくても俺よりはデザイン力があることは判ったが、
技術的な記述はやった手順だけで、それ以外のルートやTipsなんかが
無い点で解説としては物足りないが、全然資料がないソフトなんかだと
単なる作業ログの公表だけでも充分有益なんだけどね。
# 本当に、誰かやったことがある人が「いる」ってことだけでも。
- 347 名前:nobodyさん :2004/05/13(木) 11:34 ID:ivEny0gv
- windows98/ie6
すでにperl5とhttpdは漏れのパソコンに入れてるんだけど、mysqlも入れて色々試してみね?
ってとりあえずzip形式の香具師を入れてみますた。
setup.exeが済んで次はwinmysqladmin.exeをクリックしてmy.iniファイルを作れ!って指令だったから
その通りにしますた。
次はmysqldをクリック!
????出てきたプロンプト画面が数秒で勝手に閉じてしまった・・・・・何度やっても同じですた。
誰か漏れを助けて_|~~|○
- 348 名前:nobodyさん :2004/05/13(木) 11:41 ID:???
- >>347
青信号だったらすでにmysqldは起動しているので問題ない。
- 349 名前:347 :2004/05/13(木) 12:28 ID:???
- 青信号ですた!よし!とりあえずインストールはokということで先に進んできます。
漏れを救ってくれてありがとう!
- 350 名前:347 :2004/05/13(木) 14:49 ID:???
- 今MS-DOSプロンプト画面からの命令をお試し中。
そのプロンプトから
mysql -h ホスト名 -u ユーザ名 -p
password****
を入力するとこんなエラー文が出てきますた。
ERROR 1045:access denied for user...
翻訳すると「ユーザのために否定されたアクセス」となりますがユーザ名はちゃんと
mysqladmin.exeで設定したものツカタから間違ってると言われてもね・・・・
漏れの何が悪いんだ_|~~|□
- 351 名前:nobodyさん :2004/05/13(木) 15:16 ID:???
- >>350
-pはたぶんいらない
-hもたぶんいらない(localhostなら)
-uもついでにいらない
たぶんmysqlだけでOK
- 352 名前:nobodyさん :2004/05/13(木) 15:24 ID:???
- ユーザ名に@localhostつけてユーザ設定してないんじゃない?
- 353 名前:nobodyさん :2004/05/13(木) 15:27 ID:???
- TinyFTPdとMySQLって共存できないのかな?
Serviceは動いてるのに
MySQLadminのServerInfo空っぽになっちゃう
Tinyアンインストールすると問題無し
ほかにもこんな人いる?
- 354 名前:347 :2004/05/13(木) 15:54 ID:???
- >>352
してませんですた。そんな話すら知りませんですた。で、今mysqladmin開いてmi.ini.setupのとこのユーザ名を
とりあえず、a@localhost、ってやって、
mysql -h localhost -u a -p
password:****
ってやってみますたが、やっぱりエラー文は変わりませんですた。他にも色々やってみますたがエラーの奴隷になっていまつ・・・
>>351
匿名で接続はうまくいくんだけど、一応ホスト名・ユーザ名・passを指定しての接続もできるようになておきたい。
- 355 名前:nobodyさん :2004/05/13(木) 16:04 ID:???
- >>354
とりあえずwinmysqladminのユーザとパスワードは関係ないので忘れてくれ。
- 356 名前:347 :2004/05/13(木) 16:30 ID:???
- そうですたか・・・まあ今はまだmysql初日。勉強を進めていけばそのうちわかる日がくると
思うでつ。
ところで共用鯖のmysqlの安全性ってどれくらいだろう。共用鯖でクレジット決済とかやったら無謀?
まったくやる気はないけど後学のために聞いてみたいでつね。
- 357 名前:336 :2004/05/13(木) 17:20 ID:???
- >>356
がんばってください
>>355
のヒントは非常に重要かと
私もその辺りで引っかかっていました
- 358 名前:nobodyさん :2004/05/13(木) 17:52 ID:???
- >>347
このスレ最初から読み直して見るといいと思われ
- 359 名前:347 :2004/05/13(木) 18:37 ID:???
- >>357
ありがとでつ
今はperlからmysqlを操作する為にとりあえずDBIモジュールが必要ってんで初めてcpanに行くが
落とし方わからず1時間経過_|~~|○・・・・なんで青い画面が出てから動きがないんだろう・・・
青い画面を前に右往左往してる漏れ、情けない;
ならばソースをブラウザからコピーだ!・・・一杯ファイルがあって撃沈。DBI.pmだけでいいはずと思うが自信なし・・
みたいな状況でつ。頑張りまつ!
- 360 名前:nobodyさん :2004/05/13(木) 19:12 ID:???
- perlが君の得意な言語じゃなくて、ただmysql操作のツールとして使いたいってのなら
phpインストールしてphpmyadmin入れるとか
EUCも使える日本製のDBクライアント「かねやんなんたら〜」を入れるとか
- 361 名前:nobodyさん :2004/05/13(木) 19:36 ID:???
- MYSQLCCってのもある
>>347はきっとMySQLadminからデータベース作れなくて
焦ってるんだろうなと推測してみる
- 362 名前:347 :2004/05/13(木) 21:05 ID:???
- >>361
プロンプト画面から、データベース作ったりテーブル作ったりは問題なしでつ。まだユーザ名の
問題は解決してないけど、とりあえずそれは置いとく事にしますた。
>>360
今のところperlが一番マシでつね。初めてHTMLタグを見てから2ヶ月くらいなので、たかが知れてるけど;
- 363 名前:nobodyさん :2004/05/13(木) 21:46 ID:rgBd1RCO
- すいません、質問させて下さい。
Fedora core1に全てソースから
apache 2.0.49(./configure --enable-so)
php 4.3.6(./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-sigchild --enable-mbstring --enable-mbregex --enable-zend-multibyte --with-mysql)
mysql 4.1.1(./configure --with-extra-charsets=all --with-charset=ujis --prefix=/usr/local/mysql)
で、インストールして
テストのために
<?php
$ID = mysql_connect("localhost:3306","ID","Pass")
?>
というスクリプトをサーバーに設置してブラウザから開いたのですが
いろいろと試してみたのですが
Warning: mysql_connect(): Access denied for user: 'nino'@'localhost' (Using password: YES) in /usr/local/apache2/htdocs/sqltest.php on line 2
というエラーメッセージが出るところで止まってしまいます。
原因、解決法等、どなたか御教授願います。
- 364 名前:kuro :2004/05/13(木) 21:51 ID:Enx3JY3V
- 誰でもできるゴミビジネス即金パック
http://pcbiz-j.com/business/blt.html
■不用品の処分から高額換金、プロのノウハウなど、毎月30万円稼ぐテクニックをあなただけに教えます。
■今なら期間限定割引!即金パックの販売代理店権利つき!
http://pcbiz-j.com/business/blt.html
きちんとした通信販売ビジネスです。
▼販売用のホームページを無料で支給します。
▼決していかがわしいマネーゲームなどではありません。
▼作業は1日にわずか数十分。(メール処理、通帳記帳など)
▼こっそり儲けたい人には、別名義での開業オプションもあります(資料メール参照)
http://pcbiz-j.com/business/blt.html
- 365 名前:nobodyさん :2004/05/14(金) 13:53 ID:???
- >>363
>原因、解決法等、どなたか御教授願います。
そこまで人まかせってのも凄いな
- 366 名前:nobodyさん :2004/05/14(金) 14:09 ID:???
- >>363
このMySQL拡張モジュールは、4.1.0以降のMySQLのバージョンでは動作しません。 これ以降については、MySQLiを使用して 下さい。
- 367 名前:363 :2004/05/14(金) 15:04 ID:RjPRbRx2
- >>366
すいません、どのMySQL拡張モジュールなんでしょうか?
- 368 名前:366 :2004/05/14(金) 15:20 ID:???
- >>367
マニュアルからの引用です
マニュアル嫁
- 369 名前:366 :2004/05/14(金) 15:25 ID:???
- 追加
注意: mysqli拡張サポートはMySQL 4.1.2以上で動作するよう設計されています。 それ以前のバージョンについてはMySQL 拡張サポートのドキュメントをご覧ください。
MySQL4.1.1は仲間はずれのようだ。
おとなしくMySQL4.0にしておいたら
- 370 名前:363 :2004/05/14(金) 16:17 ID:RjPRbRx2
- >366
そうですか?
了解しました。
おとなしく4.0に落とします
- 371 名前:363 :2004/05/14(金) 16:18 ID:RjPRbRx2
- いかん、文字化けしてなめた口調になってる(汗
失礼しました。
とてもためになりました。
ありがとうございました。
- 372 名前:nobodyさん :2004/05/14(金) 19:59 ID:???
- mysqlってインスコしてmyadmin初めてクリックした時に名前とパスワード決めるよね。
とりあえずそんな事は忘れて、
mysql -h localhost -u root -p
enter pass:空白
ってやると接続成功するね。ついでに
set password for root=password('newpassword');
ってやるとrootのパスを変えれるね。
このrootって要はユーザ名のデフォルト値みたいだけど、このrootっていうユーザ名はどこで変えられるんだろう。
1行目に書いたmyadminのユーザ名・パス値の設定は無関係みたいだし。
今grant構文で躓いてまつ。で、この辺りを知れば少しは理解も深まるかなと思いつつもう夜に・・・
一日やってgrantから抜け出せないのは悲しいから、応援を頼みに来ますた;
- 373 名前:nobodyさん :2004/05/14(金) 20:04 ID:T1nzoUOS
- Linux に MySQL 4.1 を RPMでインストールしたんですけど
server, client は問題なくインストールできましたが
Maxはlibxxxがないとかでエラーになってしまいました。
トランザクションを使いたいんですけど、Maxをインストールしてないと
何か問題が起きますか?
- 374 名前:nobodyさん :2004/05/14(金) 20:21 ID:???
- このスレレベル低すぎだろ・・・
複問い合わせとか複雑なselect構文の質問とかしてるのかと思ったら
インストール後のログインとか
rootのパスワードとか
grantとか・・・
つま、myadminは、ただの”設定ツール”
その時に求められる名前とパスワードのものは”myadmin”のもので
M y S Q L の ア カ ウ ン ト と は 一 切 関 係 あ り ま せ ん
あー、腹立つ
最低限の知識ってもんがあるだろが
- 375 名前:nobodyさん :2004/05/14(金) 20:27 ID:???
- しかしスレタイになかなか良くマッチしたレベルだと思うぞ
- 376 名前:372 :2004/05/14(金) 20:54 ID:???
- >>374
ごめんでつ。頑張ってgrant成功させるよ。
- 377 名前:nobodyさん :2004/05/14(金) 21:16 ID:???
- >>373
MySQL4.1だと、Maxじゃなくてもトランザクションを
使えるデータストレージ、InnoDBはサポートしてるから
「トランザクションを使いたい」なら関係ない。
- 378 名前:372 :2004/05/14(金) 21:38 ID:???
- grant成功した・・・・・でも未だにperlからのconnect成功しない。なんかそこらへん
の事詳しく説明してるとこ少ないね;たいていサイトの手順とおりやるとエラーだし。
それじゃ
- 379 名前:nobodyさん :2004/05/14(金) 22:15 ID:???
- >>378
DBI/DBD::mysqlはいんすとーるしましたか?
- 380 名前:372 :2004/05/14(金) 23:04 ID:???
- >>379
!!??
ACTIVEPERL使ってるので、ppmでDBIはインストールしましたでつ。DBIに一緒にDBDもくっついてきますた。
でもmysql.pmっていうのはなかったのでppm mysqlってやてみまつ。
- 381 名前:372 :2004/05/14(金) 23:40 ID:???
- 漏れが馬鹿だった・・・DBIだけでいいと思いこんで疑わなかった・・・
とりあえず、Data-Dumperを入れるの成功。Msql-Mysql-modulesを試みたら
Error installing package 'Msql-Mysql-modules': Read a PPD for 'Msql-Mysql-modules', but it is not intended for this build of Perl (MSWin32-x86-multi-thread)
パッケージ「Msql-Mysqlモジュール」をインストールするエラー:「Msql-Mysqlモジュールs」のためにPPDを読む、しかし、それはPerl(MSWin32-x86マルチスレッド)のこの構造のために意図されません。
ってエラー。もしかしてMsql-Mysql-modulesっていうモジュールはppmからじゃインストールできないのかな。
ppm install Msql-Mysql-modules じゃなくてちゃんとコンパイラ入れてやらなきゃだめぽ?
- 382 名前:nobodyさん :2004/05/14(金) 23:45 ID:???
- もはや個人の日記帳
- 383 名前:nobodyさん :2004/05/14(金) 23:53 ID:???
- >>372
日記は自分のHPに書けって
ウザイ
- 384 名前:372 :2004/05/15(土) 00:00 ID:???
- >>382>>383ごめんなさい
>>379
どうやらDBD-mysqlでもいいとのことで、そっちはppmでインストールできました。
みなさんごめんなさい
- 385 名前:nobodyさん :2004/05/19(水) 00:08 ID:???
- 372の日記がなくなると廃墟だなここ。
そう考えるとなんで>>383はそんなにうざがったんだ?
- 386 名前:nobodyさん :2004/05/19(水) 12:33 ID:???
- 自分の思い通りにいかない事が
- 387 名前:nobodyさん :2004/05/19(水) 17:54 ID:???
- >>372=>>385
なんだかな
スレ違いの話されて気分いいはず無いだろ
って、釣りかよ
- 388 名前:nobodyさん :2004/05/19(水) 22:34 ID:???
- おまえら板違いですよ
- 389 名前:nobodyさん :2004/05/19(水) 22:59 ID:???
- >>388
お前が一番板違い
- 390 名前:nobodyさん :2004/05/20(木) 00:05 ID:???
- 2chにはデータベース板というものがあって
そしてそこにはMySQLスレもあって…
といちいち説明せんと理解もできんのか
http://pc5.2ch.net/test/read.cgi/db/1079502373/l50
- 391 名前:nobodyさん :2004/05/20(木) 01:23 ID:???
- >>392君、>>390君のパスを華麗にスルー!
- 392 名前:nobodyさん :2004/05/20(木) 02:17 ID:???
- だから、PHPやPerlにおけるMySQLの運用のためのスレなんですってば。
板違いとか言う奴は今後一切mysql_queryと書いたらイカン。コピペもダメ。辞書登録もダメ。
- 393 名前:nobodyさん :2004/05/20(木) 02:35 ID:???
- そもそも只の単発質問スレに>>392のような重厚な意義があるとは思えん
- 394 名前:nobodyさん :2004/05/20(木) 13:53 ID:???
- DB板以前からあるんだから使い切るまではまったりつかっときゃ良いだろ。
- 395 名前:nobodyさん :2004/05/24(月) 09:31 ID:dSsrxF7S
- select で得た結果の中から特定のIDの表示順を一回のSQLで取得する方法はあるでしょうか?
例えば、成績テーブルがあり、カラムが2つ(生徒ID、得点)あるとします。
select 生徒ID,得点 from 成績テーブル order by 得点 DESC;
で得点順に並べられますが、生徒IDが「10」の生徒は何番目か?を知るということです。
結果をループさせて生徒IDを見ればできるのですが、これくらいSQLでサクっと出せないか
と思いますが、どうでしょうか?
- 396 名前:nobodyさん :2004/05/24(月) 09:55 ID:???
- >>395
サブクエリ使わないと1回では無理でしょう。
ID=10の得点をselectしてその得点以上をcount()する。
- 397 名前:395 :2004/05/24(月) 11:19 ID:dSsrxF7S
- >>396
1回では無理みたいですね。
- 398 名前:nobodyさん :2004/05/24(月) 21:55 ID:???
- 君たち、副問い合わせを使えばできるってことは一発って事なんだよ。君たち。
- 399 名前:nobodyさん :2004/05/24(月) 22:03 ID:???
- select1個につき1回とかおもってるんじゃねーの
- 400 名前:nobodyさん :2004/05/24(月) 22:03 ID:???
- 複問い合わせ=select後、select
つまり2回してる、とこういうことが言いたいんだろう
- 401 名前:nobodyさん :2004/05/24(月) 22:12 ID:???
- サブクエリを使えないバージョンだから
副問い合わせを使わない方法を聞きたい、って話じゃないの?
- 402 名前:395 :2004/05/25(火) 10:39 ID:xFzsgML9
- 言葉足らずでした。バージョンは3.23.54 です。
- 403 名前:nobodyさん :2004/05/25(火) 15:29 ID:???
- >>402
マニュアルに古いMySQLでの副問い合わせの置き換え
のTipsがまとまってるし、他のサイトでも情報はあるので
他のDBMSの思考のまま「副問い合わせが無い」ってだけで
考えが停止しなけりゃ、大概のものは何とかなる。
データベース設計も考慮せにゃならんこともあるので
単純に移行つうケースでは難しい局面もあるけど。
- 404 名前:nobodyさん :2004/05/26(水) 18:28 ID:tBH3RGFO
- 質問させてください。
PHPからMySQLのデータをselect文で抽出しようとしているのですが、
データの最後から任意の数を昇順で収得することはできるのでしょうか?
WHERE sample=1 ORDER BYsample_id DESC LIMIT 0, 5
こういう感じでやってみましたが、これだと降順になってしまいます。
DESCを入れないと最初からの5件になってしまう・・・
今は仕方なく後でarray_reverse()でひっくり返してるんですが
抽出段階で希望の順番になってくれると処理を簡略化できるのにと思っています。
以上よろしくお願いします。
- 405 名前:nobodyさん :2004/05/26(水) 18:58 ID:???
- ASC
- 406 名前:nobodyさん :2004/05/27(木) 11:39 ID:uyBl2d4s
- >>404
DESC を入れなくて昇順にならないのはおかしいですね。
sample_id は数字ではなくて文字ですか?
>>405
order by のデフォルトはASCでは?
- 407 名前:nobodyさん :2004/05/27(木) 13:49 ID:???
- >>404
最初すげー初歩的な質問かと思ったけど、よくよく見ると
結構難しいなそれ
>>406
DESCを入れないと(昇順で)最初からの5件って言ってると思われ
- 408 名前:nobodyさん :2004/05/27(木) 14:01 ID:???
- >>404
SELECT * FROM table ORDER BY sample_id ASC LIMIT count(*)-5, 5;
みたいなことがやりたいんでしょ?(できないけど)
俺には泥くさい方法しか思い浮ばんorz
- 409 名前:407 :2004/05/27(木) 14:04 ID:???
- >>404
とりあえずプログラム初心者の俺が即興で考え付いたのは、
SELECT COUNT(*)で取得した全レコード数を、PHPで変数$hogeにセット
↓
$hoge -= 5
↓
WHERE sample=1 ORDER BY sample_id LIMIT " . $hoge . ", 5
でどうだろう
- 410 名前:407 :2004/05/27(木) 14:06 ID:???
- >>408さんとほぼ内容かぶってたな・・
- 411 名前:404 :2004/05/27(木) 16:51 ID:MHGXoj5w
- みなさんレスありがとうございます。
>>406
実際作ろうとしているものはsample_idの部分は時間です。
10桁の数字でデータベースに格納されてます。
>>407-408
やっぱり前処理か後処理が別途必要になるわけですね。
参考になりました。ありがとうございます。
作りたいものを具体的に書くと、この2chのレス表示みたいなことがさせたいんです。
板トップだと各スレッドは1さんの後に、最新投稿が時間の古い順に10件表示されてます。
このレス部分を抽出段階でこの順番で収得するにはどうすれば良いんだろ?と
いろいろ考えてました。
- 412 名前:nobodyさん :2004/05/28(金) 09:40 ID:yz9ImxWf
- windows98+Mysql3系です。
コマンドプロンプトから外部SQLファイルを読み込ませようとしているんですが、
うまくいきません。
mysql> use test
Databese changed
mysql> test < tmp.sql
ERROR 1064: You have an error in your SQL syntax near 'test < tmp.sql' at line 1
になってしまうんです。SQL分はネットのサンプルからコピーしたもので
間違い個所等はないように思えるんですがアドバイスお願いします。
- 413 名前:nobodyさん :2004/05/28(金) 09:51 ID:???
- >>412
tmp.sqlの1行目に間違いがある
- 414 名前:nobodyさん :2004/05/28(金) 13:15 ID:???
- test < tmp.sql が1行目
- 415 名前:nobodyさん :2004/05/28(金) 13:18 ID:6cZBVmMM
- >>412
外部ファイルの実行は
mysql>\. filename
じゃねーの。
- 416 名前:412 :2004/05/28(金) 20:47 ID:???
- どうもです。
\. filename 又は source filename
でできました。
- 417 名前:nobodyさん :2004/05/31(月) 21:52 ID:???
- 質問です。
次のようなテーブルがあります。
・table_program
-----
ID
番組名
番組名かな
-----
・table_song
-----
ID
table_programID
曲名
曲名かな
-----
「曲名」で検索して、検索結果には「曲名」と「番組名」を表示したいのですが、
どのようなSQL文になるのでしょうか?
無理ではないと思いたい のですが。
よろしくお願いします。
- 418 名前:nobodyさん :2004/05/31(月) 22:45 ID:???
- たぶん入門書を読んだほうがいいんでない?
- 419 名前:nobodyさん :2004/06/01(火) 08:31 ID:???
- >>417
SELECT s.曲名,p.番組名 FROM table_song AS s LEFT JOIN table_program AS p ON s.table_programID=p.ID WHERE s.曲名='ちんこ音頭';
- 420 名前:nobodyさん :2004/06/01(火) 18:37 ID:???
- >>419
ありがとうございました。
>>418
買ってみたのですが、どうも分かりづらくて・・・
で、mysql.comのマニュアルを見てたのですが、あまりにも多すぎて・・・
>>419から逆引きで調べてみます。
/* 週末には本屋に行って来ます。 */
- 421 名前:nobodyさん :2004/06/01(火) 20:00 ID:???
- Windows2000 に Mysql4.0.20aをインストールしました。
WinMysqlAdmin.exe を実行すると、
ダイナミック リンク ライブラリ LIBMYSQL.dll が指定されたパスC:\mysql\bin;;C:\WINNT\system32;C:\WINNT\system;C:\WINNT;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem に見つかりませんでした。
というエラーメッセージが出ます。
\bin フォルダにはもちろん LIBMYSQL.dll は見当たらないし、\WINNT フォルダの中にも My.ini がありません。
LIBMYSQL.dll は全部で2つ見つかりました。
WinMysqlAdmin.exe を実行するには、および、不足しているファイルを補うにはどうしたらよいでしょうか?
- 422 名前:nobodyさん :2004/06/01(火) 20:28 ID:???
- >>421
C:\mysql\binにlibmysql.dllがないのが、なんとなくおかしい。
# MySQL4.0.18のレイアウトから4.0.20aで変わってるのかも知れんが。
MySQLのサービスを停止してから、MySQLをアンインストールして
再度インストールしてみれ。
- 423 名前:nobodyさん :2004/06/01(火) 20:49 ID:???
- >>421
試しにダウンロードしてみた。
確かにdllが無い。
元の4.0.17に戻しました。
- 424 名前:421 :2004/06/01(火) 20:54 ID:???
- >>422
>C:\mysql\binにlibmysql.dllがないのが、なんとなくおかしい。
そうですよね。
起動そのものができてないです。
アンインストールして再インストールしてみました。
やはり同じだ…。
ダウンロードしなおしてやってみてもダメでした。
- 425 名前:549 :2004/06/01(火) 21:44 ID:???
- >>423
なんと無かったですか!
こういうことってよくあるんでしょうか。
4.0.17 とか 4.0.18 あたりを入れたいんですが、
ダウンロードできるページが探しても見つからない。
本のCD-ROMとか使うしかないだろうか。
- 426 名前:nobodyさん :2004/06/01(火) 22:30 ID:HgyXjo5H
- >>425
どうぞ
http://downloads.mysql.com/archives.php?p=mysql-4.0&o=-win
- 427 名前:421 :2004/06/02(水) 00:00 ID:???
- >>426
おおお!
ありがとうございます。
(421=425=549←間違えた)
- 428 名前:421 :2004/06/02(水) 00:33 ID:???
- ちゃんとインストールできました。^^
- 429 名前:nobodyさん :2004/06/02(水) 15:16 ID:???
- mysqlの勉強がしたいです。
今は、win98に入れてます。それでサーバを起動させてmysqlとプロンプトに入力すると、
接続ができ中のものがなんでも見れちゃいます。
勉強したいのはそうゆう基本部分で、例えば普通レンタルサバではshellとかでサバにインスコしてある
mysqlにつなげられますよね。でも、mysqlと打っても当たり前だけど、接続ができない。自分がもらってる
ユーザ名とかでなきゃ。
大元のルート権限・パスワードとかを変えるにはどうすれば。とかが知りたいです。簡単に言うと
自分のwin98に入れてあるmysqlにプロンプトからmysqlとユーザ名・パスワードをなしでやっても
接続できないようにしたいんです。
接続後のことはmysqlマニュアルとかにも書いてあるので、いいのですが、基本の基本がどこに書いてあるか
わからないので、どこのサイトに行けとか、mysqlマニュアルのこのページを読めとか教えて下さい。
低レベルなし津文ですみませんがどなたかお願いします。
- 430 名前:nobodyさん :2004/06/02(水) 15:28 ID:???
- >>429
>今は、win98に入れてます。それでサーバを起動させてmysqlとプロンプトに入力すると、
>接続ができ中のものがなんでも見れちゃいます。
確かあれだろ。mysqlって打って接続できるのはwin(普通UNIX)のroot権限を持ってるやつだけだろ。
だからサバは普通mysqldをroot権限で行わないで、別のユーザを作って行わせる。
なんか違うな・・・
mysqldで起動させたユーザだけがmysql(ユーザ名なし)で接続できるんじゃなかったっけ?
だからtelnetとかで、外部から接続してもそのユーザはmysqlを起動させたユーザじゃないから
与えられたユーザ名でしか接続できないと思う。
だから自分のパソに入れてあるなら、ユーザを二つ作ってaっていうユーザに起動させた後、bっていうユーザに
でログインするとmysql(ユーザ名なし)では接続できないんだったと思う。
間違ってるかもしれんから、先に謝る。ごめん。誰か補完してくれ。
- 431 名前:nobodyさん :2004/06/02(水) 15:40 ID:???
- とりあえずWinのmysqlのrootにパスを設定する。
これでrootしかアクセスできなくなる。
次にrootでユーザデータベースを作る。
GRANT 権限 ON ホスト名 データベース名 ユーザ名 IDENTIFIED パスワード みたいな感じ
俺も良く分からんからmysql grantとかで検索してくれ。
- 432 名前:nobodyさん :2004/06/02(水) 15:51 ID:???
- rootになってまず全てのユーザ(名無しさん)を削除せんとだめだな。
- 433 名前:429 :2004/06/02(水) 16:06 ID:???
- >>430>>431>>432
こんなに一杯ありがとうございます!かなり嬉しいです。
>>430
今試してみました。aユーザに起動させてaユーザを一度ログアウトしてbユーザで戻ってこようと思ったら、
ログアウトした時にmysqlもダウンしてしまいました・・・
>>431
データベースをひとつ作ってそれを扱えるユーザ・パスワードを設定するGRANT構文はできるのですが、
>とりあえずWinのmysqlのrootにパスを設定する。
がわかりません。それは名無しで接続して、名無しにパスワードを設定するってことですか?
それとも
mysql -u root;
で接続してrootという名前のユーザのパスワードを設定するってことですか?
>>432
ユーザの削除?それをやらないと名無しでいつまでたっても接続ができてしまうということですね。
mysql ユーザの削除
でぐぐってみます。
- 434 名前:nobodyさん :2004/06/02(水) 16:21 ID:???
- >>429
基本部分の質問なら、ここで聞くよりも
こういうサイトとか読んで勉強した方が早い
ttp://www.rfs.jp/server/mysql/02/01.html
- 435 名前:429 :2004/06/02(水) 16:37 ID:???
- >>434
ありがとうございます。今、mysqlっていうデータベースでユーザ情報を管理してるらしいので、
rootで入って、use mysql して
delete from user where host='localhost' and user='';
ってやってみたらQuery OK, 1 row affected (0.16 sec)と出たので、
やった!と思って一度quitして試しに名無しで接続できるかやってみました・・・
何故か名無しで接続できてしまいました。なんかが違うみたいです。
- 436 名前:429 :2004/06/02(水) 17:13 ID:???
- use mysql;
delete from user where host='localhost' and user='';
ってデータベースmysql内のテーブルuserの中からフィールド名hostの値がlocalhostで
且つ、フィールド名userの値がnull?のレコードを削除するっていう命令ですよね。
今mysqladmin内のDatabaseってタブを見てみたら今まではmysqlとか元々あるデータベースの
情報があったんですが、全て消えてました・・・
もしかして、databaseを全て削除してしまったのかもしれません。インスコしなおししなきゃいけないですよね。
- 437 名前:429 :2004/06/02(水) 18:39 ID:???
- 一度インスコしなおして、またななしユーザの削除に挑みました。今度は
use mysql;
select user from user;
で名無しがあること確認してから
delete from user where user='';
として、レコード2つ消したよっていう返事をもらいました。
select user from user;
で見たら確かに消えていてrootが二つ並んでるだけになりました。
その後一度mysqlをシャットダウンして再起動してみると、今度は信号が赤から青にかわらくなって
しまいました。
名無しユーザを消すと何故か次の起動でおかしくなるんですが、名無しユーザは消すべきでないのでしょうか?
でも普通のレンタルサーバとかなら名無しユーザなんて消していますよね。
とりあえずまた再インスコして今度は名無しユーザにパスワードでもつけてみようかと思います。
- 438 名前:nobodyさん :2004/06/02(水) 19:01 ID:???
- >>437
WebProg板の内容と離れてきたから
↓こっちでどうぞ
データベース
http://pc5.2ch.net/db/
- 439 名前:429 :2004/06/02(水) 19:24 ID:???
- >>438
ありがとうございます。いってみます。
- 440 名前:nobodyさん :2004/06/02(水) 20:43 ID:???
- >>425
>こういうことってよくあるんでしょうか。
パッケージングミスは良くあることではないが、
自分では良くやるな...バージョン管理してんのに
別の混ぜちゃったり。
libmySQL.dllはnoinstall版には入ってたよ。
トップのダウンロードページのWinの項はバージョンは4.0.18
だったりするので、Win版の4.0.20aはまだ微妙なのかもしんない。
一応レポ、出しとくけどね。
- 441 名前:nobodyさん :2004/06/02(水) 20:52 ID:???
- なんつうか、
・クライアントコマンドmysqlの(OSの)実行ユーザ
・DBMSであるmysqldの(OSの)実行ユーザ
・MySQLデータベースのユーザ
は、ちゃんと区別して考えてくれ。
Webプログラムで利用するなら、区別の無いOS(Windows)
じゃなくて、普通に区別する環境で使うことが多いだろ。
- 442 名前:421 :2004/06/03(木) 09:27 ID:???
- >>440
うーん、やっぱり人間のやってることなんだなぁ。
結局4.0.18をインストールしたんですが、dllの他にも結構足りないファイルがあるみたい。
4.0.20aと「a」がついてるのは、マイナーバージョンアップの更にマイナーなバージョンアップなんだろうか。
一応知らせたほうがいいのかなと思ったけど、レポートの出し方わかりませんでした。^^;
- 443 名前:421 :2004/06/03(木) 09:29 ID:???
- >dllの他にも結構足りないファイルがあるみたい。
4.0.18と比べてみると4.0.20aで足りないってことです。
- 444 名前:nobodyさん :2004/06/03(木) 20:25 ID:XU5SaHAn
- PHPでDBを呼び出して表示させるようにしたんですが
エンコードが間違っているのか文字化けを起こしてしまいます。
ブラウザ側でエンコードを変えて見てもDBから引っ張ってきた部分は文字化けしたままになります
これはMySQL側で設定を変えれば回避できるのでしょうか?
またその方法等を教えていただけませんでしょうか。よろしくお願いします
ちなみに
PHP Version 4.3.6
MySQL 4.0.14b
を使ってます
- 445 名前:nobodyさん :2004/06/03(木) 20:45 ID:???
- >>442
足りないファイルはレイアウトの変更もしくはパッケージングのミス。
例えばlibmysql.dllはlib/optに入っているが、パッケージされている
プログラムの中で/binにあることが前提でコンパイルされているものが
あるのでパッケージングミスと考えられる。
この辺はビルドの設定/ノンインストーラ/インストーラ版を比べてみて
調べるのが確実だが、ノンインストーラとインストーラ版では敢えて外したり、
入れたりしてるファイルもあるので、ファイルの有無でみるのではなく、
そのパッケージでエラーなどが出て整合性が取れなくなっている箇所があれば
その部分はパッケージミスと思うという感じで良いよ。
レポは日本語のバグレポからの吸い上げがどの程度進んでるかわからないので、
今のところは本家のバグレポートでpackingのカテゴリで出すのが良い。
その前に本家のMLでもチェックしとくべきだけど、まあそこは端折っても可。
- 446 名前:nobodyさん :2004/06/03(木) 21:36 ID:???
- >>444
http://dev.mysql.com/doc/mysql/ja/Charset-server.html
MySQL4.0.14だとマニュアルに記述されているキャラクタセットに
関する機能がすべてある訳ではないことには注意。
# 示したサーバ設定の部分は4.0.14でも同様。
- 447 名前:444 :2004/06/04(金) 00:34 ID:???
- >>446
ありがとうございます。
最近始めたばかりで書いてあることはよく理解できませんが
いろいろ見て勉強したいと思います。
- 448 名前:421 :2004/06/04(金) 10:59 ID:???
- >>445
昨日バグレポートを見ていたら、4.0.20aに関する報告は2つあっていずれも同じエラーについてでした。
一つはロシア人の人(う〜んわーるどわいど)で、「足りないファイルは足してちょ」というような答えが返ってました。
もう一人の人は私と同じように「どうしたらいいんだ〜助けてくれ! ファイル梱包してないんとちゃうん!」と焦っていた。
ノンインストーラ版をビルドする腕もないのでどんなファイルが入っているか見てみたこともなかったですが、インストーラ版と中味は一緒だと思ってました。
まさかパッケージミスに遭遇するとは思わなかったですが、今後もエラーで見分けたいと思います。
- 449 名前:nobodyさん :2004/06/07(月) 14:22 ID:AVijgqxq
- 質問っていうか相談っていうか。
order by してlimitした結果を、さらにorder by で並び替えたい場合は
どうすればいいでしょうか。
「日付が最新のものから5件分のデータを日付が古い方から順に並べて取得」
みたいな感じです。
以下は現在のコーディングです。
select count(*) from table; でレコード数を取得しておいて、
select * from table
order by date
limit レコード数-5, 5;
これをSQL一発でやりたいです。
select * from table
order by date desc
limit 0, 5
orcer by date;
こんなことがやれれば最高なのですが、もちろんこれはエラーでした。
SQL文の結果の並び順をひっくり返す方法があればそれでもいいです。
- 450 名前:nobodyさん :2004/06/07(月) 14:46 ID:???
- mysql にはダミー表(oracle でいうところの dual 表)みたいのはないのでしょうか?
select password( 'hoehoe' ) from dual ;
のようなことがやりたいのです。
- 451 名前:450 :2004/06/07(月) 15:07 ID:???
- すみません、解決しました。
select password( 'hoehoe' ) ;
でできました><
- 452 名前:nobodyさん :2004/06/07(月) 16:11 ID:???
- >>449
select @target := id from table order by date desc limit 0, 5;
select * from table where @target <= id order by date limit 5;
- 453 名前:nobodyさん :2004/06/09(水) 17:16 ID:???
- 何度やってもタスクバーにMySQL紹介サイトで言われている
信号のアイコンが出ないんですがこれは何が原因なのでしょうか?
phpdevを使ってインスコしました。XPでSQLはVer4です。
C:\phpdev\mysql\bin\mysql.exeで起動させてます。
- 454 名前:nobodyさん :2004/06/09(水) 17:24 ID:???
- >>453
WinMySQLAdmin.exeを起動してみなはれ。
- 455 名前:nobodyさん :2004/06/09(水) 17:33 ID:???
- >>454
そのファイル名も紹介サイトに書いてあったんですが
どこを探しても見当たらないんです。ちなみにphpdevは動作確認後4.30にうp済みです。
インスコ場所もデフォルトのままです。
よければどのフォルダにあるか教えてもらえませんか?
- 456 名前:nobodyさん :2004/06/09(水) 17:49 ID:???
- 自分で探せや
- 457 名前:nobodyさん :2004/06/09(水) 18:01 ID:???
- >>455
普通はmysqlのbinディレクトリだけど、phpdevは違うのかもね。
先ずは検索しる。なければパッケージされていないのでしょう。
まあ、タスクバーの信号アイコンなど無くても支障ないんで、
あきらめれば良いんじゃないか?
- 458 名前:nobodyさん :2004/06/09(水) 19:50 ID:???
- >>457
検索したんですが無かったので、パッケージされてないのだと思います。
>タスクバーの信号アイコンなど無くても支障ないんで
え!?あれが動いてる目安になってるものだと思ってました。
じゃあ安心ですね。これでようやく集中できます。ありがとん
- 459 名前:457 :2004/06/09(水) 22:53 ID:???
- >>458
Unix上のMySQLにはあの信号アイコンはないからねぇ。
生存確認したいなら、mysqladmin pingとかするがよろし。
- 460 名前:nobodyさん :2004/06/10(木) 16:47 ID:???
- 会社で聞いた話だけど、Mysql+PHPで1GBのデータを5分ぐらいで検索できるって本当?
っていうか、そんなにかかるものなの?
- 461 名前:nobodyさん :2004/06/10(木) 17:33 ID:???
- どっちだよ
はっきりしろ
- 462 名前:nobodyさん :2004/06/11(金) 00:42 ID:???
- >>460
たった1GBで5分もかかるわけ無いだろ?
MySQLとは関係ないけどPHPのループは本当に遅いみたいね。
- 463 名前:nobodyさん :2004/06/11(金) 23:13 ID:ReUB/uB4
- 教えて下さい。
MyAdminで、商品の金額が税抜きなのを
税込みの価格に一気に変更する方法を
知りたいです。お願いします。
- 464 名前:nobodyさん :2004/06/12(土) 00:59 ID:???
- 486 32MB くらいのサーバなら5分くらいかかるかもよ。
- 465 名前:nobodyさん :2004/06/12(土) 10:38 ID:9j+7vS6Z
- >>463
UPDATE 金額テーブル SET price=price*1.05;
price が INTの時に小数以下がどうなるかはしらね。
- 466 名前:ぺぷし :2004/06/17(木) 13:39 ID:t9pcSu9t
- PHP初心者のため、ご教授いただけたら幸いです。
MySQLのデータベースのBLOBフィールドにバイナリデータとして格納してある複数の画像ファイル(JPEG)をPHPでブラウザに全て自動的に書き出すようにしたいのですが、
下記のようにDo Whileを使ってフィールドの全データを書き出そうとすると"Cannot modify header information- headers already sent by
output started ..."というエラーになり、画像ではなくバイナリデータのまま出力されてしまいます。
ちなみに、ループにいれず、クエリで抽出した単一の画像だけを出力する分にはこのようなエラーは出ず、画像を表示することができるので、
ループに入れることで、header情報のContent-typeの指定が繰り返されるのがいけないのだと思うのですが、試しにループの外に
header("Content-type: " . 'image/jpg'); の部分をおいてみるとファイルダウンロードダイアログボックスが開いてしまいます。
ループでの全データ書き出しはできないのでしょうか?
どなたかご存知の方、いらっしゃいましたらお助け下さい。
***********************************************************************
<table border="1">
<tr><td>ID</td><td>Image</td></tr>
<?php do { ?>
<tr><td><?php echo $row_rs1['id'] ; ?></td>
<td> <?php header("Content-type: " . 'image/jpg');
echo "<img src= {$row_rs1['image'] } >"; ?>
</td>
</tr>
<?php } while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
</table>
- 467 名前:nobodyさん :2004/06/17(木) 14:36 ID:???
- >>466
mysqlとは関係ない話ですが。
ブラウザ サーバ
--------- -------------
このファイルをよこせ---->
<----ほらやるぞ中身はtext/htmlだよ
htmlの中にimgタグがあるので
画像ファイルをよこせ ---->
<----ほらやるぞ中身はimage/jpegだ
htmlとjpegを一回の通信で同時には送れませんので。
- 468 名前:nobodyさん :2004/06/17(木) 20:02 ID:???
- >>467
さらにmysqlとは関係ない話ですが。
mhtml(mht)というものがあります。
- 469 名前:nobodyさん :2004/06/17(木) 23:01 ID:???
- げー
- 470 名前:nobodyさん :2004/06/18(金) 00:38 ID:???
- hogera.html
------
<html><body><img src="pakera.php"></body></html>
pakera.php
------
<?php
//なんとかしてMySQLに接続してデータを取得
Header("Content-Type: image/jpg");
echo mysql_result($result,0,0);
?>
で、いかんかね?
- 471 名前:ぺぷし :2004/06/18(金) 11:18 ID:kLx9QR2S
- 467、468さん
解説どうもありがとうございました。なるほどです。PHPをいきなりかぶりつきでやり始めたので、
基本が今ひとつわかっていない自分です。。。もう少し勉強します。
470さん
アドバイスどうもありがとうございました。ヒントを元に少しいじってみようと思います。
ところで今回のこのスクリプトは、サイズは小さいけれどかなりの数の画像を表示する
ウェブページで、例えば画像を追加するたびに、HTMLを書き換えなくても良いように、
画像をDBにアップロードしさえすれば、自動的に全画像がDBから書き出されるように
したいなーと思ってトライしているものです。
ただ、あまりに多くの画像をバイナリとしてDBに格納するのは、表示の際の速度とか
実際、どうなのでしょうか。
別の方法として、画像ファイル自体は別のディレクトリにアップロードするようにして、
そのファイル名とパスだけをDBに格納して、HTMLに出力するようにすることも
可能かと思うのですけど、どちらの方法の方が適しているでしょうか・・・?
- 472 名前:nobodyさん :2004/06/18(金) 12:11 ID:???
- >>471
後者
あと画像を処理するPHP書くなら
getimagesize()とか調べとくといいかも
- 473 名前:nobodyさん :2004/06/18(金) 16:19 ID:???
- >>471
画像はファイルとして置いといたほうが扱いやすいと思う。
- 474 名前:nobodyさん :2004/06/18(金) 20:39 ID:???
- >>471
それよりその画像格納専用ファイルにおいてあるファイルの一覧を取得して自動的に作成。
画像以外にタイトルとかそれ以外が欲しけりゃDBかXMLでも。
- 475 名前:ぺぷし :2004/06/19(土) 23:37 ID:M2Vk26m1
- 472,473,474さん
レスどうもありがとうございました。
画像と一緒に文字列も書き出すようにしたいと考えているので、
後者の方法のほうがやはり無理がない気がしてきました。
ちなみにもう一つ質問させて下さい!
画像表示にかかる速度的にはどちらの方法のほうが速いと思われますか?
現時点ではDBを使わず、多量の画像をHTMLタグでハードコーディングして
全て書き出していますが、既に結構表示し終えるのに少し時間がかかって
いるのですが・・・
- 476 名前:nobodyさん :2004/06/20(日) 13:50 ID:???
- >多量の画像をHTMLタグでハードコーディングして全て書き出していますが
めんどくさいですよね。自動にしとかないと。
>既に結構表示し終えるのに少し時間がかかっているのですが・・・
速度だけで話すなら、サムネイル用画像でも用意した方がいい。
- 477 名前:nobodyさん :2004/06/20(日) 15:36 ID:BKvShsgW
- age
- 478 名前:nobodyさん :2004/06/20(日) 16:43 ID:???
- >>475
一回テストでDBに画像ぶち込んで一覧表示みたいなのを
作ったことあるけど展開する時にメモリ喰いまくりだし遅いし
パフォーマンスは凄く悪い
よっぽど専門的知識があってそれ用に
パフォーマンス最適化できる自信があるか、
どうしてもDBに格納しなきゃいけないって理由でもない限り
普通は画像はDBに入れない方がいいんじゃないかと
- 479 名前:ぺぷし :2004/06/22(火) 12:33 ID:F+BhnZqz
- 476さん、478さん
レス、どうもありがとうございました。
478さん
やっぱり画像を直接DBに入れるのはイマイチっぽいですね。
パフォーマンスを最適化するような知恵はありそうもないので、
おとなしく画像を別ディレクトリに保存する方向で行こうと思います。
ありがとうございました!
- 480 名前:nobodyさん :2004/06/23(水) 20:24 ID:???
- MySQLでの日付計算を教えてくだされ。先月末日を知りたいのです。
PostgreSQL なら
SELECT to_char(EXTRACT('month', CURRENT_TIMESTAMP) - '1 day'::INTERVAL, 'YYYY-MM-DD');
でスコーンっと先月末日が出るんですけど、MySQLじゃどうするんですかいのぉ
バージョンが3台なもんでLAST_DAY(date)が使えないんです。
SELECT DATE_FORMAT(DATE_SUB(LAST_DAY(CURRENT_DATE()), INTERVAL 1 MONTH), '%Y-%m-%d') とかアウチ
もちろん
SELECT DATE_FORMAT(DATE_SUB(EXTRACT(MONTH FROM CURRENT_DATE()), INTERVAL 1 DAY), '%Y-%m-%d') はエラー
です。よろしく。
- 481 名前:nobodyさん :2004/06/23(水) 21:18 ID:???
- >480
自己解決。お騒がせ。
SELECT DATE_SUB(CURRENT_DATE(), INTERVAL EXTRACT(DAY FROM CURRENT_DATE()) DAY)
すっきりせんが、どうにかなった。フロ入って嫁と一発やって寝るよ。
- 482 名前:nobodyさん :2004/06/24(木) 04:41 ID:???
- 俺とも一発やってくれ。
- 483 名前:nobodyさん :2004/06/27(日) 16:33 ID:dc5u0+Vm
- t1とt2が全く同じ構成のテーブルであり、それを連結したいと考えているのですが
連結条件に「t1.id=t2.id」などを付けずに連結し、更に$whereを「t1.id=1」
ではなく「id=1」などで処理させる方法はないでしょうか?
SELECT * FROM t1,t2 WHERE $where
- 484 名前:nobodyさん :2004/06/28(月) 09:35 ID:???
- >>483
t1 CROSS JOIN t2
t1の全行にt2の全行を追加
- 485 名前:nobodyさん :2004/06/28(月) 11:34 ID:???
- >>484
SELECT * FROM t1 CROSS JOIN t2 WHERE t1.id =1;
では成立するのですが、
SELECT * FROM t1 CROSS JOIN t2 WHERE id =1;
ではエラーになってしまいます。
テーブルを2個以上JOINする場合にWHEREを
「t1.id =1 || t2.id =1 || t3.id =1」と記述して行くしかないのでしょうか?
マニュアルには「同様に、JOIN と CROSS JOIN に関しても、MySQL 4.0.11 以降
でのみ条件を指定できます。」と書いており、4.0.11以降でなければ「id=1」という条件
では出来ないという事でしょうか?
- 486 名前:nobodyさん :2004/07/01(木) 14:23 ID:7y8AL+GJ
- 検索結果を表示させるのに、
総検索件数と、10件ずつ表示させたいのですが、
現在、2回クエリ使って結果を得ています、
1回には出来ないのでしょうか?
<現在>
select count(*) from hoge where flag=1;
select * from hoge where flag=1 limit $a,10;
このような感じでおこなっていたのですが、
レコードが1万件をこえてくると、結構時間がかかってしまいます。
なにか良い方法ありませんでしょうか?
- 487 名前:486 :2004/07/01(木) 16:08 ID:???
このような感じでおこなっていたのですが、
レコードが1万件をこえてくると、結構時間がかかってしまいます。
なにか良い方法ありませんでしょうか?
ん?
なんか変な質問してますね・・・。
すみません。
perlでCGIスクリプトを作成してます。
DBIでMysqlに接続していますが、
このモジュールのあたりで、先の質問のようなことを
行うことは出来ませんでしょうか?
質問するって、結構難しいですね。
- 488 名前:nobodyさん :2004/07/01(木) 16:36 ID:???
- >>487
phpだとmysql_num_rows()とかあるんだけどね。
Perlってそんなのないのかしらん
- 489 名前:nobodyさん :2004/07/01(木) 17:30 ID:???
- perlもあるよ。
一発で取ろうとするとlimit使えんねっつー話じゃね?
- 490 名前:486 :2004/07/01(木) 17:42 ID:7y8AL+GJ
- >>489
そうです。
そんな感じです。
なにか、いい方法ないのでしょうかね。
DBIモジュールのマニュアルをじっくり読んでなかったので、
今読んでみたりしてます。
- 491 名前:nobodyさん :2004/07/02(金) 00:37 ID:???
- >>490
http://dev.mysql.com/doc/mysql/ja/Miscellaneous_functions.html
の FOUND_ROWS() を見れ。(以下触り)
> 状況によっては、LIMIT を指定しなかった場合にいくつの
> レコードが返されるかを、ステートメントを再度実行する
> ことなく確認したいことがある。このレコード数を確認する
> には SELECT ステートメントに SQL_CALC_FOUND_ROWS
> オプションを指定し、その後 FOUND_ROWS() を呼び出す。
> LIMIT なしで再度クエリを実行するより時間がかからない。
しかし、1万件程度で時間が掛かるってのも、DBのチューニング
や作りがおかしくね?
- 492 名前:486 :2004/07/02(金) 08:11 ID:???
- >>491
おお〜〜〜〜〜〜〜。
> > オプションを指定し、その後 FOUND_ROWS() を呼び出す。
> > LIMIT なしで再度クエリを実行するより時間がかからない。
確認しました。スバラシイです。
FOUND_ROWS()の呼び出しは瞬時にかえってくる。
自分のもってるオライリーのl本って、かなりバージョン古いな・・・。
新しいの買うか、ボロボロやし。
> しかし、1万件程度で時間が掛かるってのも、DBのチューニング
> や作りがおかしくね?
1万件でなく10万件でした。失礼。しかもさらに増えるし・・・。
likeとかで検索かけると、大変なことに。
チューニングもさらにシビアになりますね。
なにはともあれ、有難う御座いました〜。
491様に感謝!
- 493 名前:nobodyさん :2004/07/02(金) 16:48 ID:???
- >>491
知らなかったよ「FOUND_ROWS()」
しかし「MySQL バージョン 4.0.0 以降で使用できる」。
また旧版と新版で2パターン必要なのか...
- 494 名前:nobodyさん :2004/07/09(金) 11:51 ID:+WklyQCB
- 今回初めてMySQLをインストールした初心者です。
参考書を見ながらインストールしたのですが、
EnvironmentタブのMyODBCのところに
NotFound
Driver3.51Not Found
と出ています。これは、参考書ではDriver Version 〜というふうに
なっていました。
あと、Databasesタブには、testのみが表示されていて、
mysqlが表示されていません。show dababasesコマンドでもmysqlは
表示されません。C:\mysql\dataには、ちゃんとmysqlのフォルダはあります。
この場合、MySQLにmysqlを認識させるにはどのようにしたらいいのでしょうか?
上記のNotFoundエラーを解消すればいいのかな・・・と思うのですが、
どのようすればいいのか分かりません。
ご存知の方がいらっしゃいましたら、よろしくお願いいたします。
- 495 名前:nobodyさん :2004/07/09(金) 15:38 ID:???
- 質問!
オラクルマスター銀って学生でも比較的簡単に取得可能でしょうか?
- 496 名前:nobodyさん :2004/07/09(金) 15:45 ID:???
- >>495
スレタイ嫁
- 497 名前:nobodyさん :2004/07/09(金) 17:20 ID:???
- >>494
用語(名称)が正確でない。だから他人から
見ると意味がつかみづらい。
>EnvironmentタブのMyODBCのところに
>NotFound
>Driver3.51Not Found
これはMyODBCの状態だから、ODBC経由で接続を
行わないならそのままで構わない(正常)。必要であれば
ODBCドライバ(MyODBC)をインストールする。
>あと、Databasesタブには、testのみが表示されていて、
>mysqlが表示されていません。
恐らくWinMySQLadminで接続に使っているMySQLユーザが
データベースmysqlを参照できる権限がないものと思われる。
接続ユーザをrootに変えるか、GRANTで該当ユーザに権限を与える。
>>495
受験費用だけの問題。覚える"だけ"だから
むしろ若いうちの方が取りやすい。
あとベンダー資格なんぞ学生が持ってても
意味無いよ。無駄。会社入ってからで充分。
- 498 名前:nobodyさん :2004/07/09(金) 18:33 ID:???
- >あとベンダー資格なんぞ学生が持ってても
>意味無いよ。無駄。会社入ってからで充分。
いやそうでもないよ、
大企業は効果薄いかもしれないが
中小だと結構はったりが利くぞ
大企業無理で中小に入る可能性があるなら損は無い。
あとシスアドとか情報処理1種などもそれなりに効果あり。
- 499 名前:名無しさん@そうだ選挙に行こう :2004/07/11(日) 12:16 ID:xhyXSdhv
- MySQLのデータベースに出てくる「オーバーヘッド」って
サーバーへの負荷とイコールで考えて問題なっしんぐでしょうか??
ぐぐったけど、全く関連説明がデテコナインダス
- 500 名前:名無しさん@そうだ選挙に行こう :2004/07/11(日) 17:05 ID:???
- >>499
オーバヘッドと言ったら一般的には遅延やロスのこと。
負荷とは違う。
- 501 名前:nobodyさん :2004/07/11(日) 21:06 ID:???
- INSERT INTO $t1 SELECT * FROM $2
の場合、t1とt2のフィールド数及びフィールドタイプは同等
でなければならないのでしょうか?
t1の方のフィールドは$t2+3フィールドであります。
- 502 名前:nobodyさん :2004/07/11(日) 22:03 ID:???
- なんだそのめちゃくちゃな構文は
INSERTにSELECT・・・
- 503 名前:501 :2004/07/12(月) 07:39 ID:???
- めちゃくちゃね・・・
2行を1行で処理したいだけなんだけどなぁ
WHEREに全部書かないとダメかな
>>502
MySQLを使った事がありますか?
- 504 名前:nobodyさん :2004/07/12(月) 10:11 ID:???
- 朝からわらた
- 505 名前:501 :2004/07/12(月) 12:39 ID:???
- スマートではありませんが自己解決しました
INSERTにSELECTを使った、めちゃくちゃな構文ですが正常に処理されています
- 506 名前:nobodyさん :2004/07/12(月) 13:08 ID:???
- 質問内容の大予想(or透視)を要求することに素で気がついてなかったわけね。
その上“正常に処理”って、ゴミプログラムをゴミ箱行きにしたとかいうオチか?
- 507 名前:nobodyさん :2004/07/12(月) 19:42 ID:???
- >>503
副問い合わせの構文覚えろクズ
- 508 名前:nobodyさん :2004/07/12(月) 19:43 ID:???
- >>501
お前みたいに偉そうな質問者初めて見た。
そろそろ夏か?
- 509 名前:nobodyさん :2004/07/12(月) 21:19 ID:???
- 502=506=507=508
本当に夏だよな
- 510 名前:nobodyさん :2004/07/12(月) 21:50 ID:???
- 認定厨降臨か・・・
- 511 名前:nobodyさん :2004/07/12(月) 22:01 ID:???
- =510
- 512 名前:nobodyさん :2004/07/13(火) 00:12 ID:AIgAJnQb
- >>497
ご返事、ありがとうございます。
また、読み辛い文章で大変申し訳ございませんでした。
本題に入らせて頂きます。
GRANTで権限を与えようと試みましたが、以下のエラーが出ます。
ERROR 1045: Access denied for user: '@localhost' (Using password: NO)
これはパスワードが違うということでしょうか?
OSへのログインの時やMySQLのmy.ini.Setupタブに書いてあるパスワードや
Administrator(←UserName) で試してみましたが、同じエラーが出ます。
原因等、ご存知の方がいらっしゃいましたら、ご教授の程、よろしくお願い致します。
- 513 名前:nobodyさん :2004/07/13(火) 01:43 ID:???
- >>512
>'@localhost'
ユーザが指定されてないように思われ。
もちっと前の、コンソールで入力した操作から書き出して味噌。
- 514 名前:nobodyさん :2004/07/14(水) 20:43 ID:CWlcyttG
- >>513
ご返事、ありがとうございます。
自分のやった作業を全て以下に記します。
・MyODBC-standard-3.51.8-win.msiをインストール
→これは特に特別な作業がないので問題はないと思っています。
・mysql.exe で以下のコマンドを実行
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@localhost
IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
→結果
ERROR 1045: Access denied for user: '@localhost' (Using password: NO)
ユーザ名とパスワードは以下に記したものをいろいろ組み合わせてやってみましたが
全て同じエラーになります。
●ユーザ名
・PCにログインするときの名前:Administrator
・my.ini Setupタブに書いてあるuser=xxxxxxxxx
●パスワード
・PCにログインするときのパス:xxxxxxxxx
・my.ini Setupタブに書いてあるpassword=xxxxxxxxx
何かお気づきの点があれば、よろしくお願い致します。
- 515 名前:nobodyさん :2004/07/15(木) 01:16 ID:???
- >>514
ふむ。Windowsでインストールしたばっかりの状態ということね。
とすると初期ユーザとして管理ユーザrootが、"パスワードなし"の状態で
セッティングされているので、新たにGRANT権を持つユーザを作るのであれば、
mysql.exeを次のように実行
コマンドプロンプト> mysql -uroot [ENTER] (rootをパスワード無しでログイン)
管理ユーザrootはGRANT権を持つユーザを設定できるので、
mysql> GRANT ALL ON *.* TO ユーザ名@localhost
IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
(ALLはALL PRIVILEGESの省略記法)
で、 WITH GRANTな新しい管理ユーザが設定できるはず。
次に、
mysql> EXIT
コマンドプロンプト> mysql -uユーザ名 -pパスワード [ENTER]
で新しい管理ユーザでログオンできるか確認。
またrootにはパスワードを設定しといた方が良いね。
- 516 名前:nobodyさん :2004/07/15(木) 01:47 ID:???
- あと「PCにログインするときの名前」つまりOSのユーザと
MySQLのユーザは連動しません。mysql.exeなどのmysqlのツールを
使う際にMySQLユーザを指定しなかった場合、OSのユーザ名が代替として
指定されるます(Windowsだと普通'ODBC'というユーザだったと思う)が
ユーザの管理上は別のものになっています。
mysql.exeに対して、[Administrator]というユーザ名を指定した場合
MySQLでは登録されていないMySQLユーザと判断されて、匿名ユーザ
としてログオンしている状態だと思います。デフォルトインストール
で初期ユーザとして匿名ユーザの設定がなされています。
#最近のバージョンでは初期設定で匿名ユーザは削除されてた気もする。
それとmy.iniのuser/passwordですが、これは先のツールを使う際に
無指定だったときに代替で使われるものです。指定されているセクションで
例えば[WinMySQLadmin]であれば、その範囲のみの設定となります。
またuser/passwordの組ではなく単独で代替されるので、例えばユーザ名だけ
指定してパスワードは省略した場合などは注意が必要です。
基本的には[WinMySQLadmin]以外には指定しないのが良いです。
# WinMySQLadminはメニュー上でログオンユーザの切り替えが出来ないので。
- 517 名前:nobodyさん :2004/07/15(木) 22:03 ID:rmg2BJyi
- >>515,516
いつもありがとうございます。
すいません、いきなりつまづいてしまいました。
最初のコマンド「mysql> mysql -uroot;[enter]」を行うと以下のエラーが発生します。
ERROR 1064: You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right sytax to use near
'mysql -uroot' at line 1
他のところを探してみましたが、どうもよく分かりません・・・。
すいません。。。
- 518 名前:nobodyさん :2004/07/16(金) 00:24 ID:???
- >>517
「 mysql -uroot [ENTER]」はOSのコマンドプロンプトで行う。
故に;(セミコロン)は不要。mysql.exeにパスが通ってる
ディレクトリで入力。
OSのコマンドプロンプトは>>155 の文中では「コマンドプロンプト」、
MySQLのプロンプトは「mysql>」と書いてます。
- 519 名前:nobodyさん :2004/07/16(金) 00:45 ID:???
- >>518 ×155 ○515
- 520 名前:nobodyさん :2004/07/16(金) 23:43 ID:Nh7Z2qfw
- パソコンを買い換えたので、サイト作成時のローカルテスト環境を再構築してます。
とりあえずapacheとperlは完了したので、mysqlを入れようと思いますが、
久しぶりなのでダウンロードするファイルに疑問が。
win用のmysql4.0.18を使いたいのですが、ZIP形式のものが3つありました。
1.mysql-4.0.18-win.zip
2.mysql-4.0.18-win-noinstall.zip
3.mysql-4.0.18-win-src.zip
とりあえずインストーラなしの2ではないんですが、1と3の違いがわかりません。
どんな違いがあるのでしょうか?
- 521 名前:nobodyさん :2004/07/17(土) 00:54 ID:???
- srcというのはsorceの略
ソースコードだ
というか、なぜ全部解凍して調べようとしない?
- 522 名前:522 :2004/07/17(土) 02:19 ID:RBk3Iaoi
- >>521
じゃあインストールはできないんですか?というか自分でコンパイルするってこと?
見てみます。
- 523 名前:nobodyさん :2004/07/17(土) 02:27 ID:???
- ニブイやっちゃなぁ。
まあ解凍してわかっただろうな。
- 524 名前:522 :2004/07/17(土) 02:47 ID:RBk3Iaoi
- ソースコードが記載されてる、ファイルがあるかないかですね。
私みたいなバカは黙って1をインスコすることにしました。
- 525 名前:nobodyさん :2004/07/20(火) 11:22 ID:???
- BerkleyDBなどの他のデータベースと
MySQLの違いや、MySQLの利点を教えて
- 526 名前:nobodyさん :2004/07/20(火) 22:03 ID:???
- >>525
データベース板で効いた方がいんじゃない?
- 527 名前:nobodyさん :2004/07/20(火) 22:44 ID:???
- >>526
どこそれ
- 528 名前:nobodyさん :2004/07/20(火) 23:37 ID:???
- >>527
自分でちょっと探してみようかな、と全く思わせない態度が素敵♥
- 529 名前:nobodyさん :2004/07/21(水) 16:43 ID:???
- すごい夏厨降臨だな
探す気0かよ
おそらく、厨2かなぁ?
- 530 名前:sage :2004/07/21(水) 23:09 ID:???
- ランダムに行をソートするselect文はどうかいたらいいですか?
- 531 名前:nobodyさん :2004/07/21(水) 23:12 ID:???
- >>530
自分で調べろよ
- 532 名前:nobodyさん :2004/07/22(木) 01:40 ID:BlXlQybJ
- DB板にて回答がえられなかったので、こちらで質問させてください。
ストアドプロシージャでWHERE句の条件を2つ指定しているのですが、
条件1(Name)しか合っていないのにレコードが返ってきてしまいます。
一方条件2(Password)が合っていて、名前が違うときはレコードの
カウントは0で正しく動作します。なぜだかわからず困っています。
どなたかご指導お願いいたします。
あと、ワイルドカード%を使用した条件指定もわかる方いたらお願いします。
CREATE PROCEDURE proctest
(IN Username char(20) ,In Pass char(10) ,Out Result int)
BEGIN
SELECT count(*)as count FROM personal where Name like Username AND Password like Pass;
SELECT count, case
when count=1 then 1
else -100
end Result;
END
- 533 名前:nobodyさん :2004/07/22(木) 07:45 ID:???
- >>532
ワイルドカードの使い方なんて、ぐぐれば腐るほどヒットする
- 534 名前:532 :2004/07/22(木) 10:30 ID:u/8YGDyZ
- >>533
自分の聞きたいのはストアドプロシージャ内での使用方なんですが。
例えば
SELECT count(*) FROM personal where Name like Username'%' ;
にするとシンタックスエラーになりますし、
SELECT count(*) FROM personal where Name like 'Username%' ;
とすると文字列"Username%"そのものが検索キーワードになってしまうのです。
- 535 名前:nobodyさん :2004/07/22(木) 14:34 ID:???
- ググれば腐るほどヒットするが。
- 536 名前:nobodyさん :2004/07/22(木) 15:04 ID:???
- >>532
どう見ても釣りだよなぁ。
delimiter $
create procedure proctest (
in Username char(20),
in Pass char(10),
out Result int
)
begin
select count(*) into Result
from personal
where `Name` like Username and `Password` like Pass;
if Result = '1' then
select 1;
else
select -100;
end if;
end
$
call proctest('name1', 'pass1', @Result);
- 537 名前:532 :2004/07/24(土) 02:53 ID:OJZpo2Ke
- >>536
うまくいきました!本当にありがとうございました。
Mysqlのストアドプロシージャについて参考になるようなサイトってありますか?
>>533 ,535
いろいろと検索をかけてみてはいるんですが、適したサイトがみつかりません。。
もしよければ教えてもらえませんか?
質問ばかりですいません。宜しくお願いします。
- 538 名前:536 :2004/07/24(土) 20:38 ID:???
- http://dev.mysql.com/doc/mysql/en/Stored_Procedures.html
http://www.limy.org/program/db/mysql_tips1.html
- 539 名前:nobodyさん :2004/08/01(日) 02:07 ID:nV30chx5
- insert直後、
autoincrementのidを取得するいい方法はないでしょうか?
ユニークと思われるカラムがあれば、それで検索出来るのですが
ない場合はどうすればいいでしょう?
- 540 名前:nobodyさん :2004/08/01(日) 20:25 ID:???
- >>539
http://dev.mysql.com/doc/mysql/ja/Miscellaneous_functions.html
- 541 名前:nobodyさん :2004/08/02(月) 09:13 ID:???
- >540
LAST_INSERT_IDですね。
こんな簡便な方法があるとは知りませんでした。
ありがとうございました。
- 542 名前:nobodyさん :2004/08/06(金) 16:35 ID:sKXbLEqO
- 順番を持った、可変個数の変数をMySQLに格納する時、
一レコードに、,などで区切ってつっこむか、
レコードを個々で別にして、順番を入れたカラムを作るか、
どっちがいいでしょうか?
順番カラムを作ると、そのぶんデータが無駄な気もするし、
かといって,で接続して格納するのも、DBらしくない気がします。
あるいはもっといい解決法があれば教えてください。
- 543 名前:nobodyさん :2004/08/06(金) 18:18 ID:???
- >>542 後者が正しいです.文字列で「,,,」は普通しませんそんなこと。
データの無駄なんか気にしないのが正しいDBです。
- 544 名前:542 :2004/08/06(金) 21:52 ID:???
- やっぱりそうなんですね。ありがとうございました。
- 545 名前:nobodyさん :2004/08/06(金) 22:39 ID:???
- 何のためのカラムだと思ってるんだ
- 546 名前:nobodyさん :2004/08/08(日) 22:14 ID:???
- テーブルの3から5行目を取得したい場合はSQLをどうかけばよいのでしょうか?
- 547 名前:nobodyさん :2004/08/10(火) 13:47 ID:???
- mysqlの LOCK TABLE は有効なのでしょうか?
かけちがいか、データが飛んでしまったよ。
何もしないほうが安定してたんですが・・・。
- 548 名前:nobodyさん :2004/08/10(火) 13:48 ID:???
- 3から2個
3,2
- 549 名前:nobodyさん :2004/08/10(火) 15:01 ID:???
- >>548
?
- 550 名前:nobodyさん :2004/08/10(火) 15:07 ID:oBY5B1dB
- Limit
- 551 名前:nobodyさん :2004/08/10(火) 15:49 ID:???
- >>550
ありがとう。やっと理解できました。
- 552 名前:nobodyさん :2004/08/10(火) 16:59 ID:???
- レンタルサーバのMySQLにAccessでODBC接続して
データ操作していたのですが、
昨日から突然接続できなくなりました。
Can't Connect 〜〜 (10060) と出ます。
原因は何なのでしょうか。ご存知の方がおられればお願いします
- 553 名前:nobodyさん :2004/08/10(火) 19:18 ID:Wtg2rx9f
- すいません、mysqlのパスワードを紛失してしまいました。
サーバーのrootパスワードはもっているのですが、
どうすればデータベースを新規に作成できるのでしょうか?
どなたかお教えください、。おねがいします。
- 554 名前:nobodyさん :2004/08/10(火) 20:41 ID:5nTlbA9N
- >>552
レンタル屋に聞け馬鹿
>>553
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=mysql+%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89+%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88&lr=
- 555 名前:nobodyさん :2004/08/11(水) 10:50 ID:???
- >552
ロリポなら障害が有ったみたいだが違うか?
- 556 名前:nobodyさん :2004/08/21(土) 16:00 ID:kIitMI6t
- order by num
でnumをソートして表示しようとすると
100
110
90
80
という風な並びになってしまうのですが
80
90
100
110
とソートするにはどう記述すればいいのでしょうか?
- 557 名前:556 :2004/08/21(土) 16:01 ID:???
- 間違えました
100
110
80
90
と並んでしまうのを
80
90
100
110
と並べたいのです
- 558 名前:nobodyさん :2004/08/21(土) 16:03 ID:???
- order by num asc
- 559 名前:556 :2004/08/21(土) 16:06 ID:???
- >>558
order by num ascでも同じ結果になっちゃうんです
order by num descだと
90
80
110
100
と並びます
- 560 名前:556 :2004/08/21(土) 16:09 ID:kIitMI6t
- あ、ごめんなさい、正確に書くべきでした。問題っぽいのが
小数点付の数値が入っている場合があるんです
それも小数点以下1位までだったり2位までだったりします
ここが問題っぽいですよね。
101
110.3
81.25
95.4
この様に並んでしまうのを
81.25
95.4
101
110.3
と並べる方法は無いでしょうか?
- 561 名前:nobodyさん :2004/08/21(土) 18:34 ID:???
- 文字列型→数値型
- 562 名前:nobodyさん :2004/08/22(日) 18:09 ID:fCwPrUXs
- パスワードやIDなんかを暗号化した状態でDBに入れたいのですが、
Windows環境で復号化が可能の良い方法ってありますか?
Mcrypt暗号化関数みたいのが理想なんですが……
- 563 名前:nobodyさん :2004/08/22(日) 18:17 ID:???
- (゚Д゚ )ハァ?
普通は暗号化されたパスと
ユーザーが入力したパスを暗号化して見比べるんだろが
- 564 名前:562 :2004/08/22(日) 18:49 ID:???
- ああ、そうだ、本当だ……何考えてんだ俺……すいません。。
- 565 名前:nobodyさん :2004/08/22(日) 20:01 ID:???
- まぁ気にスンナ
ちょっとムキになった俺も悪かったよ
- 566 名前:nobodyさん :2004/08/22(日) 22:39 ID:???
- >>563
でもさ、リマインダーとか作ったときどうする?
- 567 名前:nobodyさん :2004/08/22(日) 22:49 ID:???
- (゚Д゚ )ハァ?
なんでそこでリマインダーの話が出るわけ?
- 568 名前:nobodyさん :2004/08/22(日) 22:54 ID:???
- >>566
どうするってどういうこと?
リマインダーで再生成して、それを暗号化して格納すりゃいいじゃん
- 569 名前:nobodyさん :2004/08/23(月) 01:15 ID:???
- 新しいパスワードにしないでパスワードを再送する場合
- 570 名前:nobodyさん :2004/08/23(月) 18:27 ID:???
- パスワード再送するなんてセキュリティ何も考えてない奴しかせんだろ
普通はランダムなのを生成して新しいパスワードとする。
- 571 名前:nobodyさん :2004/08/31(火) 15:07 ID:???
- VARCHARの最大255では少なすぎで、TEXTの65535では多すぎるのですが
TEXTの最大数を指定する方法はないでしょうか?
1つずつ追加する場合は、PHP側で文字数を指定できるのですが、他人に
使わせるもので、LOAD DATA INFILEでも追加させるので、良い方法が
あるとよいのですが。
- 572 名前:nobodyさん :2004/09/10(金) 21:17:24 ID:ChbHudjL
- MySQL3.23で、テーブルの一番古いレコードを1件削除したいのですが、
Ver4ではないので、delete from table order by no limit 1; が使えません。
なにか手軽に削除する方法はないでしょうか?
(selectで一番古いのを探し出してってやれば出来るんですけど)
- 573 名前:nobodyさん :2004/09/11(土) 16:16:33 ID:???
- 4では消せるのかい?
- 574 名前:nobodyさん :2004/09/13(月) 20:44:08 ID:DiNpN1u+
- phpMyAdminのリレーション登録の仕方がわかりませんので質問させて下さい。
areaというテーブルと、shopというテーブルがあるのですが、
shopの「area_id」はareaの「id」とリファレンスしています。
phpMyAdminで、どこをタブのどの部分を設定すれば
紐付けされるのかがわかりません。
一応create table貼り付けます。
sqlそのまま打てるみたいなので、sqlでどう書けばいいのかが解れば
紐付けできると思うのですが…。
create table area
(
idsmallint(8)not null,
namevarchar(200)null,
primary key(id)
);
create table shop
(
idsmallint(8)not null,
area_idsmallint(8)not nullreferences area(id),
namevarchar(200)null,
以下略
ちなみに…、翔泳社の『MySQL徹底活用』という本を
買ったのですが、本で書かれているphpMyAdminのver.が古いため
操作方法が微妙に違っていてわかりません(T_T)
初歩的な質問お許し下さい。
- 575 名前:nobodyさん :2004/09/13(月) 21:15:51 ID:???
- >>574
mysql_query(create table shop(idsmallint... ) );
- 576 名前:nobodyさん :2004/09/13(月) 21:23:52 ID:DiNpN1u+
- 575さん、レス有難うございます。
ちょっと短くてよくわからないのですが…、
shopのcreate tableをmysql_query();でかこんで実行すれば良いのでしょうか?
いったんshopのテーブルをドロップした後、
phpMyAdminでSQLクエリー実行してみましたが
エラーになってしまいました。
- 577 名前:575 :2004/09/13(月) 22:16:25 ID:???
- >>576 phpMyAdminのことはよく分からんが、ただのPHPからMySQLを何したいなら
ttp://www.php.net/manual/ja/function.mysql-query.php などのマニュアルを
読むべし。中華、それ以前に、>>574に書いてあること、PHP/Webとかいう前に単に
ターミナルから実行して、やりたいことが出来るってとこは確認済みなんでしょね?
そうでなければ、MySQLのマニュアルに戻る、つう話になる。
- 578 名前:574 :2004/09/13(月) 22:24:03 ID:DiNpN1u+
- >>577
レス有難うございます。
phpのファイル上ではLEFT JOINで複数のテーブルから値を呼び出して
問題なく表示させています。
ただ、phpMyAdminからデータを追加する際に
例えばshopのデータを追加している時area_idにエリアの名前が
でないと不便なので、リレーションの登録をしたいんです。
- 579 名前:574 :2004/09/14(火) 01:18:43 ID:m/olOuEy
- すみません、追記です。
本に書いてあるphpMyAdminのver.は2.3.3pl1で、
そこでは『構造』タブの下の方が、
● フィールドの追加
● リレーション表示
● テーブル構造の確認 [ヘルプ]
となっているのですが、私のphpMyAdmin 2.5.7-pl1 だと
● フィールドの追加
● テーブル構造の確認 [ヘルプ]
となってます。
verが上なのに● リレーション表示 が設定できないのは
ちょっと変だと思うのですが…。
どなたかロリ○ップのレン鯖を利用されていて
phpMyAdminを使ってらっしゃる方、いらっしゃいませんか?
(スレ違いだったらごめんなさい。
検索したら、以前にもphpMyAdminの話がでていたので…。)
- 580 名前:nobodyさん :2004/09/14(火) 21:17:20 ID:TFDgdHfq
- order by no desc 等で並び替えたレコードの上6行目から10行目までを表示したい場合はどうすればいいんでしょうか?
- 581 名前:nobodyさん :2004/09/14(火) 21:30:00 ID:???
- >>580
LIMIT 5,5;
http://dev.mysql.com/doc/mysql/ja/SELECT.html
- 582 名前:nobodyさん :2004/09/18(土) 10:11:30 ID:???
- SELECT ..... WHERE id IN(1,3,2) で複数行を選んだ場合、
この 1→3→2 の順番で読むことはできないんでしょうか?
1回ずつSELECTしないとダメですか?
- 583 名前:nobodyさん :2004/09/18(土) 15:24:35 ID:jJIXNQco
- テーブルの構造が以下のようになっていた場合に、
テーブルA------------------
ID、人物
テーブルB------------------
ID、テーブルAのID、持ち物
持ち物のデータに(すいか、ばなな、みかん、ぶどう)があるとします。
で、すいかとみかんを持った人物を検索したい場合にMySQL以外だと
SELECT テーブルA.ID
FROM テーブルA, テーブルB
WHERE (持ち物 LIKE %みかん%) AND (テーブルA.ID = (SELECT テーブルAのID FROM テーブルB WHERE (持ち物 LIKE %すいか%));
のように副問い合わせを使って検索できるのですが、
この場合MySQLだとどのように検索することができるのでしょうか。
わかる方、ご教授お願いします。
- 584 名前:nobodyさん :2004/09/18(土) 18:44:18 ID:???
- >>582
IN (value, ...) で返されるレコードの順番を指定することはできない。
というか、order by節を使わない場合のレコード順は不定となる。これは他のRDBでも同じ。
order byを何とかして使うか、1回ずつselectするか、プログラムの側で並び替えるしかない。
>>583
MySQL 4.1以降ならサブクエリをサポートしてるよ。
http://dev.mysql.com/doc/mysql/ja/Subqueries.html
けど、その例なら自己結合を使ったほうが簡単だと思う。
select b1.テーブルAのID from テーブルB b1, テーブルB b2
where b1.テーブルAのID = b2.テーブルAのID
and b1.持ち物 like '%すいか%' and b2.持ち物 like '%みかん%';
- 585 名前:583 :2004/09/19(日) 02:06:03 ID:0NH761Ca
- >>584
ありがとうございます。
自己結合の存在を忘れていました(^^;
- 586 名前:nobodyさん :2004/09/20(月) 18:25:03 ID:???
- 質問です。PHP未経験ですみません。
現在PHPでマルチスレッドを想定したWebシステムを作成しています。
クライアントからの要求時、MySQLからSELECTの結果オブジェクト
を取得して表示し、終了後DBを切断する処理を行っているのですが、
切断前にmysql_free_result関数で開放するようにした方が宜しいの
でしょうか?
PHPマニュアルによると、mysql_free_result()はスクリプト実行の
メモリの使用量が多すぎると懸念される場合にのみ必要になります。
となっているのですが、データ量が多いために検討しております。
マルチスレッドで扱った場合、mysql_free_resultを実行した際に
他に影響が出てしまうようなことはあるのでしょうか?
- 587 名前:nobodyさん :2004/09/20(月) 21:40:21 ID:???
- >>586
PHPでマルチスレッド…
マルチスレッド型のhttpdと組み合わせた場合の影響の話?
取り合えず、mysql_free_resultでフリーにされたりする
結果オブジェクトは、各"mysqlクライアント"のもの。
mysqlユーザ毎のものでもないし、mysqlサーバ側のものでもない。
- 588 名前:nobodyさん :2004/09/23(木) 11:03:54 ID:dmhyGv3h
- 以前、web制作をやっていたものの、今の会社の本業の仕事の合間に
webのリニューアルをやってるます。
そこでお伺いしたいのでつが、新しく鯖を借りてMy SQLとPostgres SQLが
標準で使えるものにしました。
当方、Perl,PHP,SQLを一通り勉強した事があるので管理ツールphpmyadmin
などで簡単にテーブルぐらい組めるのではないかと思っていたのですが
Webで検索してもオペレーションに関するドキュメントが見つかりません。
英語はTOEIC750ぐらいで大体できると思いますが、何かオペレーションを
簡単に解説するサイトなり本なりあるのでしょうか?
それとも本屋さんでMy SQL,Postgres SQLをフルに勉強する必要がありますか?
ご叱咤、ご指導お願いします。
- 589 名前:nobodyさん :2004/09/23(木) 11:57:25 ID:/TBsLWrJ
- >>588
http://www.mysql.gr.jp/
でマニュアル読めば?
- 590 名前:nobodyさん :2004/09/23(木) 20:25:46 ID:???
- >>588
http://www.phpmyadmin.net/home_page/docs.php
ドキュメントを読む能力の前にドキュメントを探す能力が…
SQLが一通り理解できてるならテーブル作成はそんなに問題無いはずだが。
あとはMySQLのマニュアルみてDBMS独特のもの(例えば型とか)に気をつける。
ユーザ管理は完全にDBMS毎で違うと考えないと駄目。
マニュアルで理解できなければ、簡単な解説本(日本語/英語どちらでも)を求める。
- 591 名前:nobodyさん :2004/09/25(土) 05:59:33 ID:B6UlPK9C
- MySQLって同じOSの下に2つインストールして、2種類のデータベースサーバを建てることってできる?
練習用にdefault-character-set=ujisのとdefault-character-set=sjisと2種類建てたいんだけど
- 592 名前:nobodyさん :2004/09/25(土) 09:14:22 ID:4AK3lwq0
- 当方、perl ActivePerl-5.8.4.810-MSWin32-x86.msi
からmysql mysql-4.1.4-gamma-win
を使っているのですが
mysql側のタイムスタンプなどで時間記録を残す時に
perlのtimeのような1970/01/01を基準とした関数はないのでしょうか?
おそらく、unixなんたら〜に該当する関数でありそうなんですが
日数表示などはあっても秒数表示がみあたりません。
お力添えしていただけないでしょうか。お願いします。
- 593 名前:nobodyさん :2004/09/25(土) 09:46:49 ID:???
- >>591
取り合えずDB板のMySQLスレも読むのと、MySQL公式マニュアルを読もう。
http://dev.mysql.com/doc/mysql/ja/Multiple_servers.html
マニュアルにはそのものが書いてあります。ソース/SRPM等から単体のインストール
が出来る人ならそう難易度は高くはありません。
文字エンコードの異なるDBは私も複数インストールしてます。
バージョン違いも同じマシンにインストールできますが、
私はこれは、別のマシンに分けてますが。
>>592
先ずはマニュアルを…
UNIX_TIMESTAMP()
http://dev.mysql.com/doc/mysql/ja/Date_and_time_functions.html
マイクロタイムまで欲しければMySQLのバージョンに依存するけどね。
- 594 名前:529 :2004/09/25(土) 10:07:19 ID:???
- レスありがとうございます。
私もそこは見つけて
create table timestamp (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
TimeStampName VARCHAR(50),
time TIMESTAMP(14) NOT NULL,
time2 UNIX_TIMESTAMP() NOT NULL,
PRIMARY KEY (id)
);
このようなテーブルを作ってみたのですが
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'UNIX_TIMESTAMP() NOT NULL,
PRIMARY KEY (id)
)' at line 5
このようなエラーがでてwinでは無理なのかと思っていました。
これはwinではなく、verエラーもしくは構文エラーになるのでしょうか?
先ほど
マニュアルにあるように
SELECT UNIX_TIMESTAMP();
という使い方をすれば正常に動作してくれましたので構文エラーだと思うのですが
上に書いたようにテーブル作成の要素の一つとして設定することはできないのでしょうか・・
- 595 名前:nobodyさん :2004/09/25(土) 12:30:56 ID:???
- >>594
いや、UNIX_TIMESTAMPは値(符号なし整数)であって、TIMESTAMPのような
型ではないからテーブル定義のカラムの型には指定できないでしょ。
考え方自体がおかしい。
http://dev.mysql.com/doc/mysql/ja/Date_and_time_types.html
の日付/時刻関係の型についても読んで味噌。自動/手動によるキャストにも注意。
- 596 名前:529 :2004/09/25(土) 18:42:53 ID:???
- >>595
どうもです。
リンク先読ませていただきました。
ない知恵絞った結果、mysqlから抽出したTIMESTAMP(14) データを
再度select unix_timestamp(抽出したデータ)
というような形で変換しました。
- 597 名前:nobodyさん :2004/09/28(火) 00:33:27 ID:???
- mysqladmin -u root create testdb
と実行して、エラーなしでmysql\dataにtestdbフォルダが生成されているのですが、
mysqlshowと打ってみると
+-----------+
| Databases |
+-----------+
| test |
+-----------+
となっていてtestdbが出てこないのですが、原因は何でしょうか・・・
mysqladmin -u root drop testdb
と実行して、yを選択すると
Database "testdb" dropped
と表示されてmysql\dataのtestdbフォルダも削除されるのですが。
- 598 名前:nobodyさん :2004/09/28(火) 00:41:11 ID:???
- >>597
mysqlshow -u root
でどうぞ。
- 599 名前:nobodyさん :2004/09/28(火) 00:43:15 ID:???
- >>598
あぁぁ・・・できました><
やはり付け焼刃でつつくとこうなるんですね;;
どうもありがとうございました。
- 600 名前:nobodyさん :2004/09/28(火) 15:47:09 ID:O7ctbSQ2
- スレに便乗して悪いけど、
windowsのMySQLはMySQLのディレクトリの直ぐ下にdataディレクトリがあってそこにDBのデータが蓄積されてるけど
Linux版のMySQLはどこのディレクトリに格納されるんですか?
dataディレクトリが見当たらないのですが。
- 601 名前:nobodyさん :2004/09/28(火) 16:22:38 ID:???
- >>600
ディストロによって違うと思うけど、rpmとかdebを調べるんじゃないかな
ソースから入れてるならMakefileを見れば分かる
それ以上の詳しいことはLinux板で聞いたほうが早い
- 602 名前:nobodyさん :2004/09/30(木) 15:57:16 ID:6hdui1am
- MysQLのCREATE TABLEをSQLファイルに入れて読み込むにはどうすればいいのですか?
- 603 名前:nobodyさん :2004/09/30(木) 17:11:32 ID:???
- >>602
mysqlコマンドを使う。
http://dev.mysql.com/doc/mysql/ja/mysql.html
- 604 名前:602 :2004/09/30(木) 17:37:07 ID:6hdui1am
- でも、PHPファイル上から読み込むには?・・・
- 605 名前:nobodyさん :2004/09/30(木) 17:50:27 ID:???
- InnoDB Hot Backupって一度購入したら他のサーバデモつかえる?
- 606 名前:nobodyさん :2004/09/30(木) 20:50:20 ID:???
- >>604
ファイルを読んで、そのSQLをPHPのmysql関数で叩く。
- 607 名前:nobodyさん :2004/09/30(木) 21:09:33 ID:???
- >>605
期限付きまたは無期限の、サーバ毎のライセンス。
サーバの入れ替えに伴う移動は出来るだろうけどね。
- 608 名前:602 :2004/09/30(木) 23:34:28 ID:6hdui1am
- >>606
読みました、でもDBを作る関数がわかりません
- 609 名前: :2004/10/01(金) 01:23:01 ID:???
- 610 名前:nobodyさん :2004/10/01(金) 01:27:08 ID:???
- こそこそageる暇があるのなら「php mysql」でぐぐれば?
いくらでもヒットするぞ
- 611 名前:nobodyさん :2004/10/01(金) 09:00:20 ID:???
- >>608
ちゃんと探せ。ただ俺が言ってるのはDBを作るSQLを使った方法。どっちでも良いけど。
PHPのリファレンスマニュアルぐらい読んだら?あと、いちいち訊くより
入門本一冊買った方がスムーズに学習できると思うけど?
- 612 名前:nobodyさん :2004/10/01(金) 09:04:19 ID:???
- なんであそこまで懇切丁寧なマニュアルがあるのに読もうとしないんだろうね。
- 613 名前:nobodyさん :2004/10/01(金) 17:28:26 ID:TVRBqqbo
- vachar項目で全角文字が入っている項目同士の
外部結合はできない?
select a.zzz,b.xxx from a left join b on a.aaa b.aaa
aaaには全角文字で同じ値が入っている
b.xxxがnullになってしまう
- 614 名前:nobodyさん :2004/10/01(金) 20:27:40 ID:syLlomTs
- マニュアルのmysqldumpの項目で、いまいちわからんのですよ・・・
データベースサーバA から データベースサーバB に、
mysqldump で データベースをコピーしたいと思ってます。
サーバAのデータベース(テーブル)はLockしたくないのですが、
サーバBのデータベース(テーブル)はLockしてもOKです。
--add-locks と --lock-tables
これ、どんなLockになるのか、マニュアルから読み取れませんでした。
教えてもらえませんでしょうか?
- 615 名前:614 :2004/10/01(金) 21:09:26 ID:syLlomTs
- dumpはdumpとるだけだから、lockしたくなかったら、
両方のオプションをつけない方向ですね…
続けて質問なのですが、
mysqldump では 複数のテーブルを一度にdumpすることはできないでしょうか?
- 616 名前:nobodyさん :2004/10/01(金) 22:23:28 ID:???
- >>615
"tables"つうのは「テーブル名をスペースでセパレートして列挙」つうこっちゃ。
- 617 名前:616 :2004/10/01(金) 22:32:10 ID:???
- ああ複数のDBに跨ってということなら、やりかたは俺は知らない。
- 618 名前:nobodyさん :2004/10/02(土) 19:45:56 ID:zf6X98MX
- 自動インストールプログラムでインストールしたのですが、
プロンプトで実行しようとするとcannot conect local hostというのが
出ます。
どうしたらよいでしょうか?
- 619 名前:618 :2004/10/02(土) 19:59:52 ID:zf6X98MX
- もっと詳しく書くとこれです。
can't connect to mysql server on 'localhost'
環境はwindous xp homeです。
- 620 名前:nobodyさん :2004/10/02(土) 20:01:58 ID:???
- >>618
単純に考えてMySQLサーバ(mysqld)が起動していない。
- 621 名前:618 :2004/10/02(土) 20:12:20 ID:zf6X98MX
- c:\mysql\bin>mysqld
と入力したのですが、何の反応も無く改行します。
その後、
C:\mysql\bin > mysqladmin -u root password root_s_pwd
という感じで入力すると、can't connect to mysql server on 'localhost'
など、何行かエラーメッセージが出てきます。
- 622 名前:nobodyさん :2004/10/02(土) 20:24:31 ID:???
- >>621
>c:\mysql\bin>mysqld
>と入力したのですが、何の反応も無く改行します。
起動して無いと思われ。つかインストーラでインストールすると
自動的にサービスに自動起動するように登録される。
(コマンドラインでmysqldとして普通のプロセスとして起動させるのも間違いではない)
エラーログが出てるから読んでごらん。
- 623 名前:618 :2004/10/02(土) 22:55:17 ID:Mfak8V2G
- >>621
>>エラーログが出てるから読んでごらん。
それがこれなのですが。
can't connect to mysql server on 'localhost'
- 624 名前:nobodyさん :2004/10/02(土) 23:09:21 ID:???
- >>623
それはエラーログじゃなくて、mysqlクライアントが吐いたエラー(表示)。
エラーログについてはここ。
http://dev.mysql.com/doc/mysql/ja/Error_log.html
(Windowsはmysql.errって書いて在るけど、最近はUnixと同様hostname.errになってる気がするな)
現在表示されてるエラー表示からの問題解決の基本手順は
http://dev.mysql.com/doc/mysql/ja/Can_not_connect_to_server.html
- 625 名前:618 :2004/10/03(日) 00:23:15 ID:mW2Tv4q+
- >>624
なんとか起動できました。
最初のマスター登録をしてなかったので起動しなかったことが
わかりました。
ありがとうございました!!
- 626 名前:nobodyさん :2004/10/03(日) 16:41:42 ID:HbeYcF9z
- mysql-4.1.5-gamma-win.zipをインストールしている最中なのですが、
MySQL Server Instance Configuration Wizardの最後の画面で、Execute
をクリックした後にStart serviceの項目に×印が入りFinishができません。
どうしたらよろしいでしょうか?
- 627 名前:626 :2004/10/03(日) 17:01:54 ID:HbeYcF9z
- MySQL Server Instance Configuration Wizardの最後の画面を
終了しないままMySQLを起ち上げたのですが、コマンドプロンプトで
mysqld is aliveと出ました。
正常動作しているみたいなのですが、
このままMySQL Server Instance Configuration Wizardの最後の画面を
Cancelで終了しても良いのでしょうか?
- 628 名前:nobodyさん :2004/10/11(月) 10:38:34 ID:29ynadmT
- 質問させて下さい。MySQL 4.0.14です。
例えば、日記のデータが保存されているDBで、
8月1日からのデータから過去に10日分表示させたい場合のセレクト文がわかりません。
※データは必ずしも毎日入っているわけではありません。
このテーブルのPRIMARY KEYはtoday(データ型:date)です。
SELECT today FROM diary WHERE today = '2004-08-01';
だと1日分ですが…ここから10件表示させたいんです。
ヨロシクお願いしますm(_ _)m
- 629 名前:nobodyさん :2004/10/11(月) 11:34:21 ID:???
- SELECT today FROM diary WHERE today <= '2004-08-01' limit 10;
じゃないの?俺もよくわからんけど。
- 630 名前:628 :2004/10/11(月) 12:09:30 ID:29ynadmT
- できました(*^▽^*)
有難うございました♪スレのレベル下げちゃってゴメンナサイ。
629さん有難うございました。
- 631 名前:nobodyさん :2004/10/12(火) 13:43:09 ID:???
- XREAでMySQLのデータベースを使用しているのですが、
PHP上で、
mysql_query("CREATE table temp1 AS SELECT id FROM m_act_imp WHERE (name LIKE '%".$act."%');");
という文を発行すると、テーブルtemp1はできますが、
LIKEにマッチしてるにも関わらず空になってしまうのです。
phpmyadmin上でならばtemp1上のidにデータが格納されるのですが・・・。
何故空になってしまうのでしょうか?
よければお教えください。お願いします。
MySQLは3.23.58です。
- 632 名前:nobodyさん :2004/10/12(火) 15:16:37 ID:???
- >>631
思わぬ勘違いをしていることもよくあるから、まずはqueryに渡す文字列を画面に
も表示してみることから始めてみましょう。
- 633 名前:631 :2004/10/12(火) 17:49:38 ID:???
- ローカルにサーバー立ててやってみたら、できました。
単にレンタルサーバのユーザーに権限がなかっただけ・・・ですかね。
MySQLは4.0.12ですが関係ないでしょうし・・・。
>>632
それはやってたんですよね。
結果的にはあまり関係はありませんでしたが、
お早いお返事ありがとうございました。
- 634 名前:nobodyさん :2004/10/13(水) 08:01:16 ID:pwP4Zh+W
- phpMyAdminのランタイム情報の、
o 時毎
とはどういう意味でしょうか?
- 635 名前:困りました :2004/10/13(水) 18:56:57 ID:4r9iZ+Q4
- 教えてください。
MySQL+PHP4.Xで開発をしているのですが
ある不特定のユーザーが登録済みのデータや画像ファイルを変更しようとすると
登録してあるデータおよび画像ファイルが消えてしまう現象が起きました。
消えない場合もありました。
PHPのソースを追いかけても削除しているロジックがありません
内部で再現テストをしてもまったく起きる気配がありません。。。
しかし、ユーザーから「データが消えた」とクレームがいまだ来たりしています。
一般向けに公開しているサイトであるため複数アクセスはあるので
トランザクションの問題かと思ったりもしたのですが
テスト上ではこういう現象はやはり起きませんでした
MySQLの設定でこういう問題は回避できるのでしょうか?
それともユーザーの回線が細いとこういう現象がおきやすいのでしょうか?
OSはRedHat7Jです
- 636 名前:困りました :2004/10/13(水) 18:58:58 ID:4r9iZ+Q4
- 追記です
MySQL のバージョンは、3.23.54 です
- 637 名前:nobodyさん :2004/10/13(水) 20:26:54 ID:???
- >>635
そんだけの情報で何か判断は付かんわ。
不完全なデータで更新(上書き)されちゃってる感じか。
再現テストは「ユーザーの回線が細い」と問題がでると思われる
ような作りの部分があるなら、ちゃんとネットワークの延滞を作ったり
帯域を絞って仮想環境作ってテストした方が良いよ。
- 638 名前:困りました :2004/10/13(水) 20:53:13 ID:4r9iZ+Q4
- ありがとうございました。
ネットワークの延滞を作ったり
帯域を絞って仮想環境作ってテストしていないので
まずはそこら辺を考慮したテストを行っていきます。
- 639 名前:nobodyさん :2004/10/13(水) 21:32:59 ID:???
- >>638
あとDBMS側で更新クエリログを取るのと、PHPスクリプト側で
要所要所でログ出力してテストしないと意味が無いので忘れずに。
- 640 名前:nobodyさん :2004/10/14(木) 18:09:39 ID:bdzAlbua
- MySQL4.0.20なんだが、
name | DATA
-----+------
neko |ねこ
nuko |ぬこ
giko |ぎこ
(以下略)
こーゆーテーブル試しに作って、
select * テーブル where data 'ね%';
を実行すると、[ねこ]と[ぬこ]がマッチしてしまうのだが、これはなぜだ?
select * テーブル where data 'ぎ%';
だとちゃんと[ぎこ]だけがマッチするんだけどなぁ。
- 641 名前:nobodyさん :2004/10/14(木) 18:23:47 ID:???
- >>640
select * テーブル where data like binary 'ね%';
MySQLは文字列比較するときデフォルトでアルファベットの大文字小文字を
同一視するようになっている。その副作用と思われ。
ttp://dev.mysql.com/doc/mysql/ja/Case_Sensitivity_Operators.html
- 642 名前:nobodyさん :2004/10/14(木) 18:50:10 ID:???
- >>641
すばやい回答さんくす。
SQL自体勉強始めたばっかりなもので。
これからがんばってドキュメント類ばりばり読み進めます。
海より深く感謝。
- 643 名前:nobodyさん :2004/10/15(金) 17:26:39 ID:K5MUiGQA
- MySQLって個人のウェブサイトの運用に役に立ちますか?
掲示板の書き込みの管理くらいしか思いつきませんが…
みなさんはどんな用途でMySQL使ってるんですか?
- 644 名前:nobodyさん :2004/10/15(金) 17:36:07 ID:???
- >>643
水泳大会の記録を保存している。
携帯で検索できるようにして大会会場でも記録の確認ができます。
- 645 名前:nobodyさん :2004/10/15(金) 19:13:21 ID:???
- PHP+MySQLで掲示板を作ろうと思ってるんですが、ログとMySQLに保存するようにすれば排他処理はしなくていいんですか?
- 646 名前:nobodyさん :2004/10/16(土) 08:41:00 ID:???
- 何をどう排他処理したいのかわからないが
やらないよりはやったほうがいいんじゃないの?
複数人で使う掲示板ならなおさらだね
- 647 名前:nobodyさん :2004/10/16(土) 22:27:47 ID:???
- >>645
ファイルロックを気にしてんの?
しなくていいよ。 複数人で使う掲示板であっても
- 648 名前:645 :2004/10/17(日) 02:59:46 ID:???
- >>647
ありがとうございます。ファイルロックの事です。
- 649 名前:nobodyさん :2004/10/17(日) 03:51:26 ID:???
- PHP+Mysqlで掲示板作り私も興味あります
処理早いよね?
- 650 名前:nobodyさん :2004/10/17(日) 09:53:16 ID:???
- >>649
あなたの書いたコードによるのであなたの書いたコードで実測してください
- 651 名前:nobodyさん :2004/10/17(日) 15:27:26 ID:???
- >>650
この板、こんな厨ばっか
- 652 名前:650 :2004/10/17(日) 16:20:49 ID:???
- >>651
すみませんでした
- 653 名前:nobodyさん :2004/10/18(月) 11:46:27 ID:x7S7FTDO
- すみません。質問させてください。
【環境】
OSX10.3.4
PHP4.0
phpMyAdmin Version 2.6.0, pl2
上記の環境をローカルに作成したのですが
phpMyAdminがうまく動作しません。
言語の変更やテーブル作成をしようとクリックすると
サーバが見つかりませんというエラーが出てしまいます。
- 654 名前:nobodyさん :2004/10/18(月) 11:57:56 ID:???
- PHP4.0に驚いた
- 655 名前:653 :2004/10/18(月) 12:26:21 ID:x7S7FTDO
- またmySQLを「mysql」コマンドで起動させようとすると
command not foundで認識されません。
- 656 名前:nobodyさん :2004/10/18(月) 13:12:41 ID:???
- >>653
phpMyAdmin だけをインストールして MySQL 本体をインストールしていないと見た。
- 657 名前:653 :2004/10/18(月) 13:25:01 ID:x7S7FTDO
- お返事ありがとうございます。
おそらくMySQLのほうが怪しいです。
手順通りインストールしたものの
コマンドが使えません。
書籍にはインストールしたらすぐに
コマンドを使用できると書いてあるのですが。
もちろんMySQLは起動してます。。。
- 658 名前:nobodyさん :2004/10/18(月) 15:39:18 ID:???
- サーバーが見つかりません
↑
そのままだと思うw
サーバーがないんじゃ・・・w
- 659 名前: :2004/10/18(月) 15:47:18 ID:???
- ググったらこんなの出てきた
http://homepage.mac.com/dnagase/macosx/perlcgi.html
どうやら、MacはBSD仕様なのね
生意気なw
- 660 名前:653 :2004/10/18(月) 18:31:28 ID:x7S7FTDO
- どうしてもmysqlに入れないです。。。
command not found。。
mysqlコマンドを使用するのに
特別な設定が必要なのでしょうか??
- 661 名前:nobodyさん :2004/10/18(月) 18:58:41 ID:???
- >>660
・(そのユーザに対して)パスが通ってない。
・コマンドツール類がサーバとは別パッケージで、それをインストールしてない。
本の記述通りのもの(同一バージョン/パッケージ)を、指示通り入れてるか確認
- 662 名前:653 :2004/10/18(月) 19:04:27 ID:x7S7FTDO
- >>661
お返事ありがとうございます。
一番目のパスの設定は特にしていないです。
どのように設定するのでしょうか??
- 663 名前:nobodyさん :2004/10/18(月) 19:09:33 ID:???
- パスの設定方法が本に書かれていないわけがないと思うのだが
- 664 名前:nobodyさん :2004/10/18(月) 19:42:22 ID:???
- この手のオチは「本の記載通りにきちんとやっていませんでした」が大半。
- 665 名前:nobodyさん :2004/10/18(月) 21:56:32 ID:x7S7FTDO
- 結局パスは通さずにディレクトリ指定で
コマンドたたいて入りました。
mysql> create database XXX;
ERROR 1044: Access denied for user: '@localhost' to database 'XXX'
これはどういう状態なのでしょうか??
- 666 名前: :2004/10/18(月) 22:04:34 ID:???
- anonymousでログインしたってことじゃ?
- 667 名前:nobodyさん :2004/10/18(月) 22:04:36 ID:x7S7FTDO
- ユーザの権限なんですかね。。。
今度はrootで入ったら
mysql> create database XXX;
ERROR 1006: Can't create database 'XXX'. (errno: 13)
というエラーが発生してしまいました。
- 668 名前:nobodyさん :2004/10/18(月) 23:08:50 ID:???
- >>667
> ERROR 1006: Can't create database 'XXX'. (errno: 13)
errno 13はOSが出してるエラーで、EACCESS (Permission denied)。
MySQLではデータベースをディレクトリにマップするので、このエラーが出たということは
mysqldはデータディレクトリ内にサブディレクトリを作る権限がないということ。
データディレクトリのパーミッションを確認してみたら?
- 669 名前:nobodyさん :2004/10/18(月) 23:36:36 ID:x7S7FTDO
- すみません。
回答が質問を呼ぶ形になって申し訳ないです。
mysqldとは一体なんなのでしょうか?
- 670 名前:668 :2004/10/18(月) 23:49:38 ID:???
- >>669
おいおい…
mysqldはクエリを解釈してデータへアクセスしたりするデーモン(サーバ)で、常時稼動している。
mysqlコマンドを含むクライアントはこのデーモンに接続してクエリを発行し、結果を受け取る。
http://dev.mysql.com/doc/mysql/ja/Server-Side_Overview.html#IDX662
手元に書籍があるならまず載ってるから、ちゃんと読んでね。
- 671 名前:nobodyさん :2004/10/19(火) 22:13:12 ID:rQaAfL61
- mysqlのデータ飛んだぞ
やっぱりwindowsサーバはゴミだな
- 672 名前:nobodyさん :2004/10/19(火) 22:43:05 ID:???
- >>671
そうか。
それは大変だったな。
- 673 名前:nobodyさん :2004/10/20(水) 10:49:21 ID:???
- >>671
ロックしろよ おまえがゴミだろ
- 674 名前:nobodyさん :2004/10/20(水) 11:09:05 ID:???
- ロックしないだけでデータが飛ぶなんて普通ありえないだろ?DBなんだから
- 675 名前:nobodyさん :2004/10/20(水) 14:53:55 ID:???
- すみません、己の不明を恥じつつ質問させてください。
メールアドレスの重複を許さないテーブルを作成したいと思います。
メールアドレスをprimary keyとして指定すればいいのだと思うのですが、
255文字以上の文字列はprimary keyにできないのでしょうか。
RFC2821で許されるメールアドレスの最大長は64byte@255byteとのことで、
255文字を超えてしまいます。
ハッシュをprimary keyとすることもできるようなのですが、
SHA1やMD5などのハッシュを使うと非常にまれに異なるメールアドレスから
同一のハッシュが生成されてしまうのではないでしょうか。
どなたか知恵を貸していただけませんでしょうか。
- 676 名前:nobodyさん :2004/10/20(水) 15:55:21 ID:???
- >>675
バージョンがわからないのでなんともいえないけど
1. TEXT型とする(格納前にアプリケーション側で長さチェック)
CREATE TABLE mailaddr(addr TEXT NOT NULL, PRIMARY KEY(addr(320));
2. local-partとdomainに分けて複合キーとする
CREATE TABLE mailaddr(localpart CHAR(64) NOT NULL, domain CHAR(255) NOT NULL,
PRIMARY KEY(localpart, domain));
3. 最大キー長を変更してmysqldをコンパイルしなおす
4. 「このシステムはRFC821に従いました」と主張する、または255文字を超えるメールアドレス
は格納できない仕様だと主張する
- 677 名前:675 :2004/10/20(水) 15:56:42 ID:???
- >>676
× CREATE TABLE mailaddr(addr TEXT NOT NULL, PRIMARY KEY(addr(320));
○ CREATE TABLE mailaddr(addr TEXT NOT NULL, PRIMARY KEY(addr(320)));
閉じ括弧が1つ抜けてた。
- 678 名前:nobodyさん :2004/10/20(水) 17:05:19 ID:???
- ハッシュを簡易チェック用(サーチ用インデックス)として、
アプリ側で厳密チェックという作りではいかんのか?
SQLのユニークエラーでは弾けないけど。
- 679 名前:675 :2004/10/20(水) 17:26:25 ID:???
- みなさまどうもありがとうございます。
>>676
少なくとも手元の環境(debian stableとtestingの3.23.49と4.0.21)では1.が蹴られましたので、
3.が必要となると思われますが他のアプリケーションへの影響が怖いのと、
そもそもの255文字という制約が2.の解を採るべきだと示唆しているように思えますので、
今回は2.で行こうと思います。それでも手元では500byteまでみたいですが。
クライアントがいる場合は4.もアリですね。
>>678
Webアプリでページからメールアドレスを登録できるようなものを考えていて、新規エントリを
加える際にいきなりinsertして、それが成功したか否かで重複を検出しようと思っているのです。
今回は最大320文字なのでこれをインデックスに使っても効率の問題は出ないと思うのですが、
これが桁違いに大きいデータの場合はどうすればいいのでしょうね。
世の中的にはSHA1の衝突確率を0とみなしてハッシュのみをprimary keyとすることになっている
のでしょうか(データ自体の比較は行なわない)?
- 680 名前:nobodyさん :2004/10/20(水) 19:29:01 ID:???
- >>679
現実的にはドメイン部分はサブドメイン有りでも100文字あれば足りるので
255で切っても良いと思うけどね
可能性を考えたら切りないし現実的な対応も設計者のセンスだと思うよ。
おれなら255で切って、これで入力出来ないとか言う人は愉快犯として無視するね。
- 681 名前:nobodyさん :2004/10/20(水) 21:48:24 ID:5ZEjjEhO
- win2000+mysqlなんですが、
cmd.exeからc:\mysql\bin\mysqlにログインして「set globals ○○=××;」とすると
設定が変更されるんですが、マシンを再起動すると初期値に戻ってしまいます。
何度やってもそうなります。なぜなんでしょうか?
- 682 名前:nobodyさん :2004/10/20(水) 22:54:23 ID:???
- >>681
そういう作りになってるから。
正確には貴方が恐らく欲しいと思われる結果に対しての
操作の選択肢として間違ったものを選んでいるため。
- 683 名前:nobodyさん :2004/10/20(水) 23:30:08 ID:5ZEjjEhO
- >>682
どうしたらいいんでしょうか。お願いします、教えてください。
- 684 名前:nobodyさん :2004/10/21(木) 02:53:07 ID:???
- >>683
MySQL Manualページの左側にある「Search the MySQL manual」で
「SET GLOBAL」を検索すると答えが書いてあるページが見つかります。
MySQL Manual
http://dev.mysql.com/doc/mysql/ja/
5.5.6 SET 構文
http://dev.mysql.com/doc/mysql/ja/SET_OPTION.html
>GLOBAL を使用した場合、サーバの再起動が行われるまで
>オプションが記憶され、新規接続時も使用されます。
>オプションを永続的にする場合は、オプション設定ファイルに設定します。
>See section 4.1.2 `my.cnf' オプション設定ファイル。
4.1.2 `my.cnf' オプション設定ファイル
http://dev.mysql.com/doc/mysql/ja/Option_files.html
- 685 名前:nobodyさん :2004/10/21(木) 05:12:26 ID:???
- >>674
飛ぶよ DBは飛ばない伝説だな
- 686 名前:nobodyさん :2004/10/21(木) 13:25:01 ID:a34sr5QL
- AUTO_INCREMENT で a001 -> a002 -> a003 って可能ですか?
何か特別な設定が必要でしょうか?
- 687 名前:nobodyさん :2004/10/21(木) 15:51:04 ID:???
- test
- 688 名前:nobodyさん :2004/10/21(木) 16:16:42 ID:???
- どうしたらいいんでしょうか。お願いします、教えてください。
- 689 名前:nobodyさん :2004/10/21(木) 16:21:30 ID:???
- >>660
- 690 名前:nobodyさん :2004/10/21(木) 16:40:51 ID:???
- >>686
むりだ あとからつけとけ
- 691 名前:nobodyさん :2004/10/21(木) 17:36:05 ID:???
- >>686
それは auto_increment じゃなくて magical_increment じゃん www
create table T1 (
a int not null primary key auto_increment
);
select concat('a', lpad(a, 3, '0')) from T1;
- 692 名前:nobodyさん :2004/10/21(木) 20:51:48 ID:B+QZBvw9
- textとvarcharって負荷的にかなり違うんでしょうか?
文字の最大長のみが違う二種類のデータがあるんですが、
テーブルを別にするべきか、
全部textにして一つのテーブルに入れちゃうべきか、悩んでいます。
あまり違わない気もするし…どうなんでしょう?
- 693 名前:nobodyさん :2004/10/21(木) 20:54:16 ID:???
- int(11)と
tinyint(11)ってどうちがうんでしょうか?
- 694 名前:nobodyさん :2004/10/21(木) 23:40:50 ID:???
- >>692
まずは正規化とかそういうのをちゃんと勉強して
まっとうなスキーマ設計ができるようになれ
負荷とか効率とかで悩むのはそれからでいい
- 695 名前:nobodyさん :2004/10/21(木) 23:57:03 ID:???
- bigintを一意なIDとして使った場合、
64bit
=2^64
=18446744073709551616
つまり仮に1日に1億IDを消費しても、
184467440737日=505390248年もつ
この計算であってますか?
- 696 名前:681 :2004/10/22(金) 04:50:08 ID:???
- >>684
ありがとうございます。my.iniに直接書けば良かったのですね。
ご親切なレスに感謝いたします。
- 697 名前:nobodyさん :2004/10/22(金) 10:41:10 ID:???
- >>694
そうですね。
今まで間に合わせの知識でやってきて
ちゃんとモデリングの勉強をしてなかったので、一度勉強してみます。
- 698 名前:nobodyさん :2004/10/22(金) 20:45:08 ID:???
- 知識欲からパフォーマンスチューニングについて質問です(素人、勉強中です)。
例えば2ちゃんねるみたいな大量アクセスがあり、頻繁に書き込みがある
スレッドと、そうではなく過疎化しているスレッドからなる掲示板があって、
1つのテーブルでユニークID、板ID、スレッドID、記事ID・・・のように
管理するとします。細かい話をしだすとキリが無いので、なんとなく一般的に
ベストなインデックスがついているとします。この場合、メモリ管理はどのへんの
設定を変えるとパフォーマンスに一番効果があるでしょうか?query_cache_sizeでしょうか?
ちなみにあくまでMYSQLの知識欲を満たしたいので、HTML化しろとかは無しで。
- 699 名前:nobodyさん :2004/10/22(金) 21:29:33 ID:???
- >>698
>細かい話をしだすとキリが無い
ここをちゃんと出してくれなきゃ、最適化なんて出来ないべさ。
特に掲示板の仕様(DB周辺)と掲示板の使われ方(アクセス)の割合とか。
ROMが多いなら、チューニングも変わってくるだろ。
- 700 名前:698 :2004/10/22(金) 21:52:08 ID:???
- >>699
では書き込みをするユーザ1に対してROMが99人いるという前提にしてください。
また、いわゆる「祭り」状態はイレギュラーなので、条件から除外してもらってもかまいません。
もちろん、「祭り」込みでの提案も歓迎です。
- 701 名前:nobodyさん :2004/10/22(金) 23:50:39 ID:???
- >>700
まだまだ足りないが…
まあ、オーソドックスで正しいDB設計のBBSにおいて
書き手(UPDATE/INSERT)に対して、読み手(SELECT)が圧倒的に
多ければクエリキャッシュは充分にパフォーマンスアップに貢献する。
実際自分のところで早々にMySQL3からMySQL4に移行した理由のひとつ。
但し、アプリがキャッシュがきちんと働くクエリが組み立てられるつくりに
なっているか、その辺の見直しは必要。普通に作っても変なクエリは
投げてないと思うけど。読み出しカウンターを同一のテーブルに
入れてる目も当てられない作りにする香具師がいないとは、
昨今のレベルをみてると、言い切れないからね。
- 702 名前:nobodyさん :2004/10/23(土) 01:04:29 ID:fI1cafOM
- MySQLの接続ドライバに関して質問です。
UnixのMySQLサーバから一覧情報を取得して、Excelに一覧表示を行い、
再度入力された条件から、MySQLサーバにデータの登録を行う処理を
考えております。
経験者の方おりましたら教えていただきたいのですが、Windowsから
Unixのデータベースに接続して処理を行うためには、クライアント側の
設定はODBCの設定でホストIPアドレスにUnixサーバのIPアドレスを指定
することで対応できるのでしょうか?
急きょ調査することになりまして、数少ない情報のなか、ご存知の方お
りましたら宜しくお願いします。
- 703 名前:nobodyさん :2004/10/23(土) 02:29:49 ID:???
- >>702
アプリ側がODBC APIを使って接続するなら、純正のMySQL用
ODBCドライバー - MyODBCについて調べてみてください。
- 704 名前:nobodyさん :2004/10/23(土) 14:29:04 ID:???
- >>701
>読み出しカウンターを同一のテーブルに
>入れてる目も当てられない作り
ここんとこ、もう少し詳しくお願いしたい。
ぶっちゃけるが、「読み出しカウンター」という言葉すら知らんかったので。
- 705 名前:nobodyさん :2004/10/23(土) 16:44:11 ID:???
- >>704
id の事いってたら笑う
- 706 名前:nobodyさん :2004/10/23(土) 19:41:23 ID:???
- >>704
その記事が何回読まれたとか、そういう変化の激しいフィールドを
含めてたりしてないかということ。要するにテーブル内の値が
変化するとキャッシュが毎回無効になるでしょ。
もしそれが本当に必要なら別枠で保持して無いと駄目。
- 707 名前:704 :2004/10/23(土) 21:23:18 ID:???
- >>706
理解した。
ところで、query_cache_sizeでFAなわけ?>ALL
- 708 名前:nobodyさん :2004/10/24(日) 01:08:51 ID:AzGved6L
- php+mysql
min(hoge)で0は返さないように、あるいはmax(hoge)でnullを返さないようにするのはできますか?
- 709 名前:nobodyさん :2004/10/24(日) 15:08:31 ID:???
- >>708
事前に0やnullのデータをテーブルから削除しておくといいよ
- 710 名前:nobodyさん :2004/10/24(日) 23:43:40 ID:???
- where hoge is not null
- 711 名前:nobodyさん :2004/10/24(日) 23:51:32 ID:???
- >709
それは無理です
>710
それも無理です
count()のdistinctみたいなのがmin()やmax()にもあるかと期待しただけなんです
- 712 名前:nobodyさん :2004/10/25(月) 00:05:24 ID:???
- マジレス
他人と最低限の意思疎通ができる文章力をまず身につけることだな
何が「無理」なんだ?>>708の文章から相手に何が伝わると思うんだ?
- 713 名前:nobodyさん :2004/10/25(月) 11:16:33 ID:???
- なんで min と max で 必要なん? 君は書き方勉強し
- 714 名前:nobodyさん :2004/10/25(月) 19:37:05 ID:wXNHm+JO
- Windows2000Pro上でMySQL4.0.20-bを使っていましたが、
サービスが立ち上がらなくなってしまったので
MySQL4.0.20-bをアンインストールし、MySQL4.0.21を
4.0.20-bと同じC:\mysql\以下にインストールしなおしたところ
C:\mysql\data\の内容を読んでくれないのです。
my.iniには
datadir=C:/mysql/data
と記述されています。
どうしたら4.0.20-bのデータベースを読み込む事が出来るのでしょうか?
アドバイスをお願いいたします。
- 715 名前:nobodyさん :2004/10/25(月) 21:51:57 ID:L0lPqJ99
- こんな処理をSQLだけで出来るでしょうか。
今SQL文は勉強中なのですが…質問させてください。
環境は、PHP4.3.8 + MySQL 4.0.20です。
ゲームの結果を入出力、計算出来るシステムを作っています。
テーブルがT1とT2の2つあり、
T1には試合結果、T2にはメンバーデータが入っています。
T1テーブル(試合結果)には、主に4v4で行うゲームのため、
勝者ID1〜4、敗者ID1〜4という8個のカラムが含まれています。
また、T2テーブル(メンバーデータ)は、上記からご察しの通り、
1レコードが1プレイヤーのデータで、主キーとしてプレイヤーID(AUTO INCREMENT)があります。
このシステムを構築する上で、なるべくSQL側に処理をさせようと考え、
勝敗数などのカラムをプレイヤーデータには作っていません。
で、なんとかなるだろうとやっていたんですが、そこで行き詰まりました。
SELECT プレイヤーID,勝数,負数,(勝数*100/(勝+負))as勝率
FROM 両方のテーブル(T1,T2)
ORDER BY 勝数(負数や勝率等も)
みたいなことがしたいのですが、どうも分かりません。
サブクエリというのが使えればいけるかと思ったんですが、MySQL4.2からのようで。
INNER JOINなんかを使うのかな、なんて思ったんですが、
どうもテーブルの結合(?)というのが理解し辛く、壁にあたっております。
どなたか、模範解答なんぞを示してくださると助かります。
mysql ヘルプ!
- 716 名前:715 :2004/10/25(月) 21:56:02 ID:???
- また、余談なんですが、
このシステムは、試合データは数百以上、
メンバーデータは50レコードに満たない程度のものです。
実は最初、T2テーブルのほうに、勝数や負数のカラムを配置して、
ログベースで処理していたんですが、
自分のスキルアップのために、上記のような形に挑戦しています。
この程度のものでしたら、前者と後者で、どちらの処理のほうが、
理想的なものなのか、助言も頂けると幸いです。
よろしくお願いします。
- 717 名前:nobodyさん :2004/10/25(月) 23:37:40 ID:9fphDW68
- 助けてください。
以下のエラーで困ってます。
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
MYSQLのページのエラーマニュアルを呼んだんですがさっぱりです
- 718 名前:nobodyさん :2004/10/26(火) 09:05:19 ID:???
- >>717
おいらはアンタがどういう環境でどういう状況(インストール直後なのか運用中で)に
そうなってるかが、その書き込みからだけだとさっぱりだよ。
- 719 名前:nobodyさん :2004/10/26(火) 09:21:12 ID:???
- >>715
> 勝者ID1〜4、敗者ID1〜4という8個のカラム
ここが少しひっかかる。主に4v4というけど、この対戦人数は変わったりするの?
勝敗の集計をプレイヤーIDごとに出したいんだったら、
プレイヤーマスタテーブル
プレイヤーID
氏名
他、詳細データ…
対戦組み合わせテーブル
組み合わせID
プレイヤーID
東西区分
勝敗テーブル
組み合わせID
勝敗(東or西)
勝敗を表わすのにどうしようか迷ったけど
相撲に倣って東/西と称してみた。
- 720 名前:715 :2004/10/27(水) 03:54:49 ID:???
- >>719
お返事遅れて申し訳ないです。
ありがとうございます。
> 主に4v4というけど、この対戦人数は変わったりするの?
そうですね、可変です。
勝者ID1と敗者ID1というカラムが必須で、後はNULLが入る可能性もあります。
書いて頂いたテーブル構成での「組み合わせID」ですが、
現在、1試合(=対戦組み合わせテーブル1レコード)に、
こちらもAUTO INCREMENTでIDを振っていますんで、これでいけそうです。
頑張ってみます。
重ね重ねありがとうございました。
- 721 名前:nobodyさん :2004/10/27(水) 09:54:33 ID:fSBouGHv
- mysql+perl DBIなんですが、
取得したデーターの何個目からfetchするとかできますかね?
今は、
1 while $sth->fetch and ++$count < $s_;
みたいに、fetchをから回し($s_がスタート地点)してるのですが、
スタート地点が大きい場合(ぶっちゃけ10000とか)があるので、
ちょっといやなんですが、、
- 722 名前:nobodyさん :2004/10/27(水) 10:32:37 ID:???
- 普通はSQLでlimitするもんじゃないの。
- 723 名前:721 :2004/10/27(水) 10:32:53 ID:???
- スマン
selectでオフセット指定できました。
- 724 名前: :2004/10/27(水) 13:29:38 ID:???
- >>719
似たようなDB作ろうとしてるんだけど、
例えば1選手の、1試合の成績を収めようとしたら
選手分だけのTableが必要になる?
選手200名を1人ずつTable管理するのは大変だよね
どうしてます?
MySQL4.1以上になると2次元扱いが可能になるらしいけど、
Installがミスって何故か弾かれる、、、
- 725 名前: :2004/10/27(水) 13:59:29 ID:???
- The service cannot be started.error0
OTZ....
- 726 名前:719 :2004/10/27(水) 14:13:24 ID:???
- ちょっと修正
プレイヤーマスタテーブル(プレイヤー1人あたり1レコード)
プレイヤーID
氏名、他、詳細データ…
試合マスタテーブル(試合1回あたり1レコード)
試合ID
勝利チーム(NULL or 紅 or 白)
開始年月日、試合場、他、詳細データ…
対戦組み合わせテーブル(試合×参加プレイヤー=1レコード)
試合ID
プレイヤーID
チーム区分(紅or白)
>>724
1選手1レコードのテーブルひとつで済むよ
- 727 名前:719 :2004/10/27(水) 14:17:02 ID:???
- >>726の補足
> 対戦組み合わせテーブル(試合×参加プレイヤー=1レコード)
っていうのは、8人参加の場合は1試合あたり8レコード
6人参加の試合が4回あったら24レコード
という意味です。
- 728 名前: :2004/10/27(水) 14:35:43 ID:???
- もう少し詳しくお願いします
私が考えてるのは
例えば、
目的:野球140試合、全選手の成績を格納する
id、所属球団、選手名、生年月日等のDATA・・・と
各試合での成績(三振、ヒット)など
1打席目 2打席目 3打席目 4打席目 5打席目 ・・・・
1試合目 三振
2試合目
・・・
140試合目
- 729 名前:719 :2004/10/27(水) 15:30:57 ID:???
- >>728
CREATE TABLE Player (
id int,
team int,
name varchar(100),
birth date
);
CREATE TABLE Team (
id int,
name varchar(100)
);
CREATE TABLE Score (
player int,
game int,
box_no int,
score varchar(10)
);
成績を表わすScoreテーブルは特定の試合の特定の打席を1レコードとして記録する。
1打席あたりの結果はどう表現するのか分らなかったので仮にvarchar(10)。
- 730 名前: :2004/10/27(水) 16:22:45 ID:???
- >>729
くだらない質問に答えてくれてありがとう
私の理解度が乏しいから、確認しますけど
選手 日時 何打席目か 成績
A 10/27 1 三振
B 1 ホームラン
C 1 アウト
A 2 ヒット
B 2 アウト
C 2
・・・
こんな感じでしょうか
- 731 名前:719 :2004/10/27(水) 18:07:51 ID:???
- >>730 YES.
- 732 名前:nobodyさん :2004/10/27(水) 21:12:11 ID:???
- join で読み出ししたこと無いのかなあ?
まあ、テーブルの設計が終われば八割終わりみたいなもんだから
DBプログラミングは、ひたすらがんがれ。
- 733 名前:nobodyさん :2004/10/28(木) 12:21:42 ID:y89QF6Ze
- マスタの停止なしに
InnoDB形式のテーブルでレプリケーションが
狂ってしまった場合、復旧させる方法はありますか?
MyISAM形式では、テーブルのファイルコピーで無理やり整合性を
保っていたのですが、InnoDBでも可能でしょうか?
- 734 名前:nobodyさん :2004/10/28(木) 20:53:44 ID:???
- MySQL上の日本語全文検索について書かれた
書籍やサイトがあれば教えてください。
自分では、
「実践MySQL4」に、
少し書かれているのは知っています。
- 735 名前:nobodyさん :2004/10/29(金) 19:25:07 ID:???
- 日本語の全文検索は未対応で問題が多いらしいね。
最近のスラッシュドットでそんな話があったよ。
MLでも議論されてたから検索してみれば?
http://slashdot.jp/comments.pl?sid=219444&cid=0&pid=0&startat=&threshold=0&mode=nested&commentsort=0&op=%CA%D1%B9%B9
- 736 名前:nobodyさん :2004/10/30(土) 12:57:52 ID:Gk5lEdxU
- 複数選択可能のチェックボックスをつかってアンケートをを取るとします。
例えば、あなたの趣味は?
■パソコン ■アウトドア ■読書 ■ドライブ
■スポーツ ■映画鑑賞 〜〜〜
こんな感じで、複数の項目にチェックしてもらってpostした情報はどんな風に
データとして格納すれば良いのでしょうか?
それぞれのチェックボックスをフィールド一つを割り当てて1か0で・・・てのは
アホくさ杉でしょうし。
また、レコードを修正するときに、フォームで登録時にすでにチェックされていたもの
を自動的にチェックが入るようにするのもわかりません。
radioとかtextだったら読み込み直す方法はわかってるんですが。
リファレンスのどこらへんを読めばよいのかだけでもいいので教えて下さい。
- 737 名前:nobodyさん :2004/10/30(土) 14:07:52 ID:x49/edM7
- どなたかご教授ください。
mysqlを打ち込むと
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
またmysqladmin versionを打ち込むと
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
と表示されます。
指示の通りmysqlは稼働していますし、ソケットもディレクトリに存在しています。
最近変更した事と言えば
mysqlをインストールし直した(全く同じバージョンでアップグレード)のと
パスを通したことくらいです。
- 738 名前:nobodyさん :2004/10/30(土) 14:30:59 ID:???
- >>737
ソケットファイルが変な状態になってるかも知れんので一端削除して作り直してみる。
- 739 名前:nobodyさん :2004/10/30(土) 15:04:11 ID:x49/edM7
- >>738
ソケットファイルは0バイトのからファイルでいいんですよね?
今試したところ
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
だったエラーメッセージが
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
となりました。
また元のソケットに戻してみたところ
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
に戻りました。
う゛〜ん。。。
- 740 名前:nobodyさん :2004/10/30(土) 16:44:18 ID:???
- >>739
だとしたらmysqldとソケットファイルの権限のマッチングが駄目なのかもしれん。
- 741 名前:nobodyさん :2004/10/30(土) 16:48:01 ID:N1vJ8kvj
- 拝啓 2ちゃんねらー様
MySQLで重複したレコードを一括して削除する構文を教えて下さい。
- 742 名前:nobodyさん :2004/10/30(土) 16:54:27 ID:???
- delete
- 743 名前:nobodyさん :2004/10/30(土) 17:08:00 ID:???
- AとBが重複していたとして
AもBも両方とも消していいなら割と簡単だが
Aだけ残してBだけ消したいということになるといろいろ面倒かもしれん
- 744 名前:nobodyさん :2004/10/30(土) 17:49:34 ID:x49/edM7
- >>740
ソケットファイルの権限はrwxともにOKです。
mysqldの権限の変更、およびソケットファイルとのマッチング
を整える方法がわからないです。
- 745 名前:741 :2004/10/30(土) 18:38:13 ID:N1vJ8kvj
- >>743
それです。
perl使ってるので、DBIのメソッドでも構いません。
- 746 名前:nobodyさん :2004/10/31(日) 00:13:12 ID:R5h305R8
- MySQLのコマンドはオラクルのSQLplusなどを
普通に扱えていれば全く問題なく扱えますか?
いつも叩いてるSQL文で問題なく作業できるのなら
導入しようかと思っている者です。
微妙な違いなんかは存在するんですかね?やはり。
- 747 名前:nobodyさん :2004/10/31(日) 00:14:47 ID:???
- >>746
SQLの基礎が出来てれば、
リファレンス引いて命令文引っ張ってくるだけだから、出来ると思うよ。
文法はほとんど一緒。
- 748 名前:nobodyさん :2004/10/31(日) 00:30:38 ID:R5h305R8
- >>747
リファレンスをちらっと見たら
USE DB みたいなコマンドがあって困惑したので。
- 749 名前:748 :2004/10/31(日) 01:38:56 ID:R5h305R8
- このuse database ってコマンドから察するに
このdatabaseってのはoracleでいうスキーマにあたるもので、
oracleだとログイン時にどのスキーマを使うか選択するが
MySQLでは最初にuseコマンドで明示的にどのDBを使うか
決定してからテーブルなどの操作を行う必要がある。
って理解は合ってます?
- 750 名前:nobodyさん :2004/10/31(日) 03:24:35 ID:H+tIg089
- DBで配列構造のデータ格納する時って、
一般的にはどうするのでしょうか?
自分としては単純に、
id,order,valueのカラムを作って、
データの削除や移動があった時には
orderを順番に書き換えていく、という方法を考えたのですが、
少し面倒な気がします。
もっと画期的な方法はありますか?
- 751 名前:750 :2004/10/31(日) 18:34:08 ID:???
- よく考えたら、orderをずらすのは1クエリで多分できますよね。
ループで回してクエリ出しまくりかと思って躊躇してましたが、
この方針でいってみようと思います
- 752 名前:nobodyさん :2004/10/31(日) 22:51:28 ID:???
- >>741
dump して unix/linux上でuniqして元に戻す。
しょっちゅうこれをやんないといけない場合には、
データベース設計にそも問題がある。
- 753 名前:nobodyさん :2004/11/01(月) 09:32:14 ID:???
- >>744
ソケットファイルを消すまえに
mysqldは停止させたんだろうな
- 754 名前:nobodyさん :2004/11/03(水) 22:23:52 ID:r8FwY29X
- MyISAMの場合、
select * from table
で行数を数えると、瞬時に答えが返ってくるはずなのですが、
スロークエリログに多数、このSQLが残っています。
どんな原因が考えられるでしょうか?
- 755 名前:nobodyさん :2004/11/03(水) 22:32:14 ID:???
- select count(*) from table
じゃなくて?
- 756 名前:754 :2004/11/03(水) 22:53:07 ID:???
- 行数は
mysql_num_rowsで数えていました。
countに直して様子を見てみます。ありがとうございました。
- 757 名前:nobodyさん :2004/11/06(土) 14:53:52 ID:???
- http://pc5.2ch.net/test/read.cgi/tech/1099190154/251
この問題なんですがコンパイルを通すにはどうしたらよいでしょう?
Win版じゃなくてLinuxでやりたいんですが...
- 758 名前:nobodyさん :2004/11/07(日) 11:49:12 ID:w/j/GLX7
- 759 名前:nobodyさん :2004/11/07(日) 18:31:21 ID:???
- Win2kのバッチファイルをつかって
自動でMySQLのログインから処理、ログアウトまでをやろうと思っているのですが、
mysql -u ユーザ名- p
の入力後に
Enter password:
が着ますよね?
ここでリダイレクトを使ってpassを読み込ませるにはどうしたらいいんでしょうか?
- 760 名前:nobodyさん :2004/11/07(日) 19:18:28 ID:???
- >759
そんなことしなくても。。。
mysql -u ユーザ名 -pパスワード
でできるよ
- 761 名前:759 :2004/11/07(日) 20:08:04 ID:???
- あ、-pの後にスペース入れるとダメなんですね…ありがとうございます。
もう一つ…
上記をバッチファイルに書き込んで、その後
DB選択>既存のテーブルを削除>新しく作成>
別のテーブルからランダムソートしたものを新しく作ったテーブルに挿入>ログアウト
という流れをバッチファイル開くだけで行うためには、
use DB;
drop table TB;
create table TB(...);
insert into TB (select * from TB2 order by rand());
exit;
であってますでしょうか?
バッチファイルに書いても、mysql > で止まってしまいます。
- 762 名前:nobodyさん :2004/11/07(日) 20:54:59 ID:???
- >>761
バッチでやろうとしてるのに、対話モードでmysql動かすなよ…
マニュアルの標準ツールでmysqlの項嫁。
- 763 名前:nobodyさん :2004/11/07(日) 21:21:04 ID:???
- mysql -uUserName -pPassword < hogehoge.sql
やりたい処理は全部 hogehoge.sql に書く
- 764 名前:757 :2004/11/09(火) 12:09:30 ID:lXsYUd1S
- typelib.hはわかりました。
しかしmysql_configが指定するリンクをいれても
コンパイルがどうしても通らないです
/usr/lib/mysql/libmysqlclient.a(my_compress.o)(.text+0xbc): In function `my_compress_alloc':: undefined reference to `compress'
/usr/lib/mysql/libmysqlclient.a(my_compress.o)(.text+0x13a): In function `my_uncompress':: undefined reference to `uncompress'
collect2: ld はステータス 1 で終了しました
どういった原因でしょうか..
- 765 名前: :2004/11/11(木) 05:46:25 ID:???
- うー
どうしてもvariableでのcharacter_setが
latin1から変わらない。
Windowsでmy.iniの[mysqld]に
default-character-set=ujisにしてるのに〜
文字化けするよ〜〜(´・ω・`)
- 766 名前:nobodyさん :2004/11/14(日) 04:41:09 ID:B/SXTDdi
- /etc/rc3.d/に起動スクリプト(S○mysql)のシンボリックリンクを置いた場合、
マシンの再起動時にはちゃんとmysqlをstopしてくれるんでしょうか?
参考にしたサイトにも
終了時スクリプトについては書かれていないのですが。
- 767 名前:766 :2004/11/14(日) 04:41:49 ID:???
- /etc/rc.d/rc3.d/
でした
- 768 名前:nobodyさん :2004/11/18(木) 12:02:05 ID:???
- mysqlで評を作ったんですけど、列がおおすぎて
ドス上でみたら2行になってすごいみずらいです
一行でドスのサイズにあわせて表示するコマンドかなんかあるんでしょうか?
どなかたご存知のかたおしえてください。
- 769 名前:nobodyさん :2004/11/18(木) 17:02:00 ID:E/PAFSQf
- オートインクリメントで、
a001 -> a002 -> a003 みたいな増加の仕方はムリポですか?
- 770 名前:nobodyさん :2004/11/18(木) 17:02:50 ID:???
- ユニークとプライマリキーの違いがよく分かりません。
ともに重複したデータは不可能なんですよね?
- 771 名前:nobodyさん :2004/11/18(木) 18:00:50 ID:???
- >>769
数字と文字列は別の扱いだから無理。
>>770
ユニークは重複を許可しないだけ、
プライマリは複数のフィールドを関連づけることが出来る。
ざっくり言うとこんな感じだけど言葉で説明するのは難しい。。。
本とかで勉強して色々実験してみれば何となく分かってくるはず。
- 772 名前:nobodyさん :2004/11/19(金) 09:25:47 ID:???
- >>768
MySQLはドス上で見ないほうがいいです
>>769
まったく同じ質問を前に見たぞ。>>686 だ。回答は >>691
- 773 名前:nobodyさん :2004/11/25(木) 10:55:47 ID:???
- >>768
\Gくっつけて出力したら?
縦表示になるから少しは見やすい。
- 774 名前:nobodyさん :2004/11/25(木) 17:09:19 ID:???
- 洩れは
mysql -H < select.sql > result.html
start result.html
としてブラウザから見る派。
- 775 名前:nobodyさん :2004/11/26(金) 13:19:37 ID:???
- http://tamac.daa.jp/diary/2004_11_25_125.html?zB4dB3fKlJKiYzBIkLOGLRPzBLIBMKBSXzBYDBZFBeRzM37MH7MP8zCkbD5cDOdDSeDTgNS6NONzDFLDFPD9mN5B
- 776 名前:nobodyさん :2004/11/26(金) 13:20:14 ID:???
- ごめん
- 777 名前:nobodyさん :2004/11/26(金) 17:08:56 ID:LVzAOA0n
- MySQLについてです(内容が初歩的なので回答して頂けるかどうか不安ですが)
次の様な内容で"sample"という名のテーブルの複合キーを定義しました。
//---------------------------------------------------
create table sample (
A varchar,
B integer,
primary key(A, B)
);
//---------------------------------------------------
それでこの複合キーを変更(削除)したいので
"alter table sample drop primary key(A, B);"
を発行してみたのですがエラーになってしまいます。
どなたか正式な複合キーの削除方法を教えて頂けないでしょうか?
よろしくお願いします。
- 778 名前:nobodyさん :2004/11/26(金) 17:26:59 ID:???
- 何故エラーをそのままコピペしないのか。
- 779 名前:nobodyさん :2004/11/26(金) 18:01:24 ID:LVzAOA0n
- 777投稿の者です。
エラー内容を貼り付けます。
alter table sample drop primary key(A, B);
→ERROR 1064: You have an error in your SQL syntax near '(A, B)' at line 1
またCREATE TABLEのSQL文も間違っていました。
正式なSQLは次の通りです(すみません) 。
create table sam(
A varchar(10) not null,
B int not null,
primary key(A, B)
);
よろしくお願いします。
- 780 名前:nobodyさん :2004/11/26(金) 18:06:03 ID:???
- alter table sam drop primary key;
- 781 名前:nobodyさん :2004/11/26(金) 18:07:52 ID:LVzAOA0n
- 779投稿の者です。
create tableのテーブル名は"sam"ではなく"sample"です(すみません...)。
- 782 名前:nobodyさん :2004/11/26(金) 18:44:38 ID:???
- >>781
せっかく書いたのに・・・レス読めよ
- 783 名前: :2004/11/26(金) 22:55:24 ID:???
- かねやん使ってるんだけど、
かねやんでアドミン設定・新規ユーザー作っても
LOCK TABLES権限ないじゃんか!!!
1時間悩んだじゃないか〜〜ばかぁ〜
- 784 名前:NAME IS NULL :2004/11/27(土) 12:24:15 ID:???
- >737
通常はデーモンを起動すれば大丈夫です。
% safe_mysqld &
- 785 名前:nobodyさん :2004/11/28(日) 11:07:21 ID:???
- 野球の成績管理をするために、>>729のようなテーブルを考えています。
この場合、「あるイニングでの先頭打者」を検索することは可能でしょうか?
不可能であれば、どのような情報を追加すればよいでしょうか?
- 786 名前:nobodyさん :2004/11/29(月) 01:13:42 ID:???
- >>785
無理だな。
どんな情報以前に、自分で判断できないって事の方が、重大な問題だと思うけどね。
- 787 名前: :2004/11/29(月) 01:20:44 ID:???
- ん?
先頭打者かどうかは、アウト数を別に作って3の次とするか
すればいいんじゃ?
成績とリンクさせるなら、三振→アウト数+1
セカンドゴロ→アウト数+1と1つずつ作っていけばいいんじゃ?
良く分からないけど。
- 788 名前:nobodyさん :2004/11/29(月) 02:38:21 ID:???
- 代打のことまで考えると全打席に通し番号を振った方が良さげだが
まあ好きにやれや
- 789 名前:nobodyさん :2004/11/29(月) 10:39:50 ID:???
- アドバイスするためには、その前に野球のルールと用語を詳しく教えてくれ。
- 790 名前:nobodyさん :2004/11/29(月) 14:40:43 ID:???
- 表裏が…
コールドの時は…
代打、代走、リリーフ…
一打席に複数のバッターが出たら…
盗塁死、牽制死はどうする…
FC、エラー…
投球内容とかいらんのか…
ってな辺りを考えてからの話だろ、というか野球のルールの話だろ、これ…
- 791 名前:nobodyさん :2004/11/29(月) 23:37:27 ID:???
- 「イニング」「イニングで何人目の打者か」という情報を追加すれば?
「選手」「日時」と合わせてこれらが主キーになるのかな。
- 792 名前:nobodyさん :2004/11/30(火) 09:10:15 ID:???
- >>791
「日時」ってどこから出てきたんだYO!
- 793 名前:nobodyさん :2004/11/30(火) 23:28:06 ID:IAxT8j7A
- TRUE/FALSEの
ブーリアン値は
ENUMのYとNにするしかないのでしょうか?
- 794 名前:nobodyさん :2004/12/01(水) 00:12:29 ID:???
- tinyintの1か0
- 795 名前:nobodyさん :2004/12/01(水) 15:48:05 ID:???
- BOOLEAN型もあるけどな。
中身はTYNYINT(1)だが
- 796 名前:793 :2004/12/01(水) 20:34:26 ID:???
- >>794-5
ありがとうございました。
- 797 名前:nobodyさん :2004/12/06(月) 10:53:00 ID:???
- CGI側から、データベースやテーブルの使用している容量を取得することは出来ないでしょうか?
webページデータとDBも含めて、使用できるHDD容量をwebページ上に表示させたいんです。
- 798 名前:nobodyさん :2004/12/06(月) 10:56:41 ID:???
- >>797
OSのコマンド使えよ
- 799 名前:797 :2004/12/06(月) 11:33:57 ID:???
- >>798
duコマンドですか?
- 800 名前:nobodyさん :2004/12/06(月) 11:40:10 ID:???
- 場合によっては quota コマンドかもしれん
- 801 名前:nobodyさん :2004/12/06(月) 12:17:17 ID:???
- いずれにしてもスレ違いな話だな。
- 802 名前:797 :2004/12/06(月) 13:10:54 ID:???
- なんとか取得できました。
ありがとうございます。
- 803 名前:nobodyさん :2004/12/06(月) 21:07:12 ID:???
- MySQLxPHPについて質問したいのですが、
日中などは大丈夫なのですが、夜になってアクセスが多くなると
DBの接続エラーが多発してしまいます。
$linkid = mysql_connect(host,name,pass);
if(!$linkid)
{
echo "MySQL接続失敗";
exit();
}
こんな感じので、接続失敗が多発します。
何を直せば接続エラーを無くすことができるのでしょうか?
- 804 名前:nobodyさん :2004/12/06(月) 22:26:05 ID:???
- >>803
SQLdの見直し、バージョンアップ。
サーバースッペクにも問題ありかも。
- 805 名前:nobodyさん :2004/12/06(月) 23:13:29 ID:???
- >>803
・アクセス量を日中と同程度に抑える。
・もう少しコネクションに余裕のあるサーバ/サービスに移行する。
・自分の管理下にあるサーバならmysql定義ファイルのコネクション上限を見直す。
場合によってはマシンスペックを上げる
- 806 名前:803 :2004/12/07(火) 12:56:03 ID:???
- 804>>805>>
レスありがとうございます
サーバースペックなんですが、
OS:win2003server
メモリ:1G
CPU:P4-2.4G
です。
レンタルですが専用サーバーを使っています。
SQLdは、自分なりに値だけ大きく変更してみてるんですが、
エラーは消えないんです。
table_cache = 10000
max_connections = 50000
max_user_connections = 20000
など…やり過ぎですかね…
PHPのプログラミング方法によってもエラーがでたりとかするんでしょうか?
- 807 名前:nobodyさん :2004/12/07(火) 22:44:45 ID:???
- >>806
msqld のエラーログには何か関係ありそうなメッセージは出てないの?
- 808 名前:nobodyさん :2004/12/08(水) 16:29:57 ID:???
- MySQLって、1つのデータベースの中に作成できるテーブルの最大数って、
何か制限などあるんでしょうか?
- 809 名前:nobodyさん :2004/12/08(水) 16:45:04 ID:???
- >>808
はい
- 810 名前:803 :2004/12/08(水) 18:58:45 ID:???
- mysqldのエラーログというのは、
そこを見ればいいのでしょうか…(すいません
- 811 名前:803 :2004/12/08(水) 19:00:30 ID:???
- ※↑打ち間違いました
mysqldのエラーログというのは、
どこを見ればいいのでしょうか…
- 812 名前:nobodyさん :2004/12/09(木) 15:32:33 ID:fa9vd1ze
- mysqlを止めるにはどうすればいいでしょうか?
起動するたびに立ち上がって染まします。
- 813 名前:nobodyさん :2004/12/09(木) 15:37:29 ID:???
- >>812
サービスの自動起動をやめたら?
- 814 名前:nobodyさん :2004/12/09(木) 16:05:29 ID:???
- >>811
どうやってインストールしたかによるが
拡張子が .err のファイルがどっかのディレクトリにできてないか?
- 815 名前:nobodyさん :2004/12/20(月) 07:25:09 ID:FA8OSGsZ
- ローカルな環境でMySQLとPHPの練習をしているのですが
PHPからMySQLへのアクセスができません。
エラーメッセージは
mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in
となっています。
環境
WindowsXP
PHP4.3
MySQL4.1.8
Apache1.3
文字コードはMySQL以外はShift-JISにしています。
MySQLはインストールしてrootのパスを決めた以外は変更していません。
コマンドラインからのroot権限でのアクセスはできています。
- 816 名前:nobodyさん :2004/12/20(月) 09:31:17 ID:???
- >>815
PHP4.3.9以前はMySQL4.0とMySQL4.1のライブラリが別になってるんだよ(4.3.10では一緒になったらしい)
libmysqli.dllをシステムディレクトリにコピー
- 817 名前:nobodyさん :2004/12/20(月) 16:48:07 ID:???
- >>817
http://dev.mysql.com/doc/mysql/ja/Password_hashing.html
に該当。
でもこういうところに気が付かない(読まない)人は、
質問が出た時点で、回答としては「暫くMySQL4.0.x使っとけ」
とするのが現時点では最も正しい答えなのかも。
MySQl4.1.x使うなら、常に情報の入手に気を配れ。
- 818 名前:815 :2004/12/20(月) 17:48:46 ID:???
- >>816,817
ありがとうございます。
おとなしくMySQL4.0を使うようにします。
- 819 名前:nobodyさん :2005/01/01(土) 08:13:01 ID:QrQCkT/a
- PHPとMySQLで掲示板を作っています。
コマンドラインで
select count(*) form bbs_table;
と実行するとちゃんと「11」という結果が返ってくるのですが
PHPでmysql_query($sql, $conn);と実行すると
なぜか「8」(Resource id #8)と返って来ます。
当然同じデータベース・同じテーブルでやっているのですがどうしてでしょうか?
- 820 名前:nobodyさん :2005/01/01(土) 09:17:19 ID:QrQCkT/a
- 勘違いしていたっぽいです。
$result = mysql_query("select count(*) from bbs_table");
$row = mysql_fetch_row($resutl);
print($row[0]);で「11」と表示されました。
これで私の思っている通りの結果にはなりましたが
データベースのカラム数(掲示板で言うとレス数)を求めるには上記の処理で合っているでしょうか?
- 821 名前:nobodyさん :2005/01/01(土) 16:41:48 ID:???
- >>819
> なぜか「8」(Resource id #8)と返って来ます。
この8というのはリソースのIDのことだよって書いてあるのに
何で件数だと思ったのか、こっちが聞きたいくらいですから。
残念!
- 822 名前:nobodyさん :2005/01/02(日) 17:22:22 ID:MfYqAlNX
- MySQLで論理型(true,false)を格納する場合、皆さんはどの型を使っていらっしゃいますか?
PHPで使っているのですが、他のDBでも使えるようにif ( $a )の形式でチェックできるように
したいのですが、ENUM('true','false')だとチェック時にif( $a == 'true' )のように
文字列比較をしなくてはならないのでTINYINTで0か1が良いのかとか色々と考えています。
もちろんこれでやればできるのですが、経験豊富な方に伺いたいと思いましてどうかよろしくお願い致します
- 823 名前:nobodyさん :2005/01/02(日) 18:35:03 ID:???
- >>822
BOOLEAN型。要するにTINYINT(1)
- 824 名前:nobodyさん :2005/01/02(日) 21:41:15 ID:???
- >>822
MLとかでもたまに話題になるけど、TINYINT(1)が一番適してるってことになってる。
- 825 名前:822 :2005/01/05(水) 00:15:38 ID:???
- 確かにTINYINTなら他のDBでも統一的に出来ていいですね
ありがとうございましたm(__)m
- 826 名前:nobodyさん :2005/01/05(水) 14:47:11 ID:???
- 開発環境Java言語で、tomcatからMySQLを使用してるのですが、
java側からはMySQLに、UnicodeをShift-JISに変換して書き込めるのですが
MySQL側からデータをJava側に読み込むとShift-JISからUnicodeに変換
されずに、文字化けしてしまいます。
データを書き込めるのですが、それを読むと文字化けしてしまう状況です。
一応、JDBCドライバを呼び出す時は
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis
&mysqlEncoding=sjis
とし、
my.iniにも
default-character-set=sjis
と記述しています。
それでも文字化けしてしまうのです。
無事に変換できて文字化けしないようにするにはどうすればよいのか
でどうか対処法を教えてくださいませ。
- 827 名前:nobodyさん :2005/01/08(土) 07:40:40 ID:???
- 開発環境PHP、MySQLを使ってfreemailの判定を行っています。
テーブルfreemailの中は空。
$mailにはフォームから登録したメールアドレスが入ってるとし、仮にaa@bbとします。
$str_mail=strstr("$mail","@");
$str2=mysql_escape_string($str_mail);
$rs=mysql_query("select * from freemail where freemail='$str2'");
$res=mysql_fetch_array($rs);
$f_res=$res['freemail'];
この状態で
$str_mail、$str、$f_resをそれぞれprint文で出力すると。
全部が同じ出力になる…この場合@bbになるとしたら、原因は何処にありますか?
これは判定だけで、テーブルfreemailに追加はしてないです。
- 828 名前:nobodyさん :2005/01/08(土) 07:42:35 ID:???
- ミス…
print文で出力するのは
$str_mail
$str2
$f_res
です。
- 829 名前:nobodyさん :2005/01/08(土) 12:23:13 ID:???
- ごめんなさいすっごい自己解決しました。
- 830 名前:nobodyさん :2005/01/15(土) 00:33:23 ID:NZnuK1eg
- PHP+MySQLでプログラムを作ろうとしてるんでずか、共用鯖なのでDB接続パスワードを
直接PHPファイルに書くのに抵抗があります。
聞く話によるとMD5ハッシュ化したパスワードで接続することが出来るらしいのですが、
検索してもやり方がわかりませんでした。
どのようにすればMD5ハッシュ化したパスワードで接続できるのでしょうか。
- 831 名前:nobodyさん :2005/01/15(土) 08:45:26 ID:???
- >>830
ハッシュ化したパスワードで接続できるほうが危ないと思うんだけど。
ハッシュはサーバのどこかに保存されてるので見られる可能性がある
生パスはサーバには無いので絶対に見られない
- 832 名前:nobodyさん :2005/01/15(土) 10:54:23 ID:NZnuK1eg
- >>831
共用鯖でmod_php利用なのでアクセス権を604としなければならなく、
同じ鯖の人から見ようと思えばphpの内容が観覧できてしまいます。
なので、生パスワードをphpに記載するほうが怖いんですが・・・
- 833 名前:nobodyさん :2005/01/15(土) 11:46:39 ID:???
- >>832
生だろうがハッシュだろうが、スクリプトに記述してしまうならいっしょ。
mod_phpならsafe-modeの制限に頼るしかない。
- 834 名前:nobodyさん :2005/01/15(土) 12:26:24 ID:???
- >>833
少なくとも生パス抜けないから一緒ではないと思うが。
- 835 名前:nobodyさん :2005/01/15(土) 12:39:43 ID:???
- >>834
照合する側がハッシュで照合してるならともかく
(MySQLサーバ側は確かにそうしてるが)
PHPのスクリプトでMySQLにアクセスする部分のパスワードを
どこぞに列挙するなら、それが生だろうがハッシュ化されてようが
普通にパスワードとして使えるのだから一緒でしょ。
列挙するパスワードをどこか他の認証と共用してるシステムなら
共用してる部分については「生パス抜けない」ということになるけど。
- 836 名前:nobodyさん :2005/01/15(土) 21:33:17 ID:???
- MD5は復号できんけど?
- 837 名前:nobodyさん :2005/01/16(日) 01:46:09 ID:???
- >>836
そうだね。
でも複合できるかどうかは関係ない、てことが分かってないようで・・
そんなに気になるなら CGI で 600 で動かせばいいじゃん。
- 838 名前:nobodyさん :2005/01/18(火) 03:47:13 ID:KC0Yllm6
- phpを使って、
mysqlのBLOBにバイナリデータを入れる時は、
普通にmysql_escape_string()しておくだけで問題ないのでしょうか?
なんとなくおかしなクエリになってしまうケースがありそうで恐いのですが…
- 839 名前:nobodyさん :2005/01/18(火) 11:58:44 ID:4Eo/wmNT
- 環境:mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)
自動的に(人間がmysqlを立ち上げないで)データベースとその中のテーブルを作る手っ取り早い方法はどんなものでしょうか?
もちろんデータベース名、テーブル名とそのフィールドは固定です。
- 840 名前:nobodyさん :2005/01/18(火) 14:20:14 ID:???
- >>839
mysqlにそのDBやテーブルのDDLを記述したファイルを
リダイレクトでぶちこんで作成。
- 841 名前:nobodyさん :2005/01/19(水) 21:46:19 ID:JHcmHOhC
- ある値を入れるとき、その値が入っていない場合は挿入、入っている場合は更新したいのですが
単純に思いつくのは
・SELECTで値が入っているかどうかを調べる
入っていない場合 -> INSERT
入っている場合 -> UPDATE
のように2回クエリを送らなくてはならないため、もう少し良い方法があればと思いまして
ご存知の方がいらっしゃいましたらどうかよろしくお願い致します。
- 842 名前:nobodyさん :2005/01/19(水) 21:56:32 ID:???
- replace into
但し
内部的には
DELETE→INSERT
だからunique制約とかprimaryの制約がないとだめだけど。
- 843 名前:842 :2005/01/19(水) 22:00:53 ID:???
- 早速、調べて実行してみたいと思います
ありがとうございました
- 844 名前:nobodyさん :2005/01/21(金) 11:23:46 ID:Z6ezIjZ/
- ばかばかしい質問かもしれないんですが
bluequartz上でC/C++ CGIがどうしても動かせなくて困ってます。
gcc バージョン 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
コンパイルしたファイル(xxx.cgi)はコマンドラインからはちゃんと動くのですが、
これをブラウザから見ると、 「 xxx.cgi このファイルをダウンロードしますか?」となります。
もちろんapacheはちゃんと動いています。
これを回避してブラウザから
xxx.cgiの出力を見るようにするにはどこを変更すればよいのでしょうか
- 845 名前:nobodyさん :2005/01/21(金) 15:34:27 ID:???
- >>844適切なヘッダを吐いてから出力。
HTMLならtext/htmlとか。
- 846 名前:nobodyさん :2005/01/21(金) 15:53:20 ID:???
- >>844
マルチ?
すれ違いに気づいただけだよね。
- 847 名前:nobodyさん :2005/01/28(金) 19:38:24 ID:???
- >>834,836
トンチンカンでワロタ
- 848 名前:ぐぐっても見つけられんかった :2005/01/28(金) 21:12:40 ID:ox6Cyfvr
- mysql_errnoで1046が吐き出されるんですが、
考えられる原因は何でしょうか。。。
- 849 名前:nobodyさん :2005/01/28(金) 21:16:20 ID:???
- >>848
DBがありません
- 850 名前:nobodyさん :2005/01/28(金) 22:12:48 ID:???
- >>848
Error#1046,ER_NO_DB_ERROR,No Database Selected,データベースが選択されていません.
- 851 名前:nobodyさん :2005/01/29(土) 12:52:05 ID:???
- phpMyAdminについて質問します
−−−環境−−−
OS:windows2000 Pro
DB:mysql 4.1
PHP:5.0.3 SJIS設定
MyAdmin:2.6.1
サーバー:IIS
DocRoot:D:\WEB
MyAdminの設定で Language を japanease に設定をすると
Fatal error: Call to undefined function PMA_reloadNavigation() in D:\WEB\CGI_BIN\phpMyAdmin\header.inc.php on line 132
のメッセージが表示されます
他の言語に設定するとエラーは発生しません
インクルードファイルの読み込み出来ていないのかと思ってファイルの最後に
echoを書いてチェックしてみると読み込みは出来ています
テーブルを追加する最にコメントに日本語が入っていると
Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in D:\WEB\CGI_BIN\phpMyAdmin\libraries\string.lib.php on line 112
のエラーも表示されます
どのように設定したらいいか教えてください
都合で今はIISしか使えない状況です
- 852 名前:nobodyさん :2005/01/31(月) 00:03:31 ID:BLcpMt62
- 現在のパスワードに
"'() の文字を使ってるのを修正する場合、どうすればいいのでしょうか。
set password for root="'()('newpassword');
でできないっす
- 853 名前:EK :2005/01/31(月) 00:04:33 ID:pCNLnhtE
- 超くだらない質問なんですが,助けてください.
mySQLで
| name | tel | email |
-----------------
| hoge | 090 | a@a.jp|
| moe | 090 | b@b.jp|
| are | 080 | c@c.jp|
.....
とかの構造を,
| tel | name | email |
-----------------
| 090 | hoge | a@a.jp|
| 090 | moe | b@b.jp|
| 080 | are | c@c.jp|
.....
に変更するにはどのようにすればいいのでしょう?
- 854 名前:nobodyさん :2005/01/31(月) 01:49:23 ID:???
- >>853
SELECTするときに順序かえる。
データベースを理解して無いみたいだが、
気になるならALTERすれば?
- 855 名前:EK :2005/01/31(月) 08:49:37 ID:abXFv+ha
- ALTERの方法が知りたいです.
- 856 名前:nobodyさん :2005/01/31(月) 11:36:27 ID:???
- >>855
マニュアル嫁としか言えん
- 857 名前:nobodyさん :2005/02/01(火) 06:06:35 ID:Ous9jt79
- 4.1をインスコしたんですけど(コンフィグ設定はsjis選択)、
コマンドプロンプトから2バイト文字のデータを入れると文字化けします。
jspを使ってブラウザからsjisで入れたり出したりする分には
いまのところ正しくできてるっぽいのですが、
そのデータをコマンドプロンプトでみるとやはり文字化けしてます。
4.0を使ってるときはコマンドプロンプトで出し入れするのも
データを見るのも文字化けせず大丈夫だったんですが、
何がいけないのでしょうか?直す方法はありますでしょうか。
- 858 名前:857 :2005/02/01(火) 06:50:26 ID:Ous9jt79
- 書き忘れましたがW2Kです。よろしくお願いします。
- 859 名前:nobodyさん :2005/02/01(火) 07:04:49 ID:???
- >>857
MLのログやMyNAのFAQ嫁
- 860 名前:nobodyさん :2005/02/01(火) 08:56:41 ID:???
- MySQL 3.23.58を使い始めた者です。
+--+--------+-----+
| id | name | price |
+--+--------+-----+
| 01 | hoge | 100 |
| 02 | fuga | 200 |
| 03| puni | 200 |
| 04 | hage | 100 |
……
ここで、価格:100(2件)〜200(2件)というように
最低価格、最高価格とその件数を導きたいのですが、
どのようなクエリをかけばよろしいでしょうか。
今はMAX()とMIN()で最大・最小値は求められるのですが
その件数が上手く求められないのです。
よろしくお願いいたします。
- 861 名前:nobodyさん :2005/02/01(火) 15:17:48 ID:???
- >>860
COUNT()
- 862 名前:nobodyさん :2005/02/01(火) 15:17:47 ID:???
- SELECT ( bin(6) / bin(4) ) - ( FLOOR(bin(6) / bin(4) ) ) , ( bin(2) / bin(4) ) - ( FLOOR(bin(2) / bin(4) ) )
これを計算してみると 0.10 0.10 と2つ等しい結果が得られるのですが、
SELECT * FROM `table` WHERE ( bin(6) / bin(4) ) - ( FLOOR(bin(6) / bin(4) ) ) = ( bin(2) / bin(4) ) - ( FLOOR(bin(2) / bin(4) ) )
というふうにWHEREにした時だけ何故か等しくならず、テーブルの中身が全く表示されません。
これはSQLのバグでしょうか?それとも何か間違っているのでしょうか?
2進法計算で込み入っていて申し訳ないのですが、どなたかご存知でしたら教えて下さい。
- 863 名前:857 :2005/02/01(火) 17:25:28 ID:Ous9jt79
- >>859
my.iniをsjis設定にしてもかわらず。
コマンドプロンプト立ち上げるたびに「set names sjis;」するしか
ないのでしょうか。
- 864 名前:nobodyさん :2005/02/01(火) 19:40:16 ID:???
- >>863
いや、それは面倒くさいやろ。
クライアントライブラリのエンコードを自分の欲しいものに
きちんと指定して再度コンパイルでOK。
- 865 名前:nobodyさん :2005/02/02(水) 04:43:23 ID:???
- >>864
そうですか。それはちょっと敷居が高い…
とりあえずブラウザから使う分には問題なさそうだから余裕ができたらチャレンジします。
ありがとうございました。
- 866 名前:nobodyさん :2005/02/02(水) 05:05:35 ID:TSxm2UhN
- phpMyAdminで
char(16)のカラムを作ろうとしてもvarchar(16)になりますが
何故でしょうか?
- 867 名前:nobodyさん :2005/02/02(水) 09:49:46 ID:???
- >>866
暗黙の型変換。詳細はマニュアル嫁
- 868 名前:nobodyさん :2005/02/04(金) 00:22:56 ID:FzOGXEjc
- Apache+PHP+Mysqlをいれて
phpmyadminをいれて、接続したら真っ白な表示がされるだけです。
どのあたりを見ればいいのでしょうか?
- 869 名前:nobodyさん :2005/02/04(金) 00:26:44 ID:???
- >>868
PHPのエラーログ。つかエラーを表示させるようにPHP設定しなさい
- 870 名前:nobodyさん :2005/02/04(金) 00:35:52 ID:FzOGXEjc
- すいません。の設定はどこでしょうか?
- 871 名前:nobodyさん :2005/02/04(金) 01:08:16 ID:???
- >>816
オラクルなら
select 項目 , count(*) from テーブル名 group by 項目
- 872 名前:質問です :2005/02/11(金) 01:47:17 ID:bxpVru70
- MySQLでテンポラリテーブルを見るにはどうしたらいいのでしょうか?
もちろん、select文で表示はできるのですが、
show tables;
では見れないですよね?
そもそもメモリ上にあるテンポラリテーブルは見れない仕様なのでしょうか?
- 873 名前:nobodyさん :2005/02/18(金) 01:17:47 ID:oRUItyUu
- 1クエリで、
あるカラムをインクリメントして、その値を取得することは可能でしょうか?
- 874 名前:sage :2005/02/24(木) 23:50:55 ID:MSi8NK1E
- ロックの権限の設定はglantでできるんですか?
ロックの権限の確認方法はどうすればできますか?
- 875 名前:nobodyさん :2005/02/25(金) 20:01:28 ID:QqsT661L
- 助けてください。
本日 RedHut9にMysql4.1.10をrpmでインストールしました。
現在STATUSを表示すると
Connection id: 15
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.10-Max-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: ujis
Client characterset: ujis
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
セグメンテーション違反です
となってしまします。
どうしたらいいのでしょう・・・
- 876 名前:nobodyさん :2005/02/25(金) 23:04:54 ID:???
- MySQLのユーザーをスクリプトなどで自動的に追加できるよう出来ませんか?
CGIでコマンド発行してみても受け付けて貰えなかったです。
PHPのMySQL関数には、ユーザー作成に関する物がないみたいですし。
宜しくお願いします
- 877 名前:nobodyさん :2005/02/25(金) 23:12:53 ID:???
- >>876
普通にmysqladminで発行できるが...マニュアル100回読んできな。
mysqlにユーザ作成コマンドをぶち込んでも同様にできると思うけど、
明確にadmin操作と一般操作は分けといた方が管理上は良い。
- 878 名前:nobodyさん :2005/02/25(金) 23:26:47 ID:???
- >>877
mysqladmin ユーザ追加のコマンドがありましたっけ?
マニュアル見てもその辺り載ってないんですが。
CGIやPHPでGrantコマンドを投げても実行されないんで困ってます。
- 879 名前:nobodyさん :2005/02/25(金) 23:57:23 ID:???
- >>878
サーバー管理者に聞くか、マニュアルを100回読むのがいいと思う。
接続に使用してるmysqlアカウントにgrant権限がないとかそういうことでしょ。
あと、マルチはどこへいっても嫌われるぞ。
- 880 名前:nobodyさん :2005/02/26(土) 00:21:18 ID:???
- >>878
ごめん、adduserコマンドは俺拡張(中身はGRANT)...
回線切っ首。
スクリプトからGRANT発行して駄目なのは、
adminのアカウントを使ってないためか、
GRANT権限に制限のあるmysqlユーザだとか、その辺では?
コマンドライン上で同じものを指定して試行してみれ。
- 881 名前:nobodyさん :2005/02/26(土) 00:45:55 ID:???
- >>880
ありがとうございます。
練習用として自宅サーバに入れたMySQL使ってますんで、
adminアカウントでやってます。
mysqlのコマンドライン上にてgrantするとちゃんとユーザが追加されるんですが、
phpのsystem関数でコマンド投げても受け付けて貰えません。
・・そもそもやり方が間違ってるような気もするのですが、
phpの関数にユーザ追加ってのが無いですし、どうしたものかと思いまして。
何か他のやり方があるのでしょうか?
- 882 名前:nobodyさん :2005/02/26(土) 02:00:38 ID:???
- ただ「受け付けて貰えない」だけじゃなく、必ずエラーを吐いてるはずだから
なんとかしてそのエラーを見つけてきたまい
- 883 名前:nobodyさん :2005/02/26(土) 03:38:26 ID:???
- >>881
PHPからやるならMySQL関数でadminアカウントを指定し
GRANTのクエリを発行すれば良いです。
system関数で駄目なのは根本的にコマンドが通ってないと思われるので
もっと簡単なコマンドを発行してみて結果がどのように返ってるか
を確認しながら作業すべし。
- 884 名前:nobodyさん :2005/02/26(土) 08:26:26 ID:???
- >>882
>>883
了解です。
アドバイスを参考に、もう一度最初から見直してみます。
ありがとうございました。
- 885 名前:nobodyさん :2005/02/28(月) 12:49:34 ID:???
- PostgreSQLからMySQLに乗り換える際に、データを効率よく引き継ぐ方法はありますか?
パーミッションなどは引き継げなくても、テーブルの中身だけでもOKです。
- 886 名前:nobodyさん :2005/02/28(月) 13:36:59 ID:???
- >>885
MySQL→PostgreSQLでもそうだけど、dumpして流し込み。
ただ、どちらにせよ型のマッチや予約語あたりはちょこっと気にせんとね。
- 887 名前:885 :2005/02/28(月) 14:31:31 ID:???
- テーブルを作るところはちょっとした修正でうまくいくのですが、
PostgreSQLのdumpは、COPYというコマンドで値をセットしているのに対し、
MySQLのdumpは、INSERTコマンドを繰り返してセットしており、
COPYコマンドは受け付けてくれないみたいなのです。
- 888 名前:nobodyさん :2005/02/28(月) 14:34:29 ID:???
- >>886
ほんとにすいません。pg_dumpのオプションに、こんなのがありました。
-d, --inserts dump data as INSERT, rather than COPY, commands
-D, --column-inserts dump data as INSERT commands with column names
あとは手動でどうにかします。
- 889 名前:nobodyさん :2005/02/28(月) 20:05:19 ID:???
php.ini において、magic_quotes_gcp = on にしていれば、
SQLインジェクションに対して安全でしょうか?
やはり
mysql_real_escape_string() とか mysql_escape_string() とか addslashes を
使うべきでしょうか?
- 890 名前:nobodyさん :2005/03/02(木) 18:12:04 ID:???
- Fedora Core 3標準のMySQL 3.23.58を使っています。主な用途はxoopsです。
FC3での日本語がutf-8なので、MySQLにutf-8で日本語を詰め込んでしまいました。
このMySQL上のデータベースを、MyODBC経由でMS-Windowsから操作したいのですが、
utf-8を正しく扱えるMyODBCドライバ、もしくは関連する情報をお持ちでしたら教えて頂けませんか?
- 891 名前:890 :2005/03/03(金) 16:39:07 ID:???
- >>890
もちろん、utf-8を完璧に扱えなくても、主要な日本語が通ればOKです。
- 892 名前:nobodyさん :2005/03/05(日) 02:18:48 ID:80ZPRUuI
- ある月の範囲内のdateカラムを探す時、どうやるのがベストでしょうか?
私は
where date like '2005-03%'
としていますが、これは妥当なのでしょうか?
- 893 名前:nobodyさん :2005/03/05(日) 11:51:20 ID:???
- 3.3.4.5 日付の計算
- 894 名前:nobodyさん :2005/03/06(月) 07:58:57 ID:???
- 最近勉強し始めたばかりの者なんですけども、
エディタって何使ってますか?
もちろんコマンドから操作すれば不要なのは分かるんですが、
phpmyadminみたいに、sqlコマンドが色分けされる(デフォになくても
SQL用の強調表示ファイルが存在する)エディタがあれば良いなぁと。
- 895 名前:890 :2005/03/10(金) 18:17:59 ID:???
- >>890
mysql4にすれば、SET CHARACTER SETでコードを設定できますね。
mysql4にあげてみることにします。
ありがとうございました。
- 896 名前:nobodyさん :2005/03/12(日) 16:14:26 ID:nH5XpFGK
- 4.0を使っています。
記録されていたデータを全部deleteしたにもかかわらず、
新しくデータを記録するとauto_inclementのint型フィールドの値が、
消す前の続きから始まってしまいます。
これは仕様ですか?
- 897 名前:nobodyさん :2005/03/12(日) 16:23:53 ID:nH5XpFGK
- 追記ですが、もし仕様だとしたら巻き戻す方法はないでしょうか。
適当にデータを入れ、Updateして無理やり1にしてみましたが、
更にまた新しくデータを追加してみると、2ではなく
消す前の値の続きからになってしまいます。
- 898 名前:nobodyさん :2005/03/12(日) 16:50:21 ID:???
- 特定のシーケンス番号が必要ならそもそもauto_incrementを使うのは
間違ってる。
last_insert_id()はコネクションごとにIDを保持するから、一度コネクションを
切ってから再接続してやってみたら1から始まるかもしれない。
- 899 名前:nobodyさん :2005/03/12(日) 17:33:01 ID:???
- >>896
一旦、カラムを削除して、そのカラムを作成しなおせば、1から始まるはず。
- 900 名前:nobodyさん :2005/03/12(日) 19:27:21 ID:???
- 長いクエリについて
PHP+MySQLで組んでます。
項目が多いのでクエリが長いんですよね・・・
で、ダラダラと横一列に書くのではなく、各カラム毎に改行して見やすくしたいのですが、
どうすれば良いのでしょうか?
__ ←を使うと良かったと思うのですが・・・
宜しくです。m(_ _)m
- 901 名前:nobodyさん :2005/03/13(月) 08:03:18 ID:???
- >>898>>899
結局作り直してしまいましたが、今後の参考にします。
ありがとう。
- 902 名前:nobodyさん :2005/03/15(水) 02:06:06 ID:???
- >>901
ああ、手遅れか。
ALTER TABLE table_name AUTO_INCREMENT=0;
>>898
とてつもなく勘違いしてるな。
- 903 名前:nobodyさん :2005/03/15(水) 16:08:27 ID:veLUi2yw
- 同じテーブルに二つ以上primary keyを持ったフィールドを指定する事が出来ない。
でも検索をする時に各値が一意なものであることが分かっていれば、
一つ目の該当レコードを見つけた時点で検索を打ち切る事が出来て効率化するはず。
だから二つ以上のフィールドに一意である事を示したいのだけど、やり方がわからない。
もしかしたらフィールド作成時に明示しなくてもMySQLが勝手に判断してくれるのかも?
教えてください。
- 904 名前:nobodyさん :2005/03/15(水) 16:26:07 ID:???
- unique index を学べ
- 905 名前:nobodyさん :2005/03/15(水) 20:58:58 ID:???
- >>900
$sql = "SELECT * FROM Table "
."WHERE Field1=100 "
."AND Field2=200;";
- 906 名前:nobodyさん :2005/03/15(水) 21:54:03 ID:???
- >>900
えぇえぇっ!
俺普通に、
$sql = "SELECT * FROM Table
WHERE Field1=100
AND Field2=200";
って適度に改行して書いてるんだけど…
- 907 名前:nobodyさん :2005/03/15(水) 22:05:17 ID:???
- だから何
- 908 名前:nobodyさん :2005/03/15(水) 22:05:48 ID:???
- ごめん 906 へのレスかと思った
- 909 名前:nobodyさん :2005/03/15(水) 22:06:16 ID:???
- ごめん 905 と書くところを 906 と書いてしまった
- 910 名前:nobodyさん :2005/03/15(水) 22:21:40 ID:???
- >>906
print $sql;
してhtmlソース見てごらん
- 911 名前:nobodyさん :2005/03/15(水) 22:47:33 ID:???
- >>906
それ、連続した無用なスペースと改行が$sqlに入るけど
mysql_query()に渡す前にちゃんと処理してんの?
それともほったらかし?
- 912 名前:nobodyさん :2005/03/16(木) 00:17:04 ID:???
- 書き方が話題になってるので便乗質問。
参考書などで、よく、
$sql = ""; ←これ
$sql .= " SELECT * FROM table"
・・・
と見かけるんだけど、
この1行目はどういう意味があるんでしょうか。。。
- 913 名前:nobodyさん :2005/03/16(木) 00:59:58 ID:???
- >>910
mysql_queryかける時点で、そのままんま
改行と空白がいくらあっても無問題だろ。
- 914 名前:nobodyさん :2005/03/16(木) 01:09:38 ID:???
- >>913
それをいっちゃおしまいよ。
SQL文の書き方の「美しさ」の問題だから
- 915 名前:nobodyさん :2005/03/16(木) 01:13:02 ID:???
- >>912
前後のソースを見ないと何ともいえんが、変数になんか入れておかないと
エラーになる場合があるから、保険みたいなもんだ。
- 916 名前:nobodyさん :2005/03/16(木) 02:42:06 ID:???
- >>914
SQL文の美しさより、PHPソースの美しさ
- 917 名前:nobodyさん :2005/03/16(木) 07:40:11 ID:???
- >>912
無いと変数が未定義でNotice error
- 918 名前:nobodyさん :2005/03/16(木) 09:52:20 ID:???
- >>917
.= の場合ね。
- 919 名前:nobodyさん :2005/03/16(木) 10:43:33 ID:???
- >>917
それもあるけど、""で初期化の意味合いが強いと思う。
$sqlなんてクエリ文字列用の変数として使いまわす可能性が
高いし、中に何か入ってるか判らないところに結合するのは怖い。
- 920 名前:nobodyさん :2005/03/16(木) 10:46:46 ID:???
- 内部的には「.=」はコピーして新規だったと思うので、
最初から「=」として代入しないのは、無駄といえば無駄だけどね。
- 921 名前:nobodyさん :2005/03/16(木) 12:32:40 ID:???
- $sql = " SELECT * FROM table";
で十分
- 922 名前:nobodyさん :2005/03/18(土) 17:04:41 ID:???
- SQL文を書くときは複数行にわたるわけで
$sql.=" select";
$sql.=" 名前 as name";
$sql.=" 年齢 as age";
$sql.=" from 個人情報";
$sql.=" where";
$sql.=" 店舗ID=".$t_id;
$sql.=" 性別=".$sex;
$sql.= ...........
最初のselectだけドットをつけないのを見逃すかもしれない
単純なselect一発なら大丈夫だと思うけどね
だからSQL文は全て .= にしてその代わり
$sql="";
を頭に置く
ちなみに漏れもよくやる
コピー&ペーストで楽ができるからね
- 923 名前:nobodyさん :2005/03/18(土) 17:14:47 ID:???
- >>922
だったら、>>906みたいに書きゃいいじゃんジャン
- 924 名前:nobodyさん :2005/03/18(土) 17:18:07 ID:???
- 書き方は個人の好みの問題だからどうでもいい
- 925 名前:nobodyさん :2005/03/18(土) 17:58:45 ID:???
- >>923
それだとスペースと改行が入っちまうじゃん。
とはいえ長さが問題になるほどのクエリーになるとも限らんし、
クエリのサニタイズの処理で考慮しえあるなら、別にいいけどな。
- 926 名前:nobodyさん :2005/03/18(土) 18:14:55 ID:???
- >>925
だから、スペース改行無問題だっての
- 927 名前:nobodyさん :2005/03/18(土) 18:43:03 ID:???
- >>926
書き間違えが多い文章になったが、最後の2行を読んで理解してくれ。
$sqlをその後どう使うかは判らん場合「無問題」とは言えないだろ。
- 928 名前:nobodyさん :2005/03/18(土) 20:14:49 ID:???
- てかスペースが無駄に入るSQLは美しくない。
美しさを無視する奴はプログラマ失格。
「いいじゃん、動けば」
- 929 名前:nobodyさん :2005/03/18(土) 21:09:30 ID:???
- 美しさ≠効率的
- 930 名前:nobodyさん :2005/03/18(土) 22:38:57 ID:???
- クエリなんてレスポンス重視で書けばいいんだよ
- 931 名前:nobodyさん :2005/03/18(土) 23:41:11 ID:???
- 効率的≒美しさ
- 932 名前:nobodyさん :2005/03/18(土) 23:45:27 ID:???
- 論理的な美しさにはこだわって欲しいが、見た目の美しさは割とどうでもよい
- 933 名前:nobodyさん :2005/03/19(日) 02:39:53 ID:???
- こぴぺした時に問題が発生しにくいっていうのは作業量によっては利点となるな
- 934 名前:nobodyさん :2005/03/23(水) 03:45:21 ID:???
- コーディング規則はいろいろってことで
- 935 名前:PHP初心者 :2005/03/24(木) 00:01:54 ID:vk1AucmH
- id | name | rosen1 | rosen2
1 | 山田 | 山手線 | 中央線
2 | 田中 | 埼京線 | 山手線
3 | 加藤 | 総武線 | 京王線
山手線を使用している人を表示したい場合など、
複数のフィールドからの検索は可能でしょうか?
rosen1から山手線を検索して表示する場合は、
select * from aiueo where rosen1 like '山手線'
とすれば山田さんが表示されるのですが、
rosen1とrosen2の両方から検索し、山田さんと田中さんを表示させることは可能でしょうか?
- 936 名前:nobodyさん :2005/03/24(木) 05:24:05 ID:???
- >>935
or
- 937 名前:PHP初心者 :2005/03/24(木) 17:13:57 ID:aYVGSrBn
- 936さん、ありがとうございました。
「or」で上手くいきました!
- 938 名前:nobodyさん :2005/03/25(金) 18:57:02 ID:???
- A、B 共にユニークではないフィールドがあります。
このA、Bの組み合わせをユニークにすることはできますか?
現状、
1、SELECT の where a=A AND b=B で行数を取得。
2、1が0ならINSERT。
のようにしていますができたら1回だけでINSERTしたいのですが、、、
- 939 名前:nobodyさん :2005/03/30(水) 11:51:00 ID:???
- >>938
それってAとBの中身によるんじゃないの。
例えばAの3番目と5番目のレコードが同一でユニークになっていなくてそれ以外はユニークで、
Bも3番目と5番目のレコードが同一でユニークになっていなくてそれ以外はユニークな場合、
AとBを組み合わせた時3番目と5番目が同一のものになりユニークにならない。
でも例えばBが2番目と4番目のみが同一な場合はユニークになるけどね。
ただしAとBでおよそ被らないであろう全く異なるデータを扱っているという前提で、だが。
同一レコードが何番目にあるのかをABそれぞれで調べて被ってないかを調べればユニークになるかどうかは分かる。
- 940 名前:nobodyさん :皇紀2665/04/01(金) 22:01:15 ID:???
- april
- 941 名前:nobodyさん :2005/04/02(土) 10:44:26 ID:ftpZSEGb
- auto_incrementじゃないintのprimary keyで、
レコードが追加される時に
このプライマリキーを用いた降順あるいは昇順にソートして追加していきたいんだけど
mysqlにこれをやってくれる機能はありますか?
- 942 名前:nobodyさん :2005/04/02(土) 13:06:49 ID:???
- max ○○
- 943 名前:nobodyさん :2005/04/02(土) 20:10:05 ID:???
- >>941
RDBのテーブルはINSERT時に格納順序を指定することはできない
順序はSELECTするときに指定するもの
- 944 名前:nobodyさん :2005/04/05(火) 09:09:14 ID:R5kNClWz
- intのprimary keyフィールドがあり、
検索条件に該当するレコードがprimary keyの特定の範囲内にしか存在する可能性が無いと分かっている時、
その範囲を検索条件で指定する事は出来ませんか?
検索回数の減少に繋がると思うのですが。
- 945 名前:944 :2005/04/05(火) 09:18:22 ID:???
- 付け足し。
単純にwhere primarykey > 下限 and primarykey < 上限とすると、
全てのレコードに対してこの条件に一致するかが比較されてしまいそうですが、
直接下限から上限の間のprimarykeyのみに絞って比較を行いたいという事です。
indexを作成しておけば2行目の条件式で4行目の処理をmysqlが自動的にやるんでしょうか。
- 946 名前:nobodyさん :2005/04/05(火) 11:26:06 ID:???
- 以下の処理をmysqlで行う事は出来ますか?
縦がフィールド横がレコードと見た時の1マスに複数のデータを持たせて、
検索時に複数レコードがヒットした時に、被っているデータはまとめて出力したいのです。
レコード1のAフィールド{1,2,3,4,5}
レコード2のAフィールド{3,4,5,6,7}
とある時、レコード1と2がヒットしたらAフィールドの内容として{1,2,3,4,5,6,7}と出力したいという事です。
{1,2,3,4,5,3,4,5,6,7}と単純に内容をつなげて出力するのであれば、
各データをコンマで区切った文字列として入力してあるものを繋げて出力するだけで済みそうですが、
まとめて出力する方法が思いつきません。
これに相当するような処理でも構わないのですが何か方法はあるでしょうか?
- 947 名前:nobodyさん :2005/04/05(火) 16:53:51 ID:???
- >>944-945
整数型のカラムだったら単純に、インデックスを張る=効率的に検索してくれる
と考えてオーケー。
それよか SQL には between という指定方法もあることを覚えておいてほしい。
- 948 名前:nobodyさん :2005/04/05(火) 17:02:09 ID:???
- >>946
1マス…っていうか1カラムに複数のデータを突っこむのは
RDBの特長や性能を殺すようなものだからやめといたほうがいい。
その例だと本来は10レコードになるように表を設計する。
そうしておけば重複をまとめるのは distinct で一発でできる。
- 949 名前:nobodyさん :2005/04/05(火) 17:29:54 ID:???
- >>946
セパレータで結合する関数はあるが分割する関数は無い(と思う)から無理じゃね
PHPとかと組み合わせたら何でもできるけど
- 950 名前:nobodyさん :2005/04/05(火) 19:45:52 ID:???
- 文字列型だと255文字以上使えて、10進数で255桁以上も表せるのに、
数値型だと符号なしbigintでも20桁しか使えない。(40桁くらいの数字を扱いたいのに・・・)
なんで?
文字型は数字以外の文字もカバーしてる分、余計にデータが長くなると思うのだけど。
たぶん数値型は内部では2進数で直接数量が表されてるよね?
もしそうだったら文字型よりだいぶ短そうなのに。
色んな演算を加える可能性があるから数値型は短いものしかダメなのだとしたら、
演算をしないけども数字ばかりのデータを扱う場合は文字列型が適してる?
- 951 名前:nobodyさん :2005/04/06(水) 07:35:39 ID:???
- >>950
ちなみに40桁の数字って何で使うものなの。天文学?
- 952 名前:nobodyさん :2005/04/06(水) 08:41:59 ID:???
- >>950
「何で?」つうかデータベースは今も昔も
別に学術的な数値計算を行うシステムではないので。
データベースに限らず今のマイクロプロセッサの設計に置いてもね。
SQLでどうしてもやりたいなら、MySQLのユーザ関数に計算ライブラリを
組み込む手もあるが、データベースは単にデータを蓄積するものとして、
(ここはWebProg板だし、それっぽく)PHPのGMP関数で処理するのが良いんじゃね。
- 953 名前:nobodyさん :2005/04/06(水) 09:43:35 ID:???
- >>950
なんでという理由なら一般のCコンパイラの整数値が
long 型の、-9223372036854775808 〜 9223372036854775807 の範囲までしか扱えないから
でしょう
- 954 名前:nobodyさん :2005/04/07(木) 12:34:57 ID:M6scFfsm
- 複数の同様なフィールド構成のテーブルの中からいくつかのテーブルを選び検索をしたいのですが、
select field from table1,table2,table3;
という記述ではemptyしか出ません。
このような記述では出来ないのでしょうか?
それと、mergeテーブルというものがあるようですが、MyISAMにしか対応していないようで、
トランザクションセーフで無ければならないので困っています。
- 955 名前:nobodyさん :2005/04/07(木) 13:29:43 ID:???
- >>954
各テーブルごとに検索を繰り返すしかないと思う
- 956 名前:nobodyさん :2005/04/07(木) 18:10:36 ID:???
- >>954
unionとか
- 957 名前:nobodyさん :2005/04/09(土) 12:13:03 ID:???
- mergeテーブルの中の動的な複数のテーブルを通してauto_incrementされるフィールドを作る事は出来ますか?
レコードが追加される可能性のあるテーブルが一つで他は静的なテーブルであればやり方が分かるのですが、
全てのテーブルにレコード追加の可能性がある場合です。
- 958 名前:nobodyさん :2005/04/10(日) 20:55:02 ID:???
- update table set field = field.string where no = int;
と書いてみたのですがfield = field.stringのところでエラーが出ます。
field = field.'string'等も試したのですがダメでした。
文字列を追加するにはどう記述すれば良いのですか?
- 959 名前:nobodyさん :2005/04/11(月) 08:47:21 ID:???
- >>958
文字列の結合?
concat()でできないですか。
- 960 名前:nobodyさん :2005/04/11(月) 13:48:48 ID:???
- >>959
出来ました。
ありがとう!
- 961 名前:nobodyさん :2005/04/11(月) 15:04:52 ID:AZghOiam
- PHP+mysqlで、and検索をやってみようと思って考えたのですが、
POSTで受け取ったスペース区切りキーワードをexplodeして、
for($i=0;$i<$countKey;$i++){
$wheresql .= "search like '%{$keyArray[$i]}%' and ";
}
(search=検索ワードを詰め込んだカラム)
って感じで繋いで、where $wheresqlしたんですが、結果は通ってうまくいくときはあるんですが、結果0になったり、それらのワードが含まれてるのに出ないレコードがあったりします。。
どこか根本的に間違っているのでしょうか・・・。
and検索って普通どうやってやるんですか?
- 962 名前:nobodyさん :2005/04/11(月) 15:33:57 ID:???
- >>961
スペースが連続したり全角スペースの場合を考慮すれば、preg_split()が望ましいと思う。
あとはforeachとかで回しながらqueryを作ればいい。
likeと%の意味は理解してるかな?
- 963 名前:961 :2005/04/11(月) 16:21:22 ID:???
- >>961
ありがとうございます。
一応
$keyword = str_replace(' ',',',$keyword);
$keywords = str_replace(' ',',',$keyword);
こんな感じで全半スペースを,に変えてexplodeしてました。
likeは、パターンに一致、前後%%は前後に〜○○〜と続く、みたいな意味でしたっけ。。
それだと、前に何もない文字列が引っ掛からなくなりますか・・・ためしに、loopで回す文字列を
$wheresql .= (search like \"%{$keyarray[$i]}%\" or search like \"%{$keyarray[$i]}\" or search like \"{$keyarray[$i]}%\") and "
にしてみましたが結果変わらず・・・。
- 964 名前:nobodyさん :2005/04/11(月) 20:03:55 ID:zHJjbS9v
- mysqlの全文インデックスについて、対象となる文字コードは限定されているのでしょうか?
- 965 名前:nobodyさん :2005/04/11(月) 21:07:58 ID:???
- >>964
文字コードは特に限定はされてなかった筈。ただ単語と認識するのが
スペースでセパレートされてるワードだけなんで、
そういう作りではない言語(日本語とか韓国語とか中国語とか)には
そのままでは使えない。
- 966 名前:nobodyさん :2005/04/12(火) 00:26:29 ID:FxpxEm5t
- like検索で、私も苦しんでいます。
私の環境は、PHP(4.3.10) + MySQL(3.23.58)、文字コードはEUCです。
2バイト文字を含む部分一致のlike検索において、以下のような問題が起きます。
「L」(全角のエル)を検索した場合に、「藤木」を含む文字列にヒットします。
原因は、Lをあらわす文字コードが、藤木の藤の後ろ半分と、木の前半分を同じ
であることでした。
binaryにすれば大丈夫という話を見かけたので、この2バイトの文字列は、
それまでtext型で持っていたのですが、BLOB型にしました。
like検索の高速化を図った4.X系列では2バイト文字列を考慮していないため、
こういう症状が出るバージョンがあると見たのですが、3.23.58もそうなのでしょうか?
解決策があるなら、ご紹介いただければ、幸いです。
- 967 名前:nobodyさん :2005/04/12(火) 09:45:57 ID:???
- PostgreSQL なら簡単なのに
- 968 名前:nobodyさん :2005/04/12(火) 15:23:41 ID:6tLufYli
- mysql4.024なんだけどカラム名を日本語にしても問題ない?
- 969 名前:nobodyさん :2005/04/12(火) 20:03:28 ID:???
- PHP+MySQLで、
SELECT * FROM table WHERE id=1というクエリを実行した時、
id=1のデータは無いのに検索に成功し、エラーを吐かずに処理を続行してしまいます。
同じ処理をPerlで行った時は成功するのですが何が原因なのでしょうか?
環境はWin+Apache1+PHP4+MySQL4.0.18
文字コードはスクリプト、データともEUCです。
- 970 名前:nobodyさん :2005/04/12(火) 21:26:03 ID:???
- データがないときの処理とかをphpで条件分岐させれば
よいのでは。それ以上はわかりません(素人でつ)。
- 971 名前:nobodyさん :2005/04/12(火) 21:40:38 ID:???
- >>969
> SELECT * FROM table WHERE id=1というクエリを実行した時、
> id=1のデータは無いのに検索に成功し、エラーを吐かずに処理を続行してしまいます。
検索に成功した。(ただし、Hitしたのは、0個。)
こういう結果が返ってきてる。
つまり、アルゴリズムが変。つーか、MySql関数が返す値をマニュアルで調べるべし。
- 972 名前:nobodyさん :2005/04/13(水) 00:09:23 ID:P5BMPkuz
- フィールド、テーブル、データベース等が削除された時に、
そこに使われていたインデックスも削除されるんですか?
- 973 名前:nobodyさん :2005/04/13(水) 00:29:48 ID:???
- >>972
意味不明
- 974 名前:969 :2005/04/13(水) 00:51:56 ID:???
- >>970-971
返信ありがとうございます。解決できました。
エラートラップにorを使っていたのが拙かったようです。
if文に変えたら正常に動作しました。
- 975 名前:969 :2005/04/13(水) 01:30:22 ID:8dY+nynK
- と思ったら全然関係ありませんでした。
もしかしてmyslq_queryの成否って検索結果とは関係ありませんか?
クエリでたらめにしたらエラートラップ引っかかりました。
検索結果に対しては別にエラー処理を考える必要があったってことですね。
- 976 名前:nobodyさん :2005/04/13(水) 03:20:49 ID:???
- mysql_num_rows() でええやん
- 977 名前:nobodyさん :2005/04/13(水) 03:24:39 ID:???
- >>975
そうだよ。
クエリーとは、データベースに対して、これこれこういう条件のデータを探してくれ、という”問い合わせ”の事だ。
これに対して、データベースは、こんなんが有るよ。あるいは、そんなの無いや。等を返す。
つまり、クエリー(問い合わせ)は”成功”している。”無いよ”と言うのも立派な答えだ。
mywql_queryがエラーを返すのは、”問い合わせ方がおかしいだろ!”とか、"そんなテーブルなんてねーよ!"ってな時だ。
マニュアルを読みなさい。
- 978 名前:nobodyさん :2005/04/13(水) 18:42:29 ID:P5BMPkuz
- my.iniのdefault-character-setがインストール時にlatin1になってますが、
でもこの状態でもマルチバイト文字列のデータを格納・出力出来ますよね。
(latin1は西欧の文字コードのはずなのに)
my.iniで設定しているdefault-character-setって何に影響するんですか?
- 979 名前:nobodyさん :2005/04/13(水) 18:45:22 ID:???
- ソートとか。
- 980 名前:nobodyさん :2005/04/13(水) 19:01:21 ID:???
- >>978
latin1ではAとaを同一視して扱う処理になる場合がある。
代表的なのは>>979とかね。
- 981 名前:nobodyさん :2005/04/14(木) 20:30:02 ID:ujiybS0C
- MySQLはコマンドプロンプトでquitで終了しないと駄目なんですか?
間違ってquiteと打ち込んだら->が出て
それ以降、何を打ち込んでも受け付けてくれなくなりました;
回避策教えてくださいm__m
- 982 名前:981 :2005/04/14(木) 20:38:08 ID:???
- ¥Cってかいてありましたスイマセン
終了せずにウィンドの×ボタンで閉じるのは駄目ですか?
探してもそういうのが書いてあるのが見当たらないです、お願いします
- 983 名前:nobodyさん :2005/04/15(金) 00:47:26 ID:???
- >>979
さらにShift_JISでデータを入れようものなら、2バイト目にアルファベットが入っていて
aとAぐらいずれている漢字を同じ文字と見立ててしまう。
like でも別の文字が出てきちゃったりするお
EUC で入れても laten1 と宣言されたテーブルは同様に検索かましてくれます。
今だと何気にUTF-8が安全だったりするのかな?
- 984 名前:nobodyさん :2005/04/15(金) 13:24:18 ID:???
- >>981
ウィンドウのクローズでも、まあ良いけどね。
ただウィンドウのクローズの場合、mysqlとの接続を遮断するわけではないので
接続の遮断はタイムアウトにお任せだけど。
- 985 名前:nobodyさん :2005/04/15(金) 16:02:06 ID:???
- 次スレ
MySQL 総合 Part4
http://pc8.2ch.net/test/read.cgi/db/1108124655/
- 986 名前:nobodyさん :2005/04/15(金) 21:25:19 ID:+8mNx0eh
- enum型で、ある文字列が無ければいけない、あるいはあってはいけないという指定の仕方があったような
覚えがあるんですが(+とか-とか使ってたような)、
今ぐぐってみても見つけられませんでした。(リファレンスにも見当たらなかった)
私の勘違い?
- 987 名前:nobodyさん :2005/04/16(土) 09:27:48 ID:???
- >>981
そんなあなたに\q。
282 KB
戻る