トップページ⇒php
949コメント332KB

PHP + MySQL

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001ECY NGNG
そろそろPHP + MySQLについても語ってほしい脳
0827私のお金が増えている03/05/18 23:35ID:c9BgLl5+
不況なんか吹っ飛ばせ!
ここをみてくださいね。
http://www.c-gmf.com/index3.htm
http://www.c-gmf.com/index2.htm
http://www.c-gmf.com/mail.htm
0828nobodyさん03/05/18 23:37ID:uOiOSJ6c
やっと起動
ホッ
0829nobodyさん03/05/19 01:40ID:???
MySQLインスコしてみたんだけど
% mysql -u root mysql
mysql> SELECT host,user,password FROM user;
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | |
| myhost | root | |
| localhost | | |
| myhost | | |
+-----------+------+----------+

userが空になってる行はどういう意味があるの?
0830nobodyさん03/05/19 03:46ID:???
>829
匿名ユーザ。

ビルトインユーザとして入ってると思うけど、匿名ユーザとしての認識のないまま
放置するのは危険なので削除すべし。意図して匿名ユーザを作るのは構わんが、
その場合、mysqlのユーザの認識優先順位とか調べた上で作るべし。
0831nobodyさん03/05/19 03:55ID:???
>>830
なるほど。サンクス。postgresと違ってディフルトの
設定が危険なことになってますね。
GRANTやREVOKEってのは user,db,hostテーブルを操作
するラッパーみたいなものなんですか?セッション変数
をMySQLで管理しようと思って導入してみた次第です。
関係ないけどPHP Blackbookにのってるsession handler
のコードは役立ちました。
0832nobodyさん03/05/19 08:30ID:???
 MySQLがどうこうって(Postgresもそうだけど)文句言ってるやつって、たいていの場合
Primary key指定せずに大量のデータ(10万レコード単位のオーダー)を動かそうとして
いるんだけど、世の中の手引きってindex作るっつー基本すら説明してないのかなぁ。
 あるいはWin"doze"のアプリみたいにマニュアルやReadMeすら読まずに動くと
思ってる昆虫みたいな連中なのか。
0833nobodyさん03/05/22 00:00ID:???
インデックスの件やけど、中間一致検索をうまくやる(HDに負担かけない)方法ってなんかないですかい?
FULLTEXTインデックスも微妙に日本語対応してないみたいやし・・・
0834山崎渉03/05/22 01:55ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0835nobodyさん03/05/22 23:24ID:???
>>833
ナマズに食わせる
0836nobodyさん03/05/23 02:21ID:???
>>835
やはりナマズっきゃないのかな・・・

公式のドキュメント(Mysqlはどのようにインデックスを使用するか)にこんなのがあったけど

MySQL 4.0 does another optimisation on LIKE.
If you use ... LIKE "%string%" and string is longer than 3 characters,
MySQL will use the Turbo Boyer-Moore algorithm to initialise the pattern for the string and then use this pattern to perform the search quicker.

これはインデックス作れば最初にワイルドカードつけたあいまい検索でもそれなりに速いということ?
それともインデックス関係無しに最適化されるという話でつかね?
0837nobodyさん03/05/23 09:02ID:???
>836
 その一文節前に

以下の SELECT 文はインデックスを使用しません:

って書いてあるじゃん・・・
0838nobodyさん03/05/23 09:06ID:???
>836
Boyer-Mooreを使って検索するというのなら、インデックスを使わない場合の
LIKE "%string%"の検索の舐め方だと思う。あと、どのみち%string%のような
中間一致にはインデックスは使われない。

折れもkakashi使ってインデックス相当のフィールドを生成して
そっち使って検索してる部分もあるが、"分かち書き"で取りこぼしたりするのは
必至なので精度よりも速度が求められるシチュエーションだけだね。
普通LIKE "%string%"の全舐め。楽だし(笑
083983803/05/23 09:09ID:???
え、茶筅の方が精度高いだろって?
諸事情により茶筅使えないんですわ。
0840nobodyさん03/05/23 22:06ID:???
レスサンクスコ
でも茶筅もカカシも難しそう(つかめんどくさそう)でつね
当面はあいまい検索で我慢して、少しづつ勉強する事にしまつ
0841nobodyさん03/05/23 23:52ID:KUDYp0Dt
WinXP + AnHTTPD v1.41g + PHP v4.3.1 + MySQL v4.0.13
という環境で質問です

インストールは全て問題なくできて、PHPもMySQLもそれぞれ
単独での動作は確認できたのですが
試しにphpMyAdmin v2.5.0を入れてPHPからDBにアクセスしてみようとしたら
動作上は何も問題ないのですが、なぜかDBにアクセスするたびに
ビープ音(内臓スピーカーから出る方)が鳴り狂います

鳴り狂うわりには操作自体は全て問題なく行えるので変だなぁと思って
<? php
  $userlink = mysql_connect("localhost", "<ユーザー名>", "<パスワード>");
  mysql_select_db("test_DB", $userlink);
  $result = mysql_query("SELECT * FROM test_table", $userlink);
  while ($myrow = mysql_fetch_row($result)) {
    echo "$myrow[1]";
  }
?>
みたいなコードを書いて実行してみたら
Parse error: parse error, unexpected T_VARIABLE in D:\HTTPD\public_html\test.php on line 2
なんていうエラーが返ってきてconnectすらできませんでした
#phpMyAdminからは日本語データ入力さえも全部正常に動いているのに・・・

エラーコードやらPHP+MySQL+Winやらでググってみても
そんな症状が報告されている例は見つけられず、途方に暮れています
どなたか何が問題なのかとっかかりだけでもわかるかたいらっしゃいませんか?
084284103/05/23 23:57ID:???
補足
ビープが鳴り狂うくせにどのログにもエラーが残らないのでマジで泣きそうです
0843nobodyさん03/05/24 00:41ID:???
>>842
<? php の間にスペースはいってない?
0844nobodyさん03/05/24 01:24ID:???
>>843
は・・・はずかしい・・・おっしゃるとおりです
しかしピーピー鳴るのは解決せず

ちなみに先のスクリプトだとビープ音は2回
phpMyAdminで、$cfg['Servers'][$i]['user']と['password']だけ設定した場合も2回
ところが['controluser']と['controlpass']も設定すると4回鳴る事がわかりました
わかったところで何故なのかは未だ不明ですが・・・

コマンドプロンプトからは何の問題も無く(ビープも無く)操作できます
084584103/05/24 13:34ID:???
結局Apacheを導入したらビープは鳴らなくなりました
AnHTTPDのせいだったのね・・・
PATH_TRANSLATEDを使うとかの設定もしたのにナァ
0846nobodyさん03/05/26 18:20ID:ruGAuzSz
初歩的な質問で申し訳ありません。
Mysqlで、テーブルロックせずに同時アクセスがあった場合データが消滅することってあります??
0847nobodyさん03/05/27 01:33ID:???
あれ?そうだったっけ?
漏れはロックなんて使ってないけど。
つかロックかけようとするとクエリーがエラーになる。
ユーザーにはINSERT,UPDATE,SELECT権限与えてるけど、
これじゃあアカンのかしら?

>>846
innodbなら行単位でのロックが自動でかかるんじゃないか?
Myisamは必要っぽいけど。
0848nobodyさん03/05/27 01:53ID:PRpkR2kf

(´―`)y━~~タバコとアダルトは二十歳になってから☆
http://homepage3.nifty.com/coco-nut/
0849nobodyさん03/05/28 22:07ID:???
おっす
0850nobodyさん03/06/01 20:40ID:Xxw6SumH
phpでmysqlを使っています。
この時間帯、
too many connection
が出まくることを発見しました。
mysql_connect();
mysql_select_db();
ソースのこのあたりです。
どうすれば解決できますか?
0851nobodyさん03/06/01 23:30ID:???
>850
サーバを変える。空いてるところに
0852nobodyさん03/06/02 02:50ID:VH23vLoj
>>851
レン鯖なので変えられません。
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_MySQL_Optimization.html#Server_parameters
ここを見ながらmax_connectionを設定しようと思うのですが、
まず説明の中のmysqldという実行ファイルがない。
mysqlで--helpしても
max_connectionは出てこないし。
いったいどうすれば…
085385203/06/02 03:18ID:???
自己レスですができますた。
自分の環境では
safe_mysqld
がそれに当たっていて、一旦止めてから
safe_mysqld -O max_connections=500 &
としました。
mysqladmin variables
で確認したら設定できているよう。
これで解決できるのかどうかはまだ不明ですが。
0854nobodyさん03/06/03 17:17ID:1aVIbVtl
>852
何も書いてなかったんでありがちな、
"無料"で共用サーバ使ってて文句たれてんのかと思ってた…わりぃ

MySQLもPHPも自分のコントロール下にあるなら、php.iniの
module settingの[MYSQL]の項にもコネクションに関する設定があるので
そちらも見直してみてください。最近のPHPのデフォルト設定だと制限無し
になってるのですが、それに制限が掛かっているかもしれません。
0855nobodyさん03/06/03 17:49ID:1aVIbVtl
あ、あとmax_connectionsを増やすというのは、アタリ。
デフォルト(あらためて指定しない場合)は100とかなり小さいので
全然設定を見直してないと直ぐに上限に達します。

起動パラメータとして直接指定しても構いませんし、
設定ファイルmy.cnfやmy.iniに記述しても構いません。
#私はcnfで1024を指定しています。
0856nobodyさん03/06/03 17:56ID:???
こっちも参照
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Problems.html#Too_many_connections
0857nobodyさん03/06/04 01:42ID:???
mysqldump --helpコマンドを打っても反応なし
これはなんかインストールしてなかったからでしょうか?
ちなみにLINUXのRPMバージョンのServerとClient programsとLibraries and header filesを入れてまつ
0858nobodyさん03/06/04 02:00ID:+AMYXFHe
みてね♪
http://www1.free-city.net/home/s-rf9/page006.html
0859nobodyさん03/06/04 04:21ID:???
>857
ClientのRPMに入ってるはずだけどねぇ。RPMはどこの?
取り合えずpathの影響かも知れんから、ダイレクトに叩いてみたら?
0860nobodyさん03/06/05 00:31ID:???
>>859
MySQL.comで入手した最新のRPM(4.0.13)でつ
それほど弄ってるわけではないので不思議でたまらないでつ
・・・ところでダイレクトに叩くとは?
mysql -u root -p DBname
を使わない方法でつか?
0861nobodyさん03/06/05 02:12ID:???
>860
RPMをインストールした時に置かれることになっている場所を
直接指定して叩くということ。

MySQL ABのMySQL-client-4.0.13-0.i386.rpm拾ってきてみて、中身見てみたけどたけど
# rpm -qlp MySQL-client-4*.rpm
/usr/bin/msql2mysql
/usr/bin/mysql
/usr/bin/mysql_find_rows
/usr/bin/mysql_waitpid
/usr/bin/mysqlaccess
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqlimport
/usr/bin/mysqlshow
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlshow.1.gz
入ってるけど?

/usr/bin/mysqldump --helpと叩いて味噌。
その前に「rpm -qa | grep -i mysql」して、
MySQL-clientパッケージがちゃんと入ってるか見た方が良いかも
0862nobodyさん03/06/05 20:06ID:???
>>861
で、できますた!
なぜ動かなかったのだろう?
と、とりあえずこれからゆっくり原因を研究してまつ。
はやくタコ状態を脱出しないと・・・
とにかくめっちゃサンクスコでつ!!!
0863nobodyさん03/06/06 13:23ID:9Sig5kBB
mysqlで
4000くらいのレコードのソートって結構負荷かかります?
それでランキングの表示をしていたんですが、
そこの呼び出しが集中(1時間に1000くらい?)したら
マシンがほとんど無反応になる(pingは反応するがsshでも入れない)
んですが。
連鯖でメモリは64Mだっと思います。メモリが少なすぎるんですかね?

086486303/06/06 13:29ID:9Sig5kBB
しかもその状態が半日続いたりします
その後遺症の方がでかいです
0865nobodyさん03/06/06 14:02ID:???
んなこたない。
テーブル構造と使ってるSQL書いてみ。
メモリは確かに少ないかもね。共有鯖かい?
086686303/06/06 21:40ID:9Sig5kBB
専鯖です
columnsは
int(10) unsigned
varchar(20)
varchar(60)
varchar(8)
varchar(40)
varchar(200)
tinyint(4)
varchar(40)
text
text
varchar(40)
varchar(40)
tinyint(4)
int(10) unsigned
varchar(15)
varchar(15)
datetime
varchar(255)
で、
select counter from data_T order by counter desc
これをコマンドで打ち込むと11秒かかりました。
こんなものでしょうか?
0867 03/06/06 22:27ID:???
>>863
DBの使うリソースが心配だったら、cronなんかで定期的にランキングを
ファイルに出力させて、そちらにアクセスさせる。
っていう方法で逃げるってダメ?
0868nobodyさん03/06/07 00:46ID:???
メモリ64Mから察するに鯖の性能自体に問題があるような気が・・・

CPUが266MHZとかATAのHD一つしか付いてないとか・・・
0869nobodyさん03/06/07 01:48ID:???
 つうか、プライマリーキーがないじゃん・・・
0870nobodyさん03/06/07 10:54ID:???
my.cnfの設定項目で「table-cache 512」ってのがあるけど、
これって、テーブル(最大512個)をそのままメモリにぶち込んでくれるってこと?
ハードディスクの負担が軽くなると嬉しいけど。
087186303/06/07 18:02ID:???
>>867
それがベストですね。
そんなにリアルタイム性が要求される種類のランキングでもないので、
1日一回更新にします。
さっき解析みたら11秒かかるソート処理が1分に6回くらい呼ばれていました。
プロセスが別だと思うので単純に足し算はできないですが、
多い時にはそれがもっとあったはずなので…。
>>868
3年くらい前に借りた鯖なのでスペック的には結構しょぼいかもしれません。
266MHZはいくらなんでもないと思いますが…。
>>869
一番上のint unsignedがプライマリキーになっています。
0872nobodyさん03/06/07 22:39ID:???
>>863
そのcounterとかいうカラムにインデックス張ってる?
0873nobodyさん03/06/07 23:09ID:???
つかMySQL4.0ならクエリーキャッシュって手があるんだが・・・
もっとメモリをのせれ
087487303/06/07 23:14ID:???
whereがなくデータを全部取得してるから、
インデックスの効果も薄いような・・・
データ取得途中でメモリの空き容量がなくなって、
スワップ起きてるんじゃないかな?
0875nobodyさん03/06/09 17:12ID:7gQlaCxU
他鯖のMySQLから、
mysql_query()でselectした場合、
その時点ですべてのデータが送受信されるのでしょうか?
それともその時点ではポインタのような情報のみ送られて、
mysql_fetch_row()などした時だけ、その分のデータが送られるのでしょうか?
0876nobodyさん03/06/10 23:45ID:???
>>875
php_mysql.c,v 1.174.2.12読んだ感じでは、そのままコンパイルすると
PHPのmysql_query()関数でクエリ実行が成功したら、
MySQL APIのmysql_store_result()してるみたいなんで
PHP-MySQL間では結果セット全てを取ってきてますな。

"他鯖"っても同じサーバで動いてようと、
PHPから見りゃMySQLは"別"なんで自/他だろうが変わんないよ
0877nobodyさん03/06/11 11:09ID:eWSXWUXf
Mysqlで
SELECT * FROM hogetable WHERE hoge='mona'
としても
SELECT * FROM hogetable WHERE hoge='mona '
としても同じ結果が帰ってくるのですが,
語尾のスペースもちゃんとみるようにするにはどうしたらよいですか?
0878_03/06/11 11:16ID:???
http://homepage.mac.com/hiroyuki44/hankaku06.html
0879nobodyさん03/06/11 13:09ID:???
質問なんですが
アドレス帳を作るときに、
電話番号というフィールドを作るのですが、
電話番号を複数持っている場合がありますよね。
こういうときはどういった処理をさせればいいのでしょうか。

単純に電話番号1、電話番号2、電話番号3・・・・
とフィールドをいくつか作るしかないのでしょうか。
0880nobodyさん03/06/11 13:15ID:eWSXWUXf
>>879
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=rdb+%E6%AD%A3%E8%A6%8F%E5%8C%96
0881nobodyさん03/06/11 13:16ID:???
リレーションを使うんだよ
0882nobodyさん03/06/11 13:20ID:???
正規化って、単純に同じ会社とかが続く場合IDを設定して
別のテーブルと関連づけてどうのこうのっていう
使い方だけじゃないんですか?
0883nobodyさん03/06/11 13:55ID:???
>>882
とりあえず、>>880でヒットしたページを読め
0884nobodyさん03/06/11 14:02ID:???
>>882
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=rdb+%E6%AD%A3%E8%A6%8F%E5%8C%96+%E5%9F%BA%E7%A4%8E&lr=
0885nobodyさん03/06/11 14:16ID:???
オブジェクトの数だけ新たに関連テーブルをつくるってことですか?
0886nobodyさん03/06/11 14:21ID:???
あーわかった。
キーを同じくしてオブジェクトを複数作る感じですか。
0887nobodyさん03/06/11 14:31ID:???
>>886
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%E6%80%A7%E5%99%A8%E5%8C%96&lr=
0888nobodyさん03/06/12 01:26ID:???
>>877
SQLの文字列型フィールドの扱いを考えたら判る。更にMySQLの場合VARCHAR型は
「後続の空白は値の格納時に取り除かれる(この空白の除去は ANSI SQL仕様とは違っています)」
という仕様があるので、バイナリ型(BLOB型やTEXT型)を使う形になる。
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html#String_types

また、末尾の空白が入る可能性のある"特殊な"フィールドに対して
値の最後尾に必ず何らかの文字を1byte入れると決めておいて、
その1byteを入り/出しの際にハンドリングするようにプログラムを作る
という方法でもある程度はカバー可能かと思う。
0889nobodyさん03/06/12 10:08ID:rhXQRsqY
おはようございます〜
これからySQL使おうとしてて、この間インストールしてパスワード設定までしたけど
パスワードを忘れてしまったので、もう一回設定しなおそうと思い、
アプリケーションの追加と削除で全部消してから、インストールしなおしたんだけど、
最初の起動の時って、ユーザー名とパスワード聞かれたのに、
今回は聞かれないんです・・・?
なぜ?アプリ削除しても、どっかに設定の履歴残っちゃってるのかなぁ・・・
検索かけてみたけど、それらしいファイル等は見つからず。。。
でも、パスワードわかんないから、入ろうとしても
ERROR 1045: Access denied for user: '[email protected]' (Using password: YES)
ではじかれちゃうんです・・・(T-T)
どなたか、再設定のいい方法知ってますか?
0890nobodyさん03/06/12 12:04ID:???
>>889
まずySQLの再インストール
それでもだめだったらMySQLの再インストール
それでもだめだったらOSの再インストール
それでもだめだったら窓から投げ捨てる
それでもだめだったらとりあえずオナニーして帰宅
それでもだめだったら疥癬切手首釣って寝る
0891nobodyさん03/06/12 14:59ID:???
>889
MySQLはユーザ管理情報をデータベース上に持っている。
これは再インストールしても削除/上書きされない
(上書きされるようならかえって困る)
パスワードを忘れたぐらいなら、下記の方法で再設定。
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Problems.html#Resetting_permissions

読んで意味が判らんとか、Windowsでのやり方を手取り足取りなんて言うヤツは
「アンインストール→インストールディレクトリ削除→再インストール」の手順。
0892nobodyさん03/06/13 02:22ID:pF2u1x3J
複数のMySQLサーバーでクラスタリングってできますか?
どこ探してもレプリケーション止まりで・・・。
089387903/06/13 06:31ID:???
879です。
serial_idを導入し、
第2正規化までして表を分割することで解決できました。
ここでまた質問なのですが、
この分割した表を結合して表示すると
ID 名前   電話
01 はなこ 03-2222-2222
01 はなこ 00-0000-0000
02 あおき 00-3253-2123
03 なおこ 43-2342-2342
のようにIDが重複して表示されるのですが
コレを

ID 名前   電話
01 はなこ 03-2222-2222
       00-0000-0000
02 あおき 00-3253-2123
03 なおこ 43-2342-2342

のように表示させるにはどうしたらよいのでしょうか。
何か便利な機能などあるのでしょうか?
0894nobodyさん03/06/13 08:00ID:???
>>893
女陰
0895nobodyさん03/06/13 08:04ID:???
>>893
削除依頼だすよ
0896nobodyさん03/06/13 10:16ID:???
>>892
クラスタリングは出来ない。その辺が必要ならOracleとかPostgresを採用。
マスタ−スレーブ・レプリケーションは可能。つまり検索の負荷分散はできる。
マスタ−スレーブの切り替えは自動では出来ない(スクリプト書きゃ簡易的には出来るのかな)ので
障害時にマスタが死んだ時に、スレーブ→マスタへクラスチェンジするにはちょっとだけ作業時間が時間が掛かる。
#Postgresのクラスタリングも障害対策としてじゃなくて負荷分散化の手法だったと思うけど。

つかDBのクラスタリングはOracleだと150万円ぐらいからの世界だし、元々MySQLが得意とする分野ではないな。
スピードが欲しければCPUの数と何よりも"DiskI/O"を上げた方が手っ取り早いです。
MySQLじゃなくても、Oracleであっても多くの場合そうしてるはず。
0897nobodyさん03/06/13 10:24ID:???
>>892
ちょっと違うかもしれないけど

http://www.softagency.co.jp/mysql/emic.html
0898ド素人03/06/14 13:48ID:FXhQPxM8
すいません。質問です。
PHP + MySQLを利用したシステムの設計で悩んでいます。
コスト上の制約で、共有レンタルサーバーでの環境になりそうなのですが、
深夜の決められた時刻にバックアップを自動で行うような事は可能なので
しょうか?
スケジュールによる自動実行は、CRONが一般的なのでしょうけれど、それ
を許している共有レンタルサーバーは、少なそうなもので、CRON以外の実
行方法があれば、教えて頂きたいのですが。
宜しくお願いします。
0899nobodyさん03/06/14 13:59ID:???
>>898
MySQLにはMySQLDumpという便利なツールがついていて,
DBの内容をSQL文にしてダンプしてくれる。
これをシェルスクリプトかなんかで圧縮して保管したりftpで別ホストに投げたりするのを書いて,
crontabで時間を決めて実行させるようにすればできる
crontabが使えないのなら,crontabが使える別ホストから,上記のシェススクリプト
を起動するようなスクリプトを書けばよい
0900nobodyさん03/06/14 14:06ID:???
>>899
結局cronやん(;´Д`)
0901_03/06/14 14:30ID:???
http://homepage.mac.com/hiroyuki44/
0902ド素人03/06/14 14:32ID:FXhQPxM8
>>899さん
ご丁寧な返信、ありがとうございます。
やはり、CRON系になりますよネ..。
導入後は、極力メンテナンスフリーにしたいもので、別ホストからのキック
という行為も、避けたかったりなんです。
バックアップしたいのはDBだけなのですが、難しい環境ですよネ..。
PHPやMySQLに、スケジュール実行機能のようなものが用意されていれば、そ
れを使いたいのですけれど、無さそうですし..。
090389903/06/14 14:49ID:???
>>902
たとえばデータの更新をする際にカウンタをとって,INSERTかUPDATEが25かい
行われたらMySQLdumpを起動してバックアップみたいなコードを書くのはどう?
「時間を決めて」にはならないけど
0904nobodyさん03/06/14 14:49ID:???
>902
スケジュール実行つう時点でPHPにもMySQLにもそういった機能はない。
これはUNIX系ならcron,atとかWindowsならスケジュールなんやらの機能。
んでバックアップはdump以外には、SQLのSELECTによるベタ抽出、
DBファイル自体のバイナリーバックアップなんかがある。

>別ホストからのキックは避けたい
まず共有レンタルサーバーでMySQL/cronの両方が使えるところを探す
バックアップは先のバイナリーバックアップやdumpの方法は、共有サーバだと
手段が提供されていない可能性があるので、使えるか確認。
SSH等でコンソール操作が開放されているサーバが良い。
海外サーバだと該当するところで安いところ結構ありますよ。
(極端に安いところは避けること最低US$10/mth以上)

あとサービスにデイリーバックアップがあって、バックアップからの戻し作業に
比較的柔軟に対応してくれるところを探す。ハード障害時の戻しは普通にやってくれる
けどユーザの都合による戻しは、規定サービス外になるからね。
0905nobodyさん03/06/15 00:16ID:???
でもコンソール操作まで開放されてるような共有鯖ってちと怖くねえ?
扱うデータにもよるけど・・・・
0906nobodyさん03/06/15 00:27ID:???
>>905
俺はシェル使えない時点で却下。
どんなに安くて良さげな鯖でも。

cron で実行するのはだいたいシェルスクリプトだと思うから
シェルがつかえないんじゃスクリプトの動作チェックもできやしない。

それに SSH 使えりゃ FTP は不要だし、通信路が暗号化されて
データ盗まれる心配もないし。
0907ド素人03/06/15 19:30ID:ZJ3F1oWL
Apacheのレベルでは何とかなりそうですよネ。
http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08a.html

共有レンタルサーバー、プライバシーのレベルで、同居人同士の干渉はシェル
レベルでも避けたいものです。UI上でも、他人の存在は一切知らない/気付か
ないでいたいものです。
負荷の部分でも、干渉を避けたいですけれど、これは借りてみないと分からな
いですし..。

ここまでのアドバイス、大変助かりました。感謝しております。
SQLもPHPもそれほど詳しくないもので、機能として存在するかがネックでした。
また何かありましたら、宜しくお願い致します。
0908nobodyさん03/06/16 01:04ID:???
>907
シェルレベルでは案外きちんと干渉問題にはならない設定になってます。
元々そういう使い方を想定してるから>UNIX系
0909PerlでDBM03/06/17 15:50ID:nJC3WMH6
MySQLの旧コア部
BSD DB(Berkeley DB)
の方がMySQLより早いのかなわからない。
ので教えてくださいませんか。
サンプル有り
http://www.ecopig.jp/comucale/dbm.htm
0910nobodyさん03/06/17 16:17ID:???
ttp://japan.mysqlstudio.com/index.php
↑のnavicatってどうなん?

DLしてみたけど接続できない。。。

検証お願い〜つД`)
0911nobodyさん03/06/17 20:55ID:???
>>910
なかなかよかったよ
0912nobodyさん03/06/17 22:16ID:???
前にDLしたときEUC-JPが文字化けしたんだけど
もう直ってる?
0913nobodyさん03/06/18 17:23ID:ncBdk+Qv
PHPとは関係なく、MySQLの事なんですが
DBでカウンタなどを作る場合、一度SELECTで呼び出さずに
UPDATEの時に数値を増やす事って出来ますか?
0914nobodyさん03/06/19 00:01ID:KVEfyld0
MySQLとPostgreSQLの違いって何ですか〜
初心者で御免

0915nobodyさん03/06/19 01:12ID:???
>>913
UPDATE table SET count = count + 1 のように
SETの値に自身を含ませた算術式を用いることでカウントアップができる。
UPDATE文の基本的な使い方なのでマスターすべし。
0916nobodyさん03/06/19 01:27ID:???
>915
有難うございます!
悩んでいたので、これですっきり眠れそうです。
0917nobodyさん03/06/20 00:46ID:???
>>914
綴りが違う。あと、
速さ PG<My
機能 PG>My
0918nobodyさん03/06/26 12:56ID:ruPp/IY2
phpmyadminを使って
データベースの内容を修正しようとしています。
タイプがvarcharなのですが、そこに日本語を使おうとすると、
phpからそこを呼び出して、表示させる際に必ず文字化けしてしまいます。
(phpmyadmin上では文字化けせずにちゃんと表示されるのですが・・)

解決策がありましたら教えてください。
よろしくおねがいします。
0919nobodyさん03/06/26 13:12ID:???
phpmyadminのエンコードは?
表示させてるエンコードは?
かいてみ。
0920_03/06/26 13:16ID:???
http://homepage.mac.com/hiroyuki44/
0921nobodyさん03/06/26 15:03ID:???
エンコードがおかしかったみたいです。
mb_convertつかったらちゃんと表示されました。

>>919
どうもありがとうございました。
0922nobodyさん03/06/28 00:23ID:aMKyXNMC
Linuxの半角の大文字小文字が混在するカラム内のデータ検索で、
大文字小文字を無関係とする検索は可能?
0923nobodyさん03/06/28 01:52ID:???
>>922
つかBINARY属性のつかない、普通のCHARとVARCHARフィールドの値はケース依存しない。
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Reference.html#CHAR
092492203/06/28 02:07ID:???
>>923
ありがとう。わかりました。
0925nobodyさん03/06/28 13:00ID:???
MySQL初心者の質問です。

数値型のワイルドカードというのはあるのでしょうか?
つまり
select * from table where int >= ○○○;
のような文で、○○○にワイルドカードを入れると常に結果が真になるようなものです。
ご教示願います。
0926nobodyさん03/06/28 15:55ID:???
>>925
MySQL以前に「数値型のワイルドカード」って何(数学の問題)?

常に結果が真が欲しいなら"1"とか"1 = 1"とでも書けば良い。
そもそもWHERE節を使う必要もない。
NULLを外したい(数値との条件)のなら、"IS NOT NULL"

○○○の部分だけを変えて動作を切り替えようとしてるから、どうして良いか
判らなくなってるんだと思うけど、普通WHERE以降の条件部分全てを変えるか、
WHERE節ごと変化(付けたり付けなかったり)させる。
レス数が900を超えています。1000を超えると表示できなくなるよ。