5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

mysql ヘルプ!

1 :名無しさん@お腹いっぱい。:02/01/22 16:08 ID:kMbsTQE3
リモートから家(常時接続)のmysqlサーバにつなげません
状況を詳しく書きます
PHPが動くプロバイダーのディレクトリにおいた自分の家の
mysqlサーバを操作するPHPに
$db = mysql_connect("mysqlサーバのip:3306","ゆーざ","ぱす");
と書いたのですが、駄目でした。
どうすればいいのでしょうか?

2 :名無しさん@お腹いっぱい。:02/01/22 16:10 ID:???
で、エラーメッセージは?

3 :名無しさん@お腹いっぱい。:02/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 :名無しさん@お腹いっぱい。:02/01/22 16:21 ID:???
リモートにDBサーバを置いて つーのはやったことないからよくわからんが、
他の手段でそのリモートにあるmysqlサーバを使うのはできるの?

5 :名無しさん@お腹いっぱい。:02/01/22 16:23 ID:???
当然家のサーバーはポート開いてるよな?

6 :名無しさん@お腹いっぱい。:02/01/22 16:24 ID:???
MySQLはちょろっとしかやったことないがアクセス制限とかかかってないの?


7 :4:02/01/22 16:25 ID:???
>5  そういうことが言いたかった。 ウツダ。

8 :名無しさん@お腹いっぱい。:02/01/22 16:26 ID:kMbsTQE3
そのDBサーバーは自宅のPCにインストールしてあるので、
もちろんローカルにおいたPHPからは操作できます。
でもそのMYSQLサーバーのローカルIPアドレスを
PHPのmysql_connect関数にかいて、外のプロバイダーに
おいても接続できないと出てしまいます。ポートは
デフォルトでは3306ですよね・・ どうすればいいん
でしょうか。

9 :名無しさん@お腹いっぱい。:02/01/22 16:30 ID:???
すいません、ネタにマジレスしようとしていた私は爆死いたします。

10 :4:02/01/22 16:32 ID:???
>8
あー >>5-6 について考えてみよ〜

11 :名無しさん@お腹いっぱい。:02/01/22 16:33 ID:kMbsTQE3
5> 6>
家のポートというのは、要するにMYSQLを起動しているという
事ですか? 
アクセス制限はROOTでアクセスしてDBに入ろうと思ってるので、
大丈夫だと思いますが・・・

12 :名無しさん@お腹いっぱい。:02/01/22 16:53 ID:???
さて

まず>>1の接続している環境を考えてみよう。
ずっと接続されていると仮定して。
なんで外から中に接続できないのか。
やっぱり考えていただこうではないか。
めんどうかもしれないがネット接続関係の専門書をお勧めする。


13 :4:02/01/22 16:57 ID:???
>11 家のポートというのは、要するにMYSQLを起動しているという事
違う。

14 :名無しさん@お腹いっぱい。:02/01/22 16:58 ID:kMbsTQE3
すいません 分かりません
あのmysql_connect関数の引数のIPはMYSQLのenvironmentの
LOCALIPADRRESSというところの194.22.〜.〜でいいんですよね。
後、逆にどうやったら、プロバイダーにおいたPHPから
家のDBを操作できるようにできるんでしょうか?

15 :名無しさん@お腹いっぱい。:02/01/22 17:04 ID:???
>>12が密かに縦。。。

16 :名無しさん@お腹いっぱい。:02/01/22 17:05 ID:kMbsTQE3
13>ポートを開くというのは具体的にどうすれば
よいのですか?

17 :4:02/01/22 17:09 ID:???
>16 OSによります。

18 :名無しさん@お腹いっぱい。:02/01/22 17:16 ID:kMbsTQE3
>17 家のOSはウィン2000です。
プロバイダーのサーバはおそらくリナックスだと思います
もちろんMYSQLはconfigでwith-mysqlでついてました。

19 :4:02/01/22 17:24 ID:???
>18 ご自身で調べる努力を。 

ttp://www.byakuya-shobo.co.jp/hj21/vol4/jyouji.html

20 :名無しさん@お腹いっぱい。:02/01/22 17:29 ID:kMbsTQE3
19>わかりました。 関数使ってIP指定したら簡単にDBを操作できると
思ったんですが、そうは問屋がおろさないみたいですね。
まだまだハードルがありそうだ・・・

21 :名無しさん@お腹いっぱい。:02/01/22 17:44 ID:???
IPが。。。以下略

22 :名無しさん@お腹いっぱい。:02/01/22 17:46 ID:???
ポートが。。。以下略

23 :4:02/01/22 17:48 ID:???
>20 このスレでは全てを語り尽くせません。 パッシュシュビドゥバー♪
頑張れ。

24 :名無しさん@お腹いっぱい。:02/01/22 18:03 ID:kMbsTQE3
ところで何の本を読めばいいんでしょうか?
サーバー構築の本でしょうか?
プロバイダーのサーバはいじれないから、家のサーバーっていうか
PCか。それとmysqlサーバーの設定かな。

25 :4:02/01/22 18:16 ID:???
実際の設定は
ttp://www.oreilly.co.jp/BOOK/wnt2ksec/
とかかなぁ。よぅ知らんのよ。Windowsは付属のヘルプも充実してると思うが。
あと、知識用にTCP/IP接続の本かWebページ。

26 :名無しさん@お腹いっぱい。:02/01/22 18:32 ID:kMbsTQE3
25>やっぱりローカルとは違うんですね 見たらめまいがしてきましたよ。
ローカルならPHPにmysql_connect(localhost,root)で簡単に
操作できたんですけど ネットワークにサーバか・・


27 :4:02/01/22 18:43 ID:???
誰もが一度は通る道さ。

28 :名無しさん@お腹いっぱい。:02/01/22 18:57 ID:???
そして俺も通った道さ

29 :名無しさん@お腹いっぱい。:02/01/22 22:02 ID:???
mysql.userは?

30 :名無しさん@お腹いっぱい。:02/01/22 22:31 ID:???
インストールだけして起動していない。

31 :名無しさん@お腹いっぱい。:02/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:02/02/13 19:40 ID:???
最近MySQLの勉強を始めたのですが、ユーザー権限の設定で行き詰まってしま
いました。周りに質問できる人もいないし、どなたか私を助けてくれませんか?

やりたいこと 下のような権限を持つユーザーを作る

1.テーブルは自由に作成、削除できる
2.他人の作ったテーブルは見れない、消せない
3.データベースの作成、削除はできない

こんな感じで意図は伝わりましたか?もう頼るところが無いんです...、
よろしくお願いします。


33 :しょしんしゃ:02/02/14 11:05 ID:???
>>32
1.グローバルな権限は全部Nにしてユーザを追加(3.に対応)

2.データベースをつくって、テーブルをつくりたいユーザーに
CREATEをGRANTする。(1に対応)

3.テーブルを作るときに、テーブルをつくったユーザーに
すべてをGRANT。それ以外には権限をあたえない。(2に対応)

って感じじゃない?たぶん。


34 :しょしんしゃ:02/02/14 11:07 ID:???
あ。
1=グローバルの権限
2=データベースの権限
3=テーブルの権限です。

35 :32:02/02/14 23:57 ID:???
>>33
しょしんしゃさん、お返事ありがとうございます。
> 3.テーブルを作るときに、テーブルをつくったユーザーに
> すべてをGRANT。それ以外には権限をあたえない。(2に対応)

この作業はテーブル作成時に管理者さんがしないとダメですよね?

ユーザー自身が自由にテーブル作成・削除はできるけど、他人の作った
テーブルには一切アクセスできない、というようなことができればなぁ、
と思ってたのです。やっぱり無理なのかな?ふぅ。

となると、ユーザー毎にデータベースを作るのが現実的なのかな?

36 :nobodyさん:02/07/05 13:21 ID:sTJoXJtl
質問です。
分散データベースの研究をしております。
同じテーブル定義のテーブルを分散しているのですが、
その分散したテーブルを一つのテーブルにしたいのですが、
なにか方法はありませんか?


37 :nobodyさん:02/07/05 22:13 ID:???
>>36
マルチ
回答不要
http://pc.2ch.net/test/read.cgi/php/983250751/228


38 :nobodyさん:02/07/08 18:54 ID:lARTVJ7d
mySQLがWindowsNT上でローカルホストとして
接続できません。
コマンドプロンプトの画面で、
「net start mysql」と入力しても、
途中でエラー:1067が発生し、
中断します。
コントロールパネルの「サービス」からも
同様の結果になります。
なぜでしょうか?

39 :クラさん:02/07/24 12:45 ID:tjNyt0k2
MySQLmax-3.23.51-winをWin2000proにテスト的に導入しています。
WinMySQLadminからサーバーのコントロールは出来ますが
VariablesやProcess、Database、Reportなどの情報が
WinMySQLadminでは取得できません。
その他、DOS窓やクライアントプログラムから接続は出来て
特に支障ないです。再インストールしてみたりもしたのですが
状況が変わりません。わかる方いらっしゃるでしょうか?

40 :nobodyさん:02/08/23 00:39 ID:rUynFkaj
MySQL 3.23とMySQL Max 3.23
何がちがうの?

41 :nobodyさん:02/08/23 15:44 ID:BcNB4bej
>> 40
Maxと付く方はトランザクションをサポートしている

42 :nobodyさん:02/09/02 00:40 ID:dngEI4Fe
>>38
スタンドアロンならうまく逝くんでない?
それと深いdirに置いてない?
c:\mysql なんかに置いてみれ!

43 :nobodyさん:02/09/03 08:03 ID:fHvwXYyd
先日よりMySQLの勉強を始めました。
tinyint=1byte
smallint=2byteと思っていたのですが、
show tableすると、Typeに
tinyint(3)
と表示されます。これは3バイトってことですよね?
1バイトの大きさのカラムを作るにはどうすればいいのですか?

44 :PhpMyAdmin:02/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:02/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:02/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善保守生活創刊号:02/09/16 18:14 ID:???
ホッシュアゲロゲーロ

48 :nobodyさん:02/09/17 02:37 ID:p6Xmi4dv
>43
>tinyint(3)
それは文字数とおもわれ。

49 :nobodyさん:02/10/07 21:53 ID:m57T57IB
JDBCドライバを使ってMySQLの日本語名DB(「テスト」など)に
アクセスする場合どうしたらいいのでしょうか。


50 :nobodyさん:02/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さん:02/10/14 18:48 ID:???
SELECT で対象を
あるデータベース内の全てのテーブルにしたいのですが、
どのように SQL を書けばよいのでしょうか?

52 :nobodyさん:02/10/14 21:13 ID:???
>>51
joinしる!

53 :nobodyさん:02/10/19 15:58 ID:???
http://pc3.2ch.net/test/read.cgi/tech/1008316065
で聞いた方がいいかもね。
ドライバ開発者もいるみたいだし。

54 :nobodyさん:02/11/02 05:56 ID:???
数値の合計とか平均とか出したい場合、CGIで計算して表示するのとsqlで計算して表示するのどちらがいいのでしょ?

55 :nobodyさん:03/01/01 02:13 ID:g22yKLaX
Windows版のMySQL-MAXの公開やめちゃったの?

56 :nobodyさん:03/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さん:03/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さん:03/01/01 19:42 ID:g22yKLaX
Ver3.23.49からデフォルトでLOAD FILE LOCAL文が使用できなくなっている。
もしphpMyAdminでCSVファイルのアップロード等を行う必要がある場合、
「--with-local-infile」オプションをつけるか、
mysqlコマンドで「--local-infile=1」というオプションをつけて実行することで有効になる。


59 :nobodyさん:03/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:03/01/01 19:47 ID:g22yKLaX
すまそ、59のURLはブラウザにコピペしないと適切な箇所にジャンプしません。

61 :56:03/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さん:03/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 :山崎渉:03/01/15 13:36 ID:???
(^^)

64 :nobodyさん:03/02/28 17:53 ID:XIiZ4aB7
hogeと言うデータベースがあるとします。
このデータベース「hoge」にはMySQLのユーザ「root」でしかアクセス出来ないようにするにはどうしたら良いでしょうか。

逆に、「foo」と言うユーザーは「boo」と言うデータベースにしか接続できない様にするにはどうすれば良いのでしょうか。

よろしくお願いします。



65 :nobodyさん:03/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さん:03/03/12 04:14 ID:txYiwVgf
age

67 :nobodyさん:03/03/12 11:46 ID:???
>>65
MySQLの質問というよりはDBIモジュールの質問ではないかな。
$sth->execute;
$name = $sth->{NAME};
$type = $sth->{TYPE};
$data = $sth->fetchall_arrayref;

これで漏れは全部のデータが取得できるんだが。

68 :nobodyさん:03/03/12 12:18 ID:myMG93+U
>>67
ありがとうございました。
たしかにDBIモジュールの質問ですね。
ORACLEだとfetchall_arrayrefでも
$sth->{NAME}->[0]とかすれば
最初のNAMEを取得できたのに
MYSQLではエラーになったので
ここに質問してしまいました。
以後気を付けます。

69 :nobodyさん:03/03/12 23:17 ID:PTQ2BK4j
副問い合わせが使えないからどうすればいいですか?


70 :山崎渉:03/03/13 16:58 ID:???
(^^)

71 :nobodyさん:03/03/25 16:25 ID:BGwX64RN
InnoDBを導入することになりました。
けど読み方がわからないのでおしえてください。

72 :nobodyさん:03/03/27 03:03 ID:Ya09dI5I
PHPを使って、webよりユーザー登録、ユーザー削除、権限の設定などをする
スクリプトはありますか?

73 :nobodyさん:03/03/27 12:10 ID:???
phpmyadmin?

74 :山崎渉:03/04/17 12:11 ID:???
(^^)

75 :山崎渉:03/04/20 06:22 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

76 :nobodyさん:03/05/17 17:45 ID:ghc51a2p
Unicode(UTF-8)で接続出来ませんか?

77 :nobodyさん:03/05/17 17:55 ID:/0gIo8DK
http://www.h3.dion.ne.jp/~oto/

78 :nobodyさん:03/05/18 16:45 ID:NH4N97Dj
>76
Unicodeはあくまでも文字のコードであって、
通信の方式やツールのことじゃないから、質問意味不明ナリ

データベースの文字型の扱いをUTF-8にしたいってんなら、
MySQL4あたりだと出来るはずだよ。

79 :nobodyさん:03/05/18 16:46 ID:aNJYcTmW
リンクスタッフは登録無料!1クリック10円。
バナー紹介料として、リンクスタッフ登録の度に1000円の報酬。
掲示板などに宣伝すればクリックや紹介がある度に報酬が得られます。
登録はメールアドレスと任意のパスワードを入力すれば完了です。
メールアドレスはフリーメールでもOK!
今なら登録するだけで1000円プレゼント。
ちなみに私の先月分の収入は、1日30分ぐらいの宣伝で138340円でした。

http://accessplus.jp/staff/in.cgi?id=9140
直リンクできないのでアドレスをコピーして貼り付けてジャンプしてください。


80 :動画直リン:03/05/18 17:08 ID:rGbr42DC
http://homepage.mac.com/hitomi18/

81 :nobodyさん:03/05/19 17:16 ID:O90Qa4tT
TIMESTAMP型を使って自動的に更新日時が入るようにしたいんですが、
YYYYMMDDHHMMSSのように区切り文字なしでDBに格納されてしまいます。
DATETIME型のようにYYYY-MM-DD HH:MM:SS のフォーマットで
DBに格納されるようにしたいんですが可能でしょうか?


82 ::03/05/20 23:52 ID:Y6HkOJuA
>>81
マニュアルにズバリ書いてあったよ。頭使ってもわかりそう。

ヒント: 4バイト

で、DATE_FORMATじゃだめなん?


83 :nobodyさん:03/05/21 01:20 ID:???
初歩的な質問ですが、データ数が少ない場合(100とか200)
テキストファイル使った方が効率良いんでしょうか。
最近は楽さを選んでみんなDB使っちゃってるんですが、
無駄にサーバーに負担かけてるかな?

84 ::03/05/21 16:21 ID:AbGSjTDt
>>83
何をするかによるんでないかい?
「データ数」の定義も微妙だし。

行数が200程度しかないフラットな掲示板のログファイル1つのために
DB使うのはやりすぎって気もするけど、
書き込みが多いからロックファイル作って云々考えるとどっこいかも。

漏れは基本的にMySQLかな。
いろんなサーバに入れる場合は、ファイルで管理する事が多い。


85 :山崎渉:03/05/22 01:57 ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

86 :81:03/05/22 11:01 ID:rjjMwksk
>>82
レスありがとうございます。

確かにマニュアルにフォーマットを指定できるようなことは書いてあるのは
読んだのですが、具体的にどのような書式で指定すればいいのかがわかりません。

4バイトだとYYMMという形式になってしまうのではないんでしょうか?

DATE_FORMATも読みましたが、私がやりたいのはCREATE TABLEで作成する際に
TIMESTAMPで何か書式が指定できるのかな、と思いまして。。。

87 :bloom:03/05/22 11:08 ID:x2YZ4VCE
http://homepage.mac.com/ayaya16/

88 ::03/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:03/05/22 15:50 ID:rjjMwksk
>>88
なるほど。やはりbの表示フォーマットは変えられないんですね。

リファレンスのその部分は何度か読んだのですが、
表現的によくわからなかったので、ここで質問しました。

これでスッキリしました。DATETIME型でやってみます。
ありがとうございました。

90 :nobodyさん:03/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さん:03/05/22 22:36 ID:???
>>90

もう一度テーブルの作り方勉強したら?

92 :90:03/05/22 22:41 ID:jBpXLiPH
>>90
descもdescrもdescriもdescribもdescirbeも使えない。

93 :90:03/05/22 22:47 ID:jBpXLiPH
>>91
ごめん、まちがい
mysql> create table a_table (desc varchar(64) );

>>92
descとdescribeがカラム名として使えない

94 :nobodyさん:03/05/22 22:49 ID:???
DESC 、 DESCRIBE は予約語
テーブルやフィールド名として使用できないれす

95 :90:03/05/22 23:55 ID:???
>>94
ぐぅ、残念。「'」や「"」で囲んでもだめだった。
Oracleとは違うのね。

96 :nobodyさん:03/05/23 00:11 ID:???
>>95
「`」 で囲んでみたら?

「`」は Shift+@ ね。

97 :90:03/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さん:03/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さん:03/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さん:03/05/24 15:42 ID:+sQLJUip
ついでなんで、100age

101 :nobodyさん:03/05/24 16:38 ID:oDSDORJV
★○マ○コは地球を救う★
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

102 :nobodyさん:03/05/26 09:56 ID:???
>>99
返事がおくれたけど、ありがとう。
これで安心して眠ることができるよ。

でも、なんで弊害なの?害となることが思いあたらん。

103 :山崎渉:03/05/28 17:07 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

104 :質問その@:03/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:03/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さん:03/05/29 01:16 ID:???
>105
aのidとbのidはどのような関係が?
countしないでどこかに出力してごらん。

SQLの基本なので良い機会なので入門書を買って味噌。

107 :nobodyさん:03/05/29 01:30 ID:???
>>106
おお、そうですた。
a.id=b.idするのを忘れてますた。
なぜこんな初歩的なミスを・・・
ありがとうございました。

108 :nobodyさん:03/05/29 10:44 ID:???
>107
いや言いたかったのはWHEREの条件に混ぜるんじゃなくて、
必要ならリレーション(関係)を張っては?ということ。
"外部キー"とか"JOIN"とかその辺の単語でぐぐーる。

109 :nobodyさん:03/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さん:03/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さん:03/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さん:03/06/18 18:04 ID:???
>>111
めちゃサンクス。primary key(A, B) でいけました。
#実際にはAがBLOBなのでprimary key(A(128), B) としました。

113 :nobodyさん:03/06/18 23:51 ID:TnNRaExh
mysqlではレコードを追加したらそれに張ってあるインデックスも自動的に
追加されるのでしょうか?

114 :nobodyさん:03/06/18 23:57 ID:???
追加されないDBなんてあるの?

115 :nobodyさん:03/06/19 00:34 ID:70FTCJ+V
A,Bのテーブルがあるとします。

A
ID1りんご
ID3みかん
ID4ぶどう


B
ID2メロン
ID3みかん
ID4ぶどう


この二枚のテーブルでどちらかのテーブルに存在すればヒットする
ようなselec文はどう書いたらいいのでしょうか。重複する行は、
一行のみ抜き出したいです。

こういうかんじにです。

ID1りんご
ID2メロン
ID3みかん
ID4ぶどう

よろしくお願いします。

116 :113:03/06/19 02:25 ID:70FTCJ+V
> 114

追加されました。確認もせずに投稿してしまいました。
すいませんでした。

117 :nobodyさん:03/06/19 02:36 ID:tb30wkPm

罪と罰のゲーム、皆さんもやりませんか?
http://gekiya77.gi-ga.net/cgi/
以下から、新規登録出来ますので。
http://gekiya77.gi-ga.net/cgi/ore_reg.cgi

<注>私は管理人ではなく、ただの利用者です。

118 :nobodyさん:03/06/22 22:04 ID:xUqQ3nDm
>>115
left outer join

119 :nobodyさん:03/06/27 20:50 ID:HoNlAHtV
mysqlのインデックスファイルであるMYIを見るツールはないのでしょうか。
どんな感じでインデックスがはられているのかみたいのです。

120 :nobodyさん:03/06/28 01:44 ID:???
>>119
バイナリーエディタ…
MYDとかと同じ。つかバイナリー見ても理解できんでしょ。

インデックス情報見るなら素直にSHOW INDEXコマンド。
有効にインデックスが機能しているかはEXPLAIN SELECTでチェックすれ

121 :119:03/06/28 17:10 ID:3aXiHYmQ
すいません、説明不足でした。
インデックスが英語のFULLTEXTインデックスなんです。
どんなワードがインデックスに入っているのか確認したかったのです。
stringsというコマンドでバイナリにはいっている文字列がみえるのが
わかりましたが、MYIファイルをきれいに表示する方法はないでしょうか?
ないとは思うのですが、もしあって知らなかったらとおもって聞いてしまいました。

122 :nobodyさん:03/06/30 12:25 ID:5tKrGL8Q
データベース板できました
http://pc2.2ch.net/db/

123 :nobodyさん:03/07/10 00:05 ID:yUDG6lLt
一個の項目をとある文字で分割して検索する事ってできますか?
splitみたいな。
no|key|
1|a,b,c|
でkeyを「,」で区切って「b」があるかどうかで検索…。
正規表現を使う事も考えましたが、できるならうれしいなっと。

124 :無料動画直リン:03/07/10 00:14 ID:YKCrjqtm
http://homepage.mac.com/miku24/

125 :nobodyさん:03/07/11 01:26 ID:???
>>123
key LIKE '%,b,%' OR key LIKE 'b,%' OR key LIKE '%,b'


126 :125:03/07/11 01:30 ID:???
正規表現といっているから効率は度外視。
本音を言えば「外部キーくらい正規化すれ。」


127 :123:03/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:03/07/11 08:52 ID:???
noでグループ化して登録keyの「数」を取得するとこまではいけました。(countで)
が、欲しいのは中身なのれす…。

129 :123:03/07/11 15:18 ID:???
すみません、む板の方に移動してきます。

130 :山崎 渉:03/07/15 11:07 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

131 :nobodyさん:03/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さん:03/07/31 21:57 ID:VMyHT8tg
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


http://ninkirank.misty.ne.jp/19/enter.cgi?id=okyaku

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@



.

133 :nobodyさん:03/08/01 02:27 ID:???
>>131
それをやるなら createdate は TIMESTAMP型じゃないか?

134 :131:03/08/01 14:23 ID:???
>>133
できました!ありがとうございます。

135 :nobodyさん:03/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さん:03/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さん:03/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さん:03/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 :山崎 渉:03/08/02 02:22 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

140 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:50 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

141 :nobodyさん:03/08/02 12:08 ID:???
>>138
あ、なるほど。
MAX(Date)をSELECTするとDateがMAXなタプルのEMailが取り出せるんですね。
今実験環境がないのでできませんが今度試して報告します。ありがd。

この最新のEMailが欲しいという要望は後から出てきたので
今までのプログラムに付け足す形でやったので
>>137に書いてあるようになってしまったんです。

>ただ、設計自体が間違っているような気がしないでもないが...。
・・・うーん。特に変な設計したつもりはないんですけどねぇ。

142 :nobodyさん:03/08/09 06:13 ID:ykXF7Sbd
MySQLのバックアップは、
/usr/local/mysql/var/
配下の目的のDBのディレクトリをコピーするだけでOKですか?
復元時は、このディレクトリを戻してやるだけで使えるのでしょうか?
何となく、乱暴すぎる気もするし…どうなんでしょう?


143 :nobodyさん:03/08/09 09:15 ID:???
>>142
 サーバダウンが迫ってるとか緊急時はそれでおーけー
 それ以外の時は、きちんとコマンドラインからやるのが吉

144 :山崎 渉:03/08/15 22:39 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

41 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)