トップページ⇒php
988コメント357KB

mysql ヘルプ!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/01/22 16:08ID:kMbsTQE3
リモートから家(常時接続)のmysqlサーバにつなげません
状況を詳しく書きます
PHPが動くプロバイダーのディレクトリにおいた自分の家の
mysqlサーバを操作するPHPに
$db = mysql_connect("mysqlサーバのip:3306","ゆーざ","ぱす");
と書いたのですが、駄目でした。
どうすればいいのでしょうか?
066065304/10/18 18:31:28ID:x7S7FTDO
どうしてもmysqlに入れないです。。。
command not found。。
mysqlコマンドを使用するのに
特別な設定が必要なのでしょうか??
0661nobodyさん04/10/18 18:58:41ID:???
>>660
・(そのユーザに対して)パスが通ってない。
・コマンドツール類がサーバとは別パッケージで、それをインストールしてない。

本の記述通りのもの(同一バージョン/パッケージ)を、指示通り入れてるか確認
066265304/10/18 19:04:27ID:x7S7FTDO
>>661
お返事ありがとうございます。
一番目のパスの設定は特にしていないです。
どのように設定するのでしょうか??
0663nobodyさん04/10/18 19:09:33ID:???
パスの設定方法が本に書かれていないわけがないと思うのだが
0664nobodyさん04/10/18 19:42:22ID:???
この手のオチは「本の記載通りにきちんとやっていませんでした」が大半。
0665nobodyさん04/10/18 21:56:32ID:x7S7FTDO
結局パスは通さずにディレクトリ指定で
コマンドたたいて入りました。
mysql> create database XXX;
ERROR 1044: Access denied for user: '@localhost' to database 'XXX'
これはどういう状態なのでしょうか??
0666 04/10/18 22:04:34ID:???
anonymousでログインしたってことじゃ?
0667nobodyさん04/10/18 22:04:36ID:x7S7FTDO
ユーザの権限なんですかね。。。
今度はrootで入ったら
mysql> create database XXX;
ERROR 1006: Can't create database 'XXX'. (errno: 13)
というエラーが発生してしまいました。
0668nobodyさん04/10/18 23:08:50ID:???
>>667
> ERROR 1006: Can't create database 'XXX'. (errno: 13)

errno 13はOSが出してるエラーで、EACCESS (Permission denied)。
MySQLではデータベースをディレクトリにマップするので、このエラーが出たということは
mysqldはデータディレクトリ内にサブディレクトリを作る権限がないということ。

データディレクトリのパーミッションを確認してみたら?
0669nobodyさん04/10/18 23:36:36ID:x7S7FTDO
すみません。
回答が質問を呼ぶ形になって申し訳ないです。
mysqldとは一体なんなのでしょうか?
067066804/10/18 23:49:38ID:???
>>669
おいおい…
mysqldはクエリを解釈してデータへアクセスしたりするデーモン(サーバ)で、常時稼動している。
mysqlコマンドを含むクライアントはこのデーモンに接続してクエリを発行し、結果を受け取る。
http://dev.mysql.com/doc/mysql/ja/Server-Side_Overview.html#IDX662

手元に書籍があるならまず載ってるから、ちゃんと読んでね。
0671nobodyさん04/10/19 22:13:12ID:rQaAfL61
mysqlのデータ飛んだぞ
やっぱりwindowsサーバはゴミだな
0672nobodyさん04/10/19 22:43:05ID:???
>>671
そうか。
それは大変だったな。
0673nobodyさん04/10/20 10:49:21ID:???
>>671
ロックしろよ おまえがゴミだろ
0674nobodyさん04/10/20 11:09:05ID:???
ロックしないだけでデータが飛ぶなんて普通ありえないだろ?DBなんだから
0675nobodyさん04/10/20 14:53:55ID:???
すみません、己の不明を恥じつつ質問させてください。

メールアドレスの重複を許さないテーブルを作成したいと思います。
メールアドレスをprimary keyとして指定すればいいのだと思うのですが、
255文字以上の文字列はprimary keyにできないのでしょうか。
RFC2821で許されるメールアドレスの最大長は64byte@255byteとのことで、
255文字を超えてしまいます。

ハッシュをprimary keyとすることもできるようなのですが、
SHA1やMD5などのハッシュを使うと非常にまれに異なるメールアドレスから
同一のハッシュが生成されてしまうのではないでしょうか。

どなたか知恵を貸していただけませんでしょうか。
0676nobodyさん04/10/20 15:55:21ID:???
>>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文字を超えるメールアドレス
は格納できない仕様だと主張する
067767504/10/20 15:56:42ID:???
>>676
× CREATE TABLE mailaddr(addr TEXT NOT NULL, PRIMARY KEY(addr(320));
○ CREATE TABLE mailaddr(addr TEXT NOT NULL, PRIMARY KEY(addr(320)));
閉じ括弧が1つ抜けてた。
0678nobodyさん04/10/20 17:05:19ID:???
ハッシュを簡易チェック用(サーチ用インデックス)として、
アプリ側で厳密チェックという作りではいかんのか?
SQLのユニークエラーでは弾けないけど。
067967504/10/20 17:26:25ID:???
みなさまどうもありがとうございます。

>>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とすることになっている
のでしょうか(データ自体の比較は行なわない)?
0680nobodyさん04/10/20 19:29:01ID:???
>>679
現実的にはドメイン部分はサブドメイン有りでも100文字あれば足りるので
255で切っても良いと思うけどね
可能性を考えたら切りないし現実的な対応も設計者のセンスだと思うよ。

おれなら255で切って、これで入力出来ないとか言う人は愉快犯として無視するね。
0681nobodyさん04/10/20 21:48:24ID:5ZEjjEhO
win2000+mysqlなんですが、
cmd.exeからc:\mysql\bin\mysqlにログインして「set globals ○○=××;」とすると
設定が変更されるんですが、マシンを再起動すると初期値に戻ってしまいます。
何度やってもそうなります。なぜなんでしょうか?
0682nobodyさん04/10/20 22:54:23ID:???
>>681
そういう作りになってるから。

正確には貴方が恐らく欲しいと思われる結果に対しての
操作の選択肢として間違ったものを選んでいるため。
0683nobodyさん04/10/20 23:30:08ID:5ZEjjEhO
>>682
どうしたらいいんでしょうか。お願いします、教えてください。
0684nobodyさん04/10/21 02:53:07ID:???
>>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
0685nobodyさん04/10/21 05:12:26ID:???
>>674
飛ぶよ DBは飛ばない伝説だな
0686nobodyさん04/10/21 13:25:01ID:a34sr5QL
AUTO_INCREMENT で a001 -> a002 -> a003 って可能ですか?
何か特別な設定が必要でしょうか?
0687nobodyさん04/10/21 15:51:04ID:???
test
0688nobodyさん04/10/21 16:16:42ID:???
どうしたらいいんでしょうか。お願いします、教えてください。
0689nobodyさん04/10/21 16:21:30ID:???
>>660
0690nobodyさん04/10/21 16:40:51ID:???
>>686
むりだ あとからつけとけ
0691nobodyさん04/10/21 17:36:05ID:???
>>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;
0692nobodyさん04/10/21 20:51:48ID:B+QZBvw9
textとvarcharって負荷的にかなり違うんでしょうか?
文字の最大長のみが違う二種類のデータがあるんですが、
テーブルを別にするべきか、
全部textにして一つのテーブルに入れちゃうべきか、悩んでいます。
あまり違わない気もするし…どうなんでしょう?
0693nobodyさん04/10/21 20:54:16ID:???
int(11)と
tinyint(11)ってどうちがうんでしょうか?
0694nobodyさん04/10/21 23:40:50ID:???
>>692
まずは正規化とかそういうのをちゃんと勉強して
まっとうなスキーマ設計ができるようになれ
負荷とか効率とかで悩むのはそれからでいい
0695nobodyさん04/10/21 23:57:03ID:???
bigintを一意なIDとして使った場合、
64bit
=2^64
=18446744073709551616

つまり仮に1日に1億IDを消費しても、
184467440737日=505390248年もつ

この計算であってますか?
069668104/10/22 04:50:08ID:???
>>684
ありがとうございます。my.iniに直接書けば良かったのですね。
ご親切なレスに感謝いたします。
0697nobodyさん04/10/22 10:41:10ID:???
>>694
そうですね。
今まで間に合わせの知識でやってきて
ちゃんとモデリングの勉強をしてなかったので、一度勉強してみます。
0698nobodyさん04/10/22 20:45:08ID:???
知識欲からパフォーマンスチューニングについて質問です(素人、勉強中です)。

例えば2ちゃんねるみたいな大量アクセスがあり、頻繁に書き込みがある
スレッドと、そうではなく過疎化しているスレッドからなる掲示板があって、
1つのテーブルでユニークID、板ID、スレッドID、記事ID・・・のように
管理するとします。細かい話をしだすとキリが無いので、なんとなく一般的に
ベストなインデックスがついているとします。この場合、メモリ管理はどのへんの
設定を変えるとパフォーマンスに一番効果があるでしょうか?query_cache_sizeでしょうか?

ちなみにあくまでMYSQLの知識欲を満たしたいので、HTML化しろとかは無しで。
0699nobodyさん04/10/22 21:29:33ID:???
>>698
>細かい話をしだすとキリが無い
ここをちゃんと出してくれなきゃ、最適化なんて出来ないべさ。
特に掲示板の仕様(DB周辺)と掲示板の使われ方(アクセス)の割合とか。
ROMが多いなら、チューニングも変わってくるだろ。
070069804/10/22 21:52:08ID:???
>>699
では書き込みをするユーザ1に対してROMが99人いるという前提にしてください。
また、いわゆる「祭り」状態はイレギュラーなので、条件から除外してもらってもかまいません。
もちろん、「祭り」込みでの提案も歓迎です。
0701nobodyさん04/10/22 23:50:39ID:???
>>700
まだまだ足りないが…
まあ、オーソドックスで正しいDB設計のBBSにおいて
書き手(UPDATE/INSERT)に対して、読み手(SELECT)が圧倒的に
多ければクエリキャッシュは充分にパフォーマンスアップに貢献する。
実際自分のところで早々にMySQL3からMySQL4に移行した理由のひとつ。

但し、アプリがキャッシュがきちんと働くクエリが組み立てられるつくりに
なっているか、その辺の見直しは必要。普通に作っても変なクエリは
投げてないと思うけど。読み出しカウンターを同一のテーブルに
入れてる目も当てられない作りにする香具師がいないとは、
昨今のレベルをみてると、言い切れないからね。
0702nobodyさん 04/10/23 01:04:29ID:fI1cafOM
MySQLの接続ドライバに関して質問です。

UnixのMySQLサーバから一覧情報を取得して、Excelに一覧表示を行い、
再度入力された条件から、MySQLサーバにデータの登録を行う処理を
考えております。

経験者の方おりましたら教えていただきたいのですが、Windowsから
Unixのデータベースに接続して処理を行うためには、クライアント側の
設定はODBCの設定でホストIPアドレスにUnixサーバのIPアドレスを指定
することで対応できるのでしょうか?

急きょ調査することになりまして、数少ない情報のなか、ご存知の方お
りましたら宜しくお願いします。
0703nobodyさん04/10/23 02:29:49ID:???
>>702
アプリ側がODBC APIを使って接続するなら、純正のMySQL用
ODBCドライバー - MyODBCについて調べてみてください。
0704nobodyさん04/10/23 14:29:04ID:???
>>701
>読み出しカウンターを同一のテーブルに
>入れてる目も当てられない作り

ここんとこ、もう少し詳しくお願いしたい。
ぶっちゃけるが、「読み出しカウンター」という言葉すら知らんかったので。
0705nobodyさん04/10/23 16:44:11ID:???
>>704
id の事いってたら笑う 
0706nobodyさん04/10/23 19:41:23ID:???
>>704
その記事が何回読まれたとか、そういう変化の激しいフィールドを
含めてたりしてないかということ。要するにテーブル内の値が
変化するとキャッシュが毎回無効になるでしょ。
もしそれが本当に必要なら別枠で保持して無いと駄目。
070770404/10/23 21:23:18ID:???
>>706
理解した。

ところで、query_cache_sizeでFAなわけ?>ALL
0708nobodyさん04/10/24 01:08:51ID:AzGved6L
php+mysql

min(hoge)で0は返さないように、あるいはmax(hoge)でnullを返さないようにするのはできますか?
0709nobodyさん04/10/24 15:08:31ID:???
>>708
事前に0やnullのデータをテーブルから削除しておくといいよ
0710nobodyさん04/10/24 23:43:40ID:???
where hoge is not null
0711nobodyさん04/10/24 23:51:32ID:???
>709
それは無理です

>710
それも無理です


count()のdistinctみたいなのがmin()やmax()にもあるかと期待しただけなんです
0712nobodyさん04/10/25 00:05:24ID:???
マジレス

他人と最低限の意思疎通ができる文章力をまず身につけることだな
何が「無理」なんだ?>>708の文章から相手に何が伝わると思うんだ?
0713nobodyさん04/10/25 11:16:33ID:???
なんで min と max で 必要なん? 君は書き方勉強し
0714nobodyさん04/10/25 19:37:05ID: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のデータベースを読み込む事が出来るのでしょうか?
アドバイスをお願いいたします。
0715nobodyさん04/10/25 21:51:57ID: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 ヘルプ!
071671504/10/25 21:56:02ID:???
また、余談なんですが、
このシステムは、試合データは数百以上、
メンバーデータは50レコードに満たない程度のものです。

実は最初、T2テーブルのほうに、勝数や負数のカラムを配置して、
ログベースで処理していたんですが、
自分のスキルアップのために、上記のような形に挑戦しています。

この程度のものでしたら、前者と後者で、どちらの処理のほうが、
理想的なものなのか、助言も頂けると幸いです。

よろしくお願いします。
0717nobodyさん04/10/25 23:37:40ID:9fphDW68
助けてください。
以下のエラーで困ってます。
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
MYSQLのページのエラーマニュアルを呼んだんですがさっぱりです
0718nobodyさん04/10/26 09:05:19ID:???
>>717
おいらはアンタがどういう環境でどういう状況(インストール直後なのか運用中で)に
そうなってるかが、その書き込みからだけだとさっぱりだよ。
0719nobodyさん04/10/26 09:21:12ID:???
>>715
> 勝者ID1〜4、敗者ID1〜4という8個のカラム

ここが少しひっかかる。主に4v4というけど、この対戦人数は変わったりするの?

勝敗の集計をプレイヤーIDごとに出したいんだったら、

プレイヤーマスタテーブル
プレイヤーID
氏名
他、詳細データ…

対戦組み合わせテーブル
組み合わせID
プレイヤーID
東西区分

勝敗テーブル
組み合わせID
勝敗(東or西)

勝敗を表わすのにどうしようか迷ったけど
相撲に倣って東/西と称してみた。
072071504/10/27 03:54:49ID:???
>>719
お返事遅れて申し訳ないです。
ありがとうございます。

> 主に4v4というけど、この対戦人数は変わったりするの?
そうですね、可変です。
勝者ID1と敗者ID1というカラムが必須で、後はNULLが入る可能性もあります。

書いて頂いたテーブル構成での「組み合わせID」ですが、
現在、1試合(=対戦組み合わせテーブル1レコード)に、
こちらもAUTO INCREMENTでIDを振っていますんで、これでいけそうです。

頑張ってみます。
重ね重ねありがとうございました。
0721nobodyさん04/10/27 09:54:33ID:fSBouGHv
mysql+perl DBIなんですが、
取得したデーターの何個目からfetchするとかできますかね?
今は、

1 while $sth->fetch and ++$count < $s_;

みたいに、fetchをから回し($s_がスタート地点)してるのですが、
スタート地点が大きい場合(ぶっちゃけ10000とか)があるので、
ちょっといやなんですが、、
0722nobodyさん04/10/27 10:32:37ID:???
普通はSQLでlimitするもんじゃないの。
072372104/10/27 10:32:53ID:???
スマン
selectでオフセット指定できました。
0724 04/10/27 13:29:38ID:???
>>719
似たようなDB作ろうとしてるんだけど、
例えば1選手の、1試合の成績を収めようとしたら
選手分だけのTableが必要になる?

選手200名を1人ずつTable管理するのは大変だよね
どうしてます?

MySQL4.1以上になると2次元扱いが可能になるらしいけど、
Installがミスって何故か弾かれる、、、
0725 04/10/27 13:59:29ID:???
The service cannot be started.error0


OTZ....
072671904/10/27 14:13:24ID:???
ちょっと修正

プレイヤーマスタテーブル(プレイヤー1人あたり1レコード)
プレイヤーID
氏名、他、詳細データ…

試合マスタテーブル(試合1回あたり1レコード)
試合ID
勝利チーム(NULL or 紅 or 白)
開始年月日、試合場、他、詳細データ…

対戦組み合わせテーブル(試合×参加プレイヤー=1レコード)
試合ID
プレイヤーID
チーム区分(紅or白)


>>724
1選手1レコードのテーブルひとつで済むよ
072771904/10/27 14:17:02ID:???
>>726の補足
> 対戦組み合わせテーブル(試合×参加プレイヤー=1レコード)

っていうのは、8人参加の場合は1試合あたり8レコード
6人参加の試合が4回あったら24レコード

という意味です。
0728 04/10/27 14:35:43ID:???
もう少し詳しくお願いします


私が考えてるのは
例えば、
目的:野球140試合、全選手の成績を格納する

id、所属球団、選手名、生年月日等のDATA・・・と

各試合での成績(三振、ヒット)など

      1打席目  2打席目  3打席目  4打席目  5打席目 ・・・・

1試合目   三振
2試合目
・・・
140試合目
072971904/10/27 15:30:57ID:???
>>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)。
0730 04/10/27 16:22:45ID:???
>>729
くだらない質問に答えてくれてありがとう

私の理解度が乏しいから、確認しますけど

   選手  日時  何打席目か  成績
    A   10/27 1     三振
    B            1    ホームラン
    C            1    アウト
    A            2     ヒット
    B            2     アウト
    C            2 
    ・・・
こんな感じでしょうか
073171904/10/27 18:07:51ID:???
>>730 YES.
0732nobodyさん04/10/27 21:12:11ID:???
join で読み出ししたこと無いのかなあ?
まあ、テーブルの設計が終われば八割終わりみたいなもんだから
DBプログラミングは、ひたすらがんがれ。
0733nobodyさん04/10/28 12:21:42ID:y89QF6Ze
マスタの停止なしに
InnoDB形式のテーブルでレプリケーションが
狂ってしまった場合、復旧させる方法はありますか?

MyISAM形式では、テーブルのファイルコピーで無理やり整合性を
保っていたのですが、InnoDBでも可能でしょうか?

0734nobodyさん04/10/28 20:53:44ID:???
MySQL上の日本語全文検索について書かれた
書籍やサイトがあれば教えてください。
自分では、
「実践MySQL4」に、
少し書かれているのは知っています。
0735nobodyさん04/10/29 19:25:07ID:???
日本語の全文検索は未対応で問題が多いらしいね。
最近のスラッシュドットでそんな話があったよ。
MLでも議論されてたから検索してみれば?
http://slashdot.jp/comments.pl?sid=219444&cid=0&pid=0&startat=&threshold=0&mode=nested&commentsort=0&op=%CA%D1%B9%B9
0736nobodyさん04/10/30 12:57:52ID:Gk5lEdxU
複数選択可能のチェックボックスをつかってアンケートをを取るとします。
例えば、あなたの趣味は?
■パソコン ■アウトドア ■読書 ■ドライブ
■スポーツ ■映画鑑賞   〜〜〜
こんな感じで、複数の項目にチェックしてもらってpostした情報はどんな風に
データとして格納すれば良いのでしょうか?
それぞれのチェックボックスをフィールド一つを割り当てて1か0で・・・てのは
アホくさ杉でしょうし。
また、レコードを修正するときに、フォームで登録時にすでにチェックされていたもの
を自動的にチェックが入るようにするのもわかりません。
radioとかtextだったら読み込み直す方法はわかってるんですが。
リファレンスのどこらへんを読めばよいのかだけでもいいので教えて下さい。
0737nobodyさん04/10/30 14:07:52ID: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をインストールし直した(全く同じバージョンでアップグレード)のと
パスを通したことくらいです。
0738nobodyさん04/10/30 14:30:59ID:???
>>737
ソケットファイルが変な状態になってるかも知れんので一端削除して作り直してみる。
0739nobodyさん04/10/30 15:04:11ID: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)
に戻りました。
う゛〜ん。。。
0740nobodyさん04/10/30 16:44:18ID:???
>>739
だとしたらmysqldとソケットファイルの権限のマッチングが駄目なのかもしれん。
0741nobodyさん04/10/30 16:48:01ID:N1vJ8kvj
拝啓 2ちゃんねらー様

MySQLで重複したレコードを一括して削除する構文を教えて下さい。
0742nobodyさん04/10/30 16:54:27ID:???
delete
0743nobodyさん04/10/30 17:08:00ID:???
AとBが重複していたとして
AもBも両方とも消していいなら割と簡単だが
Aだけ残してBだけ消したいということになるといろいろ面倒かもしれん
0744nobodyさん04/10/30 17:49:34ID:x49/edM7
>>740
ソケットファイルの権限はrwxともにOKです。
mysqldの権限の変更、およびソケットファイルとのマッチング
を整える方法がわからないです。
074574104/10/30 18:38:13ID:N1vJ8kvj
>>743
それです。
perl使ってるので、DBIのメソッドでも構いません。
0746nobodyさん04/10/31 00:13:12ID:R5h305R8
MySQLのコマンドはオラクルのSQLplusなどを
普通に扱えていれば全く問題なく扱えますか?
いつも叩いてるSQL文で問題なく作業できるのなら
導入しようかと思っている者です。
微妙な違いなんかは存在するんですかね?やはり。
0747nobodyさん04/10/31 00:14:47ID:???
>>746
SQLの基礎が出来てれば、
リファレンス引いて命令文引っ張ってくるだけだから、出来ると思うよ。
文法はほとんど一緒。
0748nobodyさん04/10/31 00:30:38ID:R5h305R8
>>747
リファレンスをちらっと見たら
USE DB みたいなコマンドがあって困惑したので。
074974804/10/31 01:38:56ID:R5h305R8
このuse database ってコマンドから察するに
このdatabaseってのはoracleでいうスキーマにあたるもので、
oracleだとログイン時にどのスキーマを使うか選択するが
MySQLでは最初にuseコマンドで明示的にどのDBを使うか
決定してからテーブルなどの操作を行う必要がある。

って理解は合ってます?
0750nobodyさん04/10/31 03:24:35ID:H+tIg089
DBで配列構造のデータ格納する時って、
一般的にはどうするのでしょうか?
自分としては単純に、
id,order,valueのカラムを作って、
データの削除や移動があった時には
orderを順番に書き換えていく、という方法を考えたのですが、
少し面倒な気がします。
もっと画期的な方法はありますか?
075175004/10/31 18:34:08ID:???
よく考えたら、orderをずらすのは1クエリで多分できますよね。
ループで回してクエリ出しまくりかと思って躊躇してましたが、
この方針でいってみようと思います
0752nobodyさん04/10/31 22:51:28ID:???
>>741
dump して unix/linux上でuniqして元に戻す。
しょっちゅうこれをやんないといけない場合には、
データベース設計にそも問題がある。
0753nobodyさん04/11/01 09:32:14ID:???
>>744
ソケットファイルを消すまえに
mysqldは停止させたんだろうな
0754nobodyさん04/11/03 22:23:52ID:r8FwY29X
MyISAMの場合、
select * from table
で行数を数えると、瞬時に答えが返ってくるはずなのですが、
スロークエリログに多数、このSQLが残っています。
どんな原因が考えられるでしょうか?
0755nobodyさん04/11/03 22:32:14ID:???
select count(*) from table
じゃなくて?
075675404/11/03 22:53:07ID:???
行数は
mysql_num_rowsで数えていました。
countに直して様子を見てみます。ありがとうございました。
0757nobodyさん04/11/06 14:53:52ID:???
http://pc5.2ch.net/test/read.cgi/tech/1099190154/251
この問題なんですがコンパイルを通すにはどうしたらよいでしょう?
Win版じゃなくてLinuxでやりたいんですが...

0758nobodyさん04/11/07 11:49:12ID:w/j/GLX7
0759nobodyさん04/11/07 18:31:21ID:???
Win2kのバッチファイルをつかって
自動でMySQLのログインから処理、ログアウトまでをやろうと思っているのですが、
mysql -u ユーザ名- p
の入力後に
Enter password:
が着ますよね?
ここでリダイレクトを使ってpassを読み込ませるにはどうしたらいいんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています