MySQL 総合 Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001NAME IS NULL
05/02/11 21:24:15ID:???■ 公式サイト
http://www.mysql.com/
http://www.mysql.gr.jp/
■ リファレンスマニュアル
http://dev.mysql.com/doc/mysql/ja/
■ メーリングリスト
http://lists.mysql.com/
http://www.mysql.gr.jp/ml.html
■ 前スレ
MySQL 総合 Part3 http://pc5.2ch.net/test/read.cgi/db/1096838301/
MySQL総合 Part2 http://pc5.2ch.net/test/read.cgi/db/1079502373/
MySQL総合 http://pc2.2ch.net/test/read.cgi/db/1056942908/
0002NAME IS NULL
05/02/11 21:25:15ID:???phpMyAdmin http://www.phpmyadmin.net/
MySQLCC http://www.mysql.com/products/mysqlcc/
GMysqlCC http://gmysqlcc.thepozer.net/
MySQL Designer http://www.alhem.net/dbdesigner/
■ MySQL書籍リスト
http://www.mysql.com/portal/books/
http://www.mysql.gr.jp/books.html
■ MySQL解説記事
快速MySQLでデータベースアプリ!
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html
■ 関連スレ
mysql ヘルプ! http://pc2.2ch.net/test/read.cgi/php/1011683282/
MySQL vs PostgreSQL http://pc5.2ch.net/test/read.cgi/db/1056943680/
0003NAME IS NULL
05/02/11 21:46:26ID:???6.3.6.2 その他の各種関数
6.4.8 LOAD DATA INFILE 構文
1.8.4.4 ストアドプロシージャとトリガ
1.8.4.6 ビュー
2.2.6 MySQL がサポートしているオペレーティングシステム
3.3 データベースの作成および使用
4.4.1 GRANT および REVOKE の構文
4.5.6.5 myisamchk のその他のオプション
4.8.2 mysqld_safe(mysqld のラッパ)
4.9.9 mysqlimport(テキストファイルからのデータのインポート)
5 MySQL の最適化
6.2 カラム型
6.2.2.2 DATETIME、DATE、TIMESTAMP 型
6.3.2 文字列関数
6.4.1 SELECT 構文
6.4.1.1 JOIN 構文
6.8.2 MySQL 全文検索の調整
6.8.3 全文検索に関連する TODO 項目
A.5.3 NULL 値の問題
G MySQL の正規表現
0004NAME IS NULL
05/02/11 22:03:18ID:???0005NAME IS NULL
05/02/11 22:18:19ID:???0006NAME IS NULL
05/02/11 22:23:30ID:???0007NAME IS NULL
05/02/12 02:53:24ID:pNOCDTMnttp://tangentsoft.net/mysql++/
0008NAME IS NULL
05/02/12 03:29:44ID:???0009NAME IS NULL
05/02/12 16:09:29ID:???++ですか。
使ってる人ってどれくらいいるんだろ?
0010NAME IS NULL
05/02/12 18:10:17ID:???0011NAME IS NULL
05/02/12 18:26:47ID:???C++ のドライバだろ。
0012NAME IS NULL
05/02/12 18:40:52ID:???MAXは地域限定。MAXは糖度が高い。
もちっと、どのMAXか限定してよ。
0013NAME IS NULL
05/02/12 18:47:58ID:???いや分かっているわけだが。
0014NAME IS NULL
05/02/13 07:39:45ID:???cd /path/to/mysql; mkdir bin-log; mv hostname-bin.* bin-log して
my.cnf に log-bin = /path/to/mysql/bin-log/hostname-bin と書いて
mysqld を再起動させたんですが、root で
mysql> show databases;
してみると何故か bin-log ディレクトリが勝手にデータベースとして
認識されちゃってます(^^;
なぜこんなことになっているのでしょうか?
ちなみに
mysql> use bin-log
Database changed
mysql> show tables;
Empty set (0.03 sec)
(^^;
0015NAME IS NULL
05/02/13 11:30:27ID:???mkdir bin-log
でフォルダを作ったからでは?
フォルダ=DB という仕様です。
0016NAME IS NULL
05/02/13 21:36:16ID:???それとも事前に圧縮して格納した方がいいんですか?
あとmyisampack-myisamchkの圧縮率は一般的に効果的ですか?
0017NAME IS NULL
05/02/14 00:09:00ID:BtBlqqvx圧縮はされない、効率的にレイアウトされる程度
(ファイルシステム/テーブルタイプによるが)
必要ならIn/OutにGZIP等を噛ます。
0018NAME IS NULL
05/02/14 01:33:29ID:???ファイルシステムもBツリーなReiserFS4を採用。
0019NAME IS NULL
05/02/14 09:53:25ID:???0020NAME IS NULL
05/02/14 10:08:47ID:?????よく分からないのですが、maxにも色々あるということでしょうか?
MySQLAdministratorで設定するときに、my.iniに起動するmysqlを選択できますが、
mysqld、mysqld-ntとの違いは、単体のexeなのかサービスとして動作するものなのかの
違いだと思っているのですが、それぞれにある、mysqld-maxと、mysqld-max-ntとは
なんなのでしょう?
現在調べているmysqlの環境はmysql-4.0.22です。
0021NAME IS NULL
05/02/14 12:15:12ID:???MySQL絡みだとMaxDBもあるし。
MySQLのバイナリでmaxであるかないかの違いは、
MySQL ABがコンパイルオプションで、「とある機能」を有効にして
ビルドしたかしてないかの違い。ただし「とある機能」はそのバイナリのバージョンにもよる。
>現在調べているmysqlの環境はmysql-4.0.22です。
前にも書いたけど、MySQL4.0.22だと
無印: 95/98/ME向け。デバックコードも含んでいるためサイズが大きく、動作は若干遅い。
opt: 95/98/ME向け。デバックコードは含まないため、無印よりも動作は速い。
max: optをBerkeleyDB(トランザクション)が使えるようにしたもの。
InnoDB(トランザクション)は、無印/maxのどちらでも使えるので、
MySQL3.xの頃のようにトランザクションサポートの有無の違いではない
nt: optまたはmaxをNT/2000/XP向けに最適化してビルド
(NTサービスとして起動、名前付きパイプの使用)
だから「mysqld、mysqld-ntとの違い」というのは合ってます。
002220
05/02/14 12:52:53ID:???なるほど!丁寧な解説ありがとうございます。
じゃあ、4.0.22の場合だと、maxを使用することで、BerkeleyDBが使用できるようになるということですか。
InnoDBとBerkeleyDBのどちらもトランザクションが使えるようですが、
内部的な難しい違いはほっといたとしたら、
・ロックは行単位でなく、ページ単位で行なわれる (ページ単位って?)
こんなもんでしょうか?
0023NAME IS NULL
05/02/14 14:00:14ID:???ページ単位というはのテーブル内のレコード群を容量単位でロックするということです。
一方の行単位というのは1レコード単位でロックをかけるということです。
InnoDBとBDBとの決定的な差異はInnoDBがMVCC機能を持っているということに尽きるでしょう。
これはロック個所の書き込みだけをアトミックにするということです。
ロックされているレコードを読み込むことは可能。BDBのロックだと読み込みも不可になってしまう。
以上、某書籍の受け売りです(^^;
002420
05/02/14 15:19:32ID:???解説、ありがとうございます。
MyISAMは、InnoDBと比べて高速という利点があるわけですが、
InnoDBではなく、BDBを使う機会はあまりないんでしょうかね。
1データベース内で、テーブルの用途に応じて、MyISAMと
InnoDBを使い分けるって設計は一般的でしょうか?
例えば、マスタ系はMyISAMで作成して、トランザクション系はInnoDBを使うとか。
考えるの面倒くさいから、全部InnoDBにしようと思っていますが。
0025NAME IS NULL
05/02/14 18:49:01ID:???SQLの最後の" "や";"の件
何だかこんがらかっています。超初歩的なことかも知れませんが恥を忍んでお聞きします。
SQLのクエリ文の最後なのですが、" "(半角空白)が入ったり、";"が入ったり、何も無かったり・・・
何がどー違うんでしょうか?
下記はネット上で拾ってきたクエリです。
最後に半角空白が入っている例(「常識」とおっしゃる方も・・・)
@$sql = "select wo,Ix,Iy,Zx,Zy from ibeam_tbl ";
A$sql = "INSERT INTO linkdata(gt_site, gt_kanri, gt_url, gt_os, gt_line, gt_bind, gt_mta, gt_www) ";
最後に";"が入っている例
B$sql = "SELECT COUNT(*) AS cnt FROM linkdata;";
)で終わる分には何もいらないのか?
C$query = "INSERT INTO ADDRESS (date,time,name,address,tel,email,memo) values ('$date','$time','$name','$address','$tel','$email','$memo')";
んぢゃ、Aとどー違うん?
何がどー違うんでしょ・・・(´・ω・`)?
0026NAME IS NULL
05/02/14 19:05:40ID:???半角スペースはあんまり気にしない。
ただ、文字列を連結してSQL文を書くときに、スペースを空けることがある。
$sql = "sellect * from hoge ";
$sql = $sql . "where field_foo = xxx";
1行目の最初でスペースを入れないと、from hogewhere となってしまうから、それを避けるために
末尾にスペースを入れているのでは?
@Aのように1行で完結する場合はスペースを空ける必要はないが、
入れる時と入れないときと、考えずに全てに入れているのだと思う。
セミコロンは、プログラムからSQLを実行する際には、いらないと思う。
あってもなくても良いかと。
sqlを実行するコンソールからSQL文を入力するときなんかは、
1文の終わりを示すためのセミコロンを使う。
別の言い方をすれば、1つのSQL文を何行使って書いてもいいから、セミコロンでsql文の終わりを伝えている
sql> select *
sql> from
sql> hoge; ←ここで「select * from hoge」のSQLを入力し終わったことを伝えている。
sql> select *
sql> from
sql> hoge ←まだ続きがあるのでセミコロンは入れていない
sql> where
sql> field_bar = xxx;
0027NAME IS NULL
05/02/14 19:09:00ID:???PostgreSQLならOKだったはず
0028NAME IS NULL@25
05/02/14 19:59:32ID:???とりあえず、" "(半角空白)を入れておけば間違い無さそうですね。
どこかのページで「常識」なんて書かれてあったので、驚いていました!
(聞いてねぇよ〜状態!)
お手数をお掛けしました。ありがとうございました。 m(_ _)m
0029NAME IS NULL
05/02/14 20:25:01ID:???だからといって、
・PHPの行末セミコロン
・シェルスクリプトの行末セミコロン
・C言語の行末セミコロン
・SQLの行末セミコロン
が全て共通の規約だと思っている時点でオワッテルと思うが。
0030NAME IS NULL
05/02/14 20:45:29ID:???0031NAME IS NULL
05/02/14 20:49:53ID:???0032NAME IS NULL
05/02/14 21:09:59ID:???SEE MySQL Reference Manual 2.2.6 and 2.6
0033NAME IS NULL
05/02/14 21:14:42ID:???ある。少なくてもウチのポケコンでは動かない。
0034NAME IS NULL
05/02/14 21:16:09ID:???そういうことじゃなくて、複数行クエリには対応して
いないんじゃない?ってことを言いたいのだと思う。
0035NAME IS NULL
05/02/14 22:20:27ID:Np6w1724自分のPC(Windows XP Pro)に MySQLとPHP、Webサーバーにはテスト用に
Apache をインストールしました。
2年ぐらい前、phpMyAdmin 2.2.7 を利用したことがありましたが、既存のテーブルに
レコードを追加する場合、「新しい行の追加」というメニューがありそこから追加
することができましたが、2.2.7 にはそれらしきメニューが見当たりません。
どなたか、ご存知の方既存のテーブルにレコードを追加する方法を
教えていただけますか。
それと phpMyAdmin 2.6.1の解説書やWebサイトがあれば教えてください。
(公式はなんだかごちゃごちゃして分かりづらいです)
0036NAME IS NULL
05/02/14 23:30:19ID:???0037NAME IS NULL
05/02/14 23:38:54ID:???>どなたか、ご存知の方既存のテーブルにレコードを追加する方法を
データベース選択して、テーブル選択すると
一番上に「追加」ってリンクメニューが出てくるでしょ
>それと phpMyAdmin 2.6.1の解説書やWebサイトがあれば教えてください。
ない。いじり回して体で覚えなさい。
phpMyAdminはバージョンアップの頻度が高いから、解説書いてもすぐに古くなってしまう。
0038NAME IS NULL
05/02/15 00:17:06ID:s+Y66ik4ローカルサーバーにphpMyAdmin-2.5.7-pl1をインストールして
テストしていたところ「特権無し」と表示されデーターベースの
新規作成ができなくなってしまいました。
apache、phpMyAdminとも再インストールしましたがダメでした。
どこを再設定すればよいのでしょうか。
環境はwin2000 service Pack4です。
よろしくお願いいたします。
0039NAME IS NULL
05/02/15 00:49:54ID:???phpMyAdminのconfig.inc.phpファイルを開いて
$cfg['Servers'][$i]['user']に「root」
$cfg['Servers'][$i]['password']にrootのパスワード
を指定しなさい
0040NAME IS NULL
05/02/15 01:21:36ID:???>phpMyAdminはバージョンアップの頻度が高いから、
>解説書いてもすぐに古くなってしまう。
だよね。俺も初心者向けに(自分じゃ使ってもいないのに、仕方なしに)
スクリーンショット貼り貼りの資料作ったんだけど、あっという間に陳腐化した。
0041NAME IS NULL
05/02/15 01:49:37ID:???0042NAME IS NULL
05/02/15 02:24:09ID:???>環境はwin2000 service Pack4です。
0043NAME IS NULL
05/02/15 03:38:31ID:s+Y66ik4$cfg['Servers'][$i]['user']
$cfg['Servers'][$i]['password']
の書き換えは行っていましたし、再インストールしてこの個所も書き換えた
のにうまくいきませんでした。最初にインストールしますとデフォルトの特権
が指定してありますが、おそらくこれを削除したのか書き換えたのだと思います。
設定に関しましてもう一点不明なことがあります。正常に動いているときか
らですが、phpMyAdminのconfig.inc.phpの
$cfg['Servers'][$i]['host'] = 'localhost';
のhostをlocalhostに書き換えると動作しませんでした。host以外はだめでした。
PHP、apache、phpMyAdminの再インストールで元に戻らないので、私の残さ
れた対処法はOSごとの再インストールですが、いろいろと時間がかかるの
で、できればそれは避けられたらと思います。使用ソフトのバージョンは次の
とおりです。
apache 2.0.39
MySQL 4(細かいverは?です。どこで確認できるのでしょうか)
phpMyAdmin 2.5.7-pl1
PHP 4.2.2
アドバイスよろしくお願いいいたします。
0044NAME IS NULL
05/02/15 03:42:43ID:qoH68y+6まぁ初心者でレン鯖使ってる奴はくれぐれも生パス情報書いてある
設定ファイルのパーミッションを間違いないようにしろよ。
特に問題ないならconfは600ぐらいにしとくべし。
0045NAME IS NULL
05/02/15 04:25:22ID:???> MySQL 4(細かいverは?です。どこで確認できるのでしょうか)
% mysql --version
0046NAME IS NULL
05/02/15 07:34:27ID:???ググって集めた情報で make してみたが、どうにも作れなかった orz
0047NAME IS NULL
05/02/15 20:24:48ID:???間違いなくrootのアカウントを指定したんですよね?
rootなら自分の権限を自分自身で変えられるはずだけど…
phpMyAdminの初期画面に「特権」てあるでしょ?
そこ見てrootの権限書き換えてみたら?
0048NAME IS NULL
05/02/15 23:33:46ID:???0049NAME IS NULL
05/02/16 01:43:21ID:???4.1はバカ!
0050NAME IS NULL
05/02/16 05:42:15ID:???まぁ、同意
0051NAME IS NULL
05/02/16 09:07:48ID:wZt+xKmcmysql4.0.23
phpMyAdmin2.6.1で
「扱えない拡張子のファイルです 」
と出てきてしまいます。
phpmyadminをおいてあるディレクトリでphpinfoとかは表示させられるので
原因がよくわかりません。よろしくお願いします。
0052NAME IS NULL
05/02/16 10:41:01ID:???http://www.itmedia.co.jp/enterprise/articles/0502/15/news107.html
違う〜。欲しいのはGPLじゃなくて、CMLの簡素化/低価格化の方だって...
0053NAME IS NULL
05/02/16 11:21:23ID:???0054NAME IS NULL
05/02/16 12:37:23ID:???・MySQLを使ったシステムを顧客に売る
・MySQL自体はバイナリを使うだけで、改変とかは一切なし
・システムはRDBMSとしてMySQLを使っているだけだが、
細かいSQLの互換性なんかがあるから、MySQLがないと
動作しないシステムと考えてよい
・システム開発の費用を顧客からもらうが、
MySQL自体を販売はしているわけではない。
・でもシステム導入の費用はもらって、ダウンロードしたMySQLの
セットアップを請け負う
・納品物としては、MySQLはつけないでシステム本体のバイナリと
ソースを顧客に納品する
・顧客向けのシステムなので、ソースコードを一般に公開はしない
これによると、
http://www.softagency.co.jp/products/mysql/process.html
「そのソフトの改変と再配布を無制限に誰にでも許可しますか?」
⇒Noなので、CMLにしなければならないの?
例えば、これが自社内システムならGPLでOK?
もしくは、MySQLでなくとも一般的なRDBMSならOKなつくりにすればOK?
0055NAME IS NULL
05/02/16 12:53:32ID:???持ち出されるのを止めれるのかどうかとか問題は多い希ガス
005654
05/02/16 13:20:45ID:???>一応社内のみのシステムならOKだけれども、
それは、
>>例えば、これが自社内システムならGPLでOK?
こっちのことに対するOKですか?
それとも、一番最初に長々と書いた条件でも「CMLの必要なし」という意味でしょうか?
補足すると顧客の社内向けシステムと考えた場合です。
もちろん、仮想のケースを書いているだけなので、
あなたに「ライセンス違反じゃないよね?」って確認と責任を求めているわけではなく、
見解を聞きたいだけなのですが。
0057NAME IS NULL
05/02/16 13:22:37ID:???社長命令でMySQLも入れろといわれてしまいました_| ̄|○
で、いれようと思うのですが、postgresが既に入っている
サーバーにmySQLをいれて、同時に起動させてた際に
問題になる事や弊害はなにか有るのでしょうか?
googleなどで調べてみたのですが、それらしいサイトを
見つけることが出来ませんでした…(多分調べ方がわるいんだろうな)
そこでどなたか、そういうことをやられた事がある方
もしくは該当するようなサイトを教えてもらえませんか?
0058NAME IS NULL
05/02/16 13:29:24ID:luFECCIC>問題になる事や弊害はなにか有るのでしょうか?
ない
ポスグレとMySQLのメモリ使用料だけ頭にいれとけ
0059NAME IS NULL
05/02/16 13:41:00ID:???http://www.phpmyadmin.net/pma_localized_docs/Documentation_ja.html
0060NAME IS NULL
05/02/16 14:07:43ID:???別に問題ないよ。
外からPort使って繋げるなら重ならないように注意するぐらい。
まあ、それも両方ともデフォルトなら重なることもない。
0061NAME IS NULL
05/02/16 14:11:22ID:???どうやってMySQLに繋がってるかが不明。そこのところが重要。
あと最新のクライアントライブラリはPDS/LGPLじゃなくて、GPLだってことも。
006254
05/02/16 14:31:54ID:???返答ありがとう。なるほどクライアントライブラリが関係してくるわけですね。
MySQL本体は4.0.23として。
ケース1
Connector/ODBC 3.51をつかって、Excelからデータ取得したりしている。
GPLであって、ソフトはConnector/ODBCを使わないと動作しない。
⇒顧客に配布するにはCML必要?
ケース2
でも実は、ODBC経由であれば動作するので、Connector/ODBCである必要はない。
「このExcelアプリは、ODBC経由で接続できるDBならOKですから、
適切なDBとODBCドライバを用意して、使ってください」と名目上の理由をいってアプリを売る。
顧客は社内向けに自身でMySQLとConnector/ODBC 3.51を選択した。
セットアップは請け負った。⇒こっちはCML不要?
JDBC接続も同様。 こんな考えはどうなんでしょうか?
0063NAME IS NULL
05/02/16 14:54:53ID:???>>60
ありがとうございます
これで心起きなく使用できます。
0064NAME IS NULL
05/02/16 18:23:58ID:???本来、後者なら回避できそうなんだけど、
http://pc5.2ch.net/test/read.cgi/db/1056943680/668-680
にあるようにMySQL的にはMySQLを使って再配布されたくないものは
CMLとれというのが基本方針だからなぁ。
下手な方便つかって回避策考えないといけないようなら、素直に
PostgreSQLを使うべきでは?
0065NAME IS NULL
05/02/16 19:05:42ID:???0066NAME IS NULL
05/02/16 19:26:01ID:???いまさらどうよ。いくら4.1がアレだからといって、5.0でも今の
仕様は受け継がれていくわけで。
006754
05/02/16 19:53:33ID:???なるほどありがとう。
>下手な方便つかって回避策考えないといけないようなら、
>PostgreSQLを使うべきでは?
別にいま使おうと選定に迷っているわけでなく、
MySQLを使うときのライセンスについて知りたかっただけ。
サンクスです。
0068NAME IS NULL
05/02/17 00:14:41ID:???5.0ってどうなん? 今4.0なんだが。
サブクエリが使えるとか、拡張されてる分は見りゃわかるんだが、
安定度や、パフォーマンスとか、管理面とかは公式にも比較資料が見当たらない。
5.0勧める以上は、数ヶ月くらい使い込んだ感想なんかを聞かせて欲しいんだが。
ライセンスに関しては、具体的事例を示して解説するページくらい作って欲しいな。公式に。
まぁ、高いなら高いで他DBも視野に入って来るから、そんな無茶な話にはならないとも思うが。
0069NAME IS NULL
05/02/17 01:12:35ID:???windows版で4.1、5.0使うのはチャレンジャーつか人柱だとだけ。
0070NAME IS NULL
05/02/17 01:34:09ID:???4.1は5.0の機能を一部先取りバージョン
4.0は安定した枯れたバージョン
0071NAME IS NULL
05/02/17 07:17:31ID:???WindowsXP/php5.0.3/mysql4.1.9/phpMyAdmin2.6.1で同じ様になってた。
http://allabout.co.jp/career/database/closeup/CU20040928A/index.htm
を見てlibmysql.dllっていうのをC:\Windows\system32内にコピペして、
php.iniをいじったらうまくいきました。PHP4だとこっちかな。
http://allabout.co.jp/career/database/closeup/CU20031114/index.htm
007271
05/02/17 07:35:21ID:???ttp://localhost/略/phpMyAdmin/index.phpを開きユーザー名とパスワードを
入力すると
Fatal error: Call to undefined function PMA_reloadNavigation() in
D:\Apache/略/phpMyAdmin/header.inc.php on line 132
というエラーが3箇所に出てうまく表示されません。
原因分かる方、教えてくださいm(__)m
007371
05/02/17 08:20:48ID:???http://sourceforge.net/tracker/index.php?func=detail&aid=1111855&group_id=23067&atid=377408
ここに載っていました。
0074NAME IS NULL
05/02/17 11:29:57ID:???MySQL4.0→MySQL4.1での文字コート絡みの変更で
phpMyAdminの場合、結果としてそんなエラーとして現れるんだね。
改修されたみたいだけど、覚えとこ。
0075NAME IS NULL
05/02/19 13:25:10ID:N/12/J4L文字化けについて質問させてください。
現在、以下の環境でMySQLのGUIクライアントを色々試しています。
[サーバ]
OS:Fedora Core 3
MySQL:4.1.9
007675
05/02/19 13:26:32ID:N/12/J4Lちゃんと書いて出直してきます…。
007775
05/02/19 13:36:28ID:N/12/J4L文字化けについて質問させてください。
現在、以下の環境でMySQLのGUIクライアントを色々試しています。
[サーバ]
OS:Fedora Core 3
/etc/sysconfig/i18nを以下に変更
LANG="ja_JP.eucJP"
SUPPORTED="ja_JP.eucJP:ja_JP:ja"
MySQL:4.1.9
/etc/my.cnfで以下を追記
[mysqld]
default-character-set = ujis
[client]
default-character-set = ujis
[mysql]
default-character-set = ujis
[クライアント]
OS:WindowsXP SP2
試したソフトウェア:
Navicat2004(試用版)⇒日本語が文字化け
MySQL Query Browser⇒日本語が文字化け
具体的には、Blob型、text型のフィールドに上記クライアントから
データを入れると、文字化けするという現象です。また、サーバ側
のプロンプトから日本語入力をすれば大丈夫なのですが、クライアント
からそのデータを見ると文字化けします。
Navicatには、サーバーの接続設定でEncordが選べるようになっており、
そこで「EUC」を指定しても変わらないみたいです。Query Browserの
方は、そもそもそういう設定が見当たりません。
もし、上記クライアントをEUC環境で使えている方がいらっしゃいましたら
設定方法等ご教授いただきたく、お願いいたします。
0078NAME IS NULL
05/02/19 15:31:06ID:???サーバ側のプロンプトから入力して正常ってことは、UTF8の文字コードをDBに放り込んでる可能性が高い。
しかも、mysqlの設定がUTF8になっていない。
二重・三重に文字コードの扱いを間違ってるに一票。
0079NAME IS NULL
05/02/19 15:45:44ID:???それは設定しなおしてるみたいだから、他へ影響は置いておけば
MySQL絡みのところとは関連しないと思うよ。
MySQL4.1.xのサーバとクライアント間のエンコーディング変換の
問題が関係してると思う。MyNAのFAQ参照して設定してみては?
0080NAME IS NULL
05/02/19 16:37:54ID:???008178
05/02/19 16:59:01ID:???i18n書き換えているのか。
見落としていたスマン。
008275
05/02/19 17:22:31ID:N/12/J4Lレスdクスです。
MyNAのFAQ読んできました。おおむね理解できました。
>>80さんが仰るとおり、自分もUTF8にしといた方が楽
なような気がしてきました。
VirtualPC上に開発環境組んでいるので、とりあえず
今の環境はおいといて、UTF8環境を作って試してみる
ことにします。
既存のリソースがEUCなので、安易にEUCにしてみたん
ですが、考え直す必要がありそうです。
それにしても、4.1からえらい変わりましたね。
自動変換はどうにかならんのだろうか…。
後で結果報告しに来ます!ありがとうございました!
0083NAME IS NULL
05/02/19 20:11:50ID:???WinのIMEがquery browserに
どういうコードを送っているんだろうか? sjisか?
だったらsjisをutf8として扱う時点でQBはアウト。
つかえねー
0084NAME IS NULL
05/02/19 22:14:37ID:???コピペしたら値がわかるけど。
鯖がujisならnavicatのエンコードはEUCね。
008575
05/02/20 02:43:09ID:8ytzqIR+>>83-84
レスありがとうございます。>>75です。
サーバーをUTF8で構築したんですがどうもうまくいかず、
Apache + PHP + MySQL を最初から自前でmakeして、やって
みました。
先と同じくEUCで統一してやったのですが、結果は
QueryBrowserもNavicatも化けずに見れました!
ってか、MyNAに書いてあったことがやっとわかりました。
>>83さんがおっしゃる通りQBでダンプを見るとutf8になって
ましたね。でも見れるってことは、きちんとeucにして
送ってるってことなのかな?
ってなわけで、ご報告でした。皆さんありがとうございました。
0086NAME IS NULL
05/02/20 22:27:46ID:???今作ろうとしてるのは、サイトメンバー情報のDB化及び検索の機能みたいなものです。
それらはMySqlを使って作ろうとしてます。
さて、付随する掲示板とか日記とか作るとしたら、
パフォーマンスを考えた場合、
それらのデータもDBに突っ込むべきか、
それともテキストファイルに書いて、読み出すコードを書いたほうがいいか悩んでます。
DBに突っ込むと、余計な処理のために重くなりそうな気がしてます。
どうでしょう?
0087NAME IS NULL
05/02/20 23:22:05ID:???0088NAME IS NULL
05/02/21 16:54:30ID:???まず、WebサーバとMySQLサーバは同じマシンなのか、
自鯖なのかレンタルか、
さらにmod_perlは使うのかどうか、
書いてくれ。
0089NAME IS NULL
05/02/21 22:34:17ID:???そのなかから、あるフィールドをもつテーブルを抽出するにはどうすんの?
0090NAME IS NULL
05/02/21 23:54:24ID:???>>1
009186
05/02/22 00:01:31ID:???DBサーバーは別ですが、これもまた共用です。
mod_perlは今のとこ考えてません(使ったことがないし、利用不可のため)。
今やってるのサイトでは、すべてのデータをテキストで保存し、
Perlを使ってゴリゴリに読み書きするコードを書いてます。
パフォーマンス的には問題ないです。
でも、それだけでは面白くないので、再構築を考えているんですが、
複数のファイルを読むには、やっぱりSQLを使ってJOINさせたほうが断然楽だし、
いろいろな見せ方ができそうなので、MySqlのあるレンタルサーバーを契約しました。
DBがあるとは言え、ほとんどテキストデータである掲示板や日記まで
DBに突っ込んでもよいものかと思ってる次第です。
なお、SQLを使用したいものについて、現在のサイトのデータを使ってテストしてみました。
データ件数は、300件のテーブル3つと4000件テーブル1つ。
この程度なら速度的には問題なさそうですが、
今後データ件数が増えると、重くなりそう。
0092NAME IS NULL
05/02/22 15:23:56ID:???DB がその程度で重くなるわけないっしょ。安心しろ。
重ければそれは設計か、コードがおかしい。
0093NAME IS NULL
05/02/22 15:52:06ID:???>ほとんどテキストデータである掲示板や日記まで
>DBに突っ込んでもよいものかと
じゃぁ、何を突っ込む気だ?
0094NAME IS NULL
05/02/22 16:46:54ID:???009586
05/02/22 22:20:08ID:???今んとこその件数だからそのとおり。
将来はかなり増やす予定。
>>93
DBに入れたいのは、メンバーの情報。複数のテーブルをJOINしたいから。
テキストでやろうと思っているのは、掲示板や日記。
たとえば掲示板だけで1テーブルにした場合、莫大な件数になりそうかと。
その点、テキストファイルなら、スレッドごとにファイルを分ければ
かなり軽くアクセスできると思っとります。
DBでも、インデックスとかきっちりやれば、全然軽いのかな。
我流でやっとるんで、一般的な手法がどうなのかあまり分からないっす。
>>94
鋭い。
0096NAME IS NULL
05/02/22 22:53:08ID:???0097NAME IS NULL
05/02/22 23:39:30ID:???それは全然普通じゃないが、そのスレッド数ってのは
どうやって調べた(コマンドやその結果の何から)の?
0098NAME IS NULL
05/02/23 00:46:22ID:???タスクマネージャで見れるやつでないか?
009996
05/02/23 02:23:01ID:???立ち上げただけでその数になるので、ちょっと気になったので質問しました。
……普通なのかな?
0100NAME IS NULL
05/02/23 04:24:00ID:???タスクマネージャで見ると
mysqld-max-ntという名前の「プロセス」が
だーっと1万5千行以上も列挙されるってこと?
因みにWindowsはNT/2000/XPの何?
再現確認できるようならやってみるので。
0101NAME IS NULL
05/02/23 10:19:32ID:gvfioclR違うテーブルであれば LEFT JOIN が使えるのですがどうすれば良いのでしょうか?
select name from w where date < '10:10'
except select name from w where date < '10:20' ;
0102NAME IS NULL
05/02/23 12:00:16ID:???タスクマネージャで列を設定すれば、プロセスに対するスレッド数が見れる
0103NAME IS NULL
05/02/23 16:29:59ID:???>DBに入れたいのは、メンバーの情報。複数のテーブルをJOINしたいから。
>テキストでやろうと思っているのは、掲示板や日記。
敢えてテキストファイルも使うなら、普通は逆のような気がするが…
まぁ、結局どうやってデータ保持しようが、
フロントの作りがタコなら、結局はこける。
0104NAME IS NULL
05/02/23 16:43:18ID:???任意の期間でその数の多さでテーブルをリファクタリングしたい。
具体的にはURLのカラムを対象にして踏んだ数のランキング100ごとの
テーブルを自動生成する。このSQL文の例で助言求む。MyISAMで。
0105NAME IS NULL
05/02/23 18:17:50ID:???前提として存在するテーブルはなんなんだ?
0106NAME IS NULL
05/02/23 20:25:59ID:???さんきゅ。そんな設定で見られるとは知らなかった。
MySQL4.1.10-max-ntでやってみたけどMySQL4.0.23-max-ntと同じだね。
通常13ぐらいで、接続毎に1増えるけど接続断でちゃんと減ってるし。
異常切断があったとしてもタイムアウト処理で正常に消えてる。
(スレッドキャッシュは0で確認)
どっちにしても起動直後から相当な数が上がってるというのは
異常としか思えない。
0107106
05/02/23 20:26:53ID:???010896
05/02/23 20:41:55ID:???どうもです。
間違えてました。スレッドじゃなくてハンドルの方でした m(_ _)m
4.1.9-nt-max + Win2kprosp4 です。
OS ごと再起動しても、毎回 15,461 以上になります (情報が小出しになっちゃってすみません)
使ってて問題なさそうなので、とりあえず気にしないことにします。
0109NAME IS NULL
05/02/23 22:58:57ID:???どうやったら直せるんですかね?
トライアル版では無理なんでしょうか。
ご存知の方いたら教えて下さい。お願いします。
011086
05/02/23 23:03:08ID:???◇メンバー情報
A,B,Cテーブル:約280件
Dテーブル:約4200件
Eテーブル:約280件
A:B:C:Dは、1:1:1:n で、
A:Eは、n:1の関係。
なので、コードでJOINさせるのがめんどいし、
検索・ソート機能が充実させにくいので、DBで管理したい。
◇掲示板、日記
掲示板スレッド数:約160件
掲示板レス数:約1800件
日記利用者数:約160人
日記件数:約3500件
日記レス件数:約11000件
掲示板のレスデータはスレッド毎にファイルを分割。
日記データ、日記レスデータは、それぞれ利用者ごとにファイルを分割。
JOINも不要で、ソートも必要ないので、コードで書いても手間はかからない。
いずれも、再構築後は10倍に増やしたいと考え中。
いかがなもんでしょうか?
0111NAME IS NULL
05/02/23 23:06:22ID:???0112NAME IS NULL
05/02/24 00:17:39ID:???0113NAME IS NULL
05/02/24 00:29:40ID:???011486
05/02/24 00:31:25ID:???一瞬で帰ってくるときもあれば、数秒待たされるときもあります。
だから気にしてます。
DBが共用だから待たされてるってことなのかな。
0115NAME IS NULL
05/02/24 00:39:58ID:???ユーザー毎にCPUパワーまでパーティショニングして運用しているわけじゃないだろうから、
その辺はある程度はしょうがないでそ。
0116NAME IS NULL
05/02/24 01:03:18ID:???0117NAME IS NULL
05/02/24 01:22:55ID:???同人は平均150KBのjpgファイルが10-50枚が1単位(冊)です。見るときはこの1単位毎にします。
0118NAME IS NULL
05/02/24 01:31:33ID:???0119NAME IS NULL
05/02/24 01:38:06ID:???バラの(jpg|gif|png)とかもMySQLにいれて保護したいのです。
MD5のユニークインデックス使えば複重を弾けるらしいので(=゚д゚)ウマー
0120NAME IS NULL
05/02/24 02:27:53ID:???使いたければ、MD5ハッシュも入れろ。
0121NAME IS NULL
05/02/24 12:23:55ID:???プログラムでも使わないとだめだから、面倒だと思うけど。(クエリじゃ無理だよな?)
他のデータと共に一元管理したいなら分かるけどさ、(ユーザ情報+顔写真とか)
0122NAME IS NULL
05/02/24 14:36:35ID:x9bV7eQL例えば下の様な2つのテーブルから、SELECT 文で
「『ある食堂(単・複)のうまいメニューが属するジャンル』が好物な人物」
を検索するにはどうすればいいでしょうか?
●「好物」テーブル
+------+----------+
| 人物 | ジャンル |
+------+----------+
| 太郎 | ごはん類 |
| 次郎 | ごはん類 |
| 三郎 | めんるい |
| 四郎 | めんるい |
| 五郎 | どんぶり |
+------+----------+
●「食堂」テーブル
+----------+----------+--------+--------+--------+
| ジャンル | メニュー | A食堂 | B食堂 | C食堂 |
+----------+----------+--------+--------+--------+
| ごはん類 | 玉子ご飯 | マズイ | マズイ | マズイ |
| ごはん類 | お茶づけ | マズイ | マズイ | うまい |
| ごはん類 | おむすび | マズイ | マズイ | うまい |
| めんるい | ラーメン | うまい | マズイ | マズイ |
| めんるい | タンメン | うまい | マズイ | マズイ |
| めんるい | ソーメン | うまい | マズイ | うまい |
| どんぶり | カツどん | マズイ | マズイ | マズイ |
| どんぶり | テンどん | マズイ | うまい | マズイ |
| どんぶり | 親子どん | マズイ | マズイ | マズイ |
+----------+----------+--------+--------+--------+
例えば「A食堂またはB食堂でうまいメニューが属するジャンル(めんるい&どんぶり)」が好きな人物
を検索して
+------+
| 人物 |
+------+
| 三郎 |
| 四郎 |
| 五郎 |
+------+
という結果を得たいのです。
MySQL のバージョンは 4.0.23 です。
よろしくお願いします。
0123NAME IS NULL
05/02/24 14:56:09ID:???カワイソウ(´;ω;`)ウッ…
内容ないのでsage
0124NAME IS NULL
05/02/24 15:58:26ID:???0125NAME IS NULL
05/02/24 17:01:31ID:???0126NAME IS NULL
05/02/24 18:28:25ID:???サブクエリ使わない場合は、TEMPORARY TABLE使って、こんな感じかな?
********************
環境の準備
********************
create table koubutsu(
hito varchar(20),
genre varchar(20),
primary key(hito)
);
create table shokudou (
genre varchar(20),
menu varchar(20),
a char(1),
b char(1),
c char(1),
primary key(genre, menu)
);
insert into koubutsu values
('太郎', 'ごはん類'),
('次郎', 'ごはん類'),
('三郎', 'めんるい'),
('四郎', 'めんるい'),
('五郎', 'どんぶり');
insert into shokudou values
('ごはん類', '玉子ご飯', 'x', 'x', 'x'),
('ごはん類', 'お茶づけ', 'x', 'x', 'o'),
('ごはん類', 'おむすび', 'x', 'x', 'o'),
('めんるい', 'ラーメン', 'o', 'x', 'x'),
('めんるい', 'タンメン', 'o', 'x', 'x'),
('めんるい', 'ソーメン', 'o', 'x', 'o'),
('どんぶり', 'カツどん', 'x', 'x', 'x'),
('どんぶり', 'テンどん', 'x', 'o', 'x'),
('どんぶり', '親子どん', 'x', 'x', 'x');
以上、準備。
create TEMPORARY TABLE tmp (
select distinct genre from shokudou
where a = 'o' or b = 'o'
);
select hito from koubutsu, tmp
where koubutsu.genre = tmp.genre;
drop table tmp;
食堂はA,B,C以外も増えそうだから別テーブルにした方がいいよね。
0127NAME IS NULL
05/02/24 20:32:43ID:???0128NAME IS NULL
05/02/24 21:24:58ID:???OSのイベントビューアにエラーが出ます。
シャットダウンと起動とレプリケーション起動のフツーのメッセージが、
例の赤いバッテンとともに追加されてくんですが、これって普通ですか?
・全ての動作は異常ない(レプリケーションもちゃんとしてできてる)
・レプリケーションを殺すとエラーが出なくなる。
・MySQLの再インストールしても変わらん。
・マスター側はイベントビューアには全然ログを出さない。
うーむ・・・
0129NAME IS NULL
05/02/24 21:54:56ID:???できないこともない。
0130NAME IS NULL
05/02/24 22:07:00ID:???是非とも教えてください
ググってもありませんでした
0131NAME IS NULL
05/02/24 22:10:47ID:???できる
0132SQLビギナー
05/02/24 23:18:53ID:miHwNeG8サブクエリが利用できないことが判明しました。
以下のSQL文をサブクエリなしで表現したいのですが、
どなたかご教授頂けないでしょうか。
select g.proid,g.gono,g.cateno,g.itemno,
catename,itemname,gname,gnameh,kakaku1,
ktanni1,kakaku2,ktanni2,kakaku3,ktanni3,
jika,rakuten,proname,picname,picno
from t_goods g
left join m_productor p on (g.proid = p.proid)
left join m_item i on (g.cateno = i.cateno)
and (g.itemno = i.itemno)
left join m_category c on (g.cateno = c.cateno)
left join (select proid,gono,picno,picname from t_picture where (proid,gono,picno) in
(select proid,gono,min(picno) from t_picture group by proid,gono)) as pct2
on (g.proid = pct2.proid)
and (g.gono = pct2.gono)
where g.cateno = 4
and g.itemno = 11
order by gnameh,picname;
よろしくお願いします。
0133NAME IS NULL
05/02/24 23:25:26ID:???お前の仕事の手伝いなんぞ嫌だ
0134NAME IS NULL
05/02/25 00:08:36ID:???何この丸投げ
0135NAME IS NULL
05/02/25 01:02:22ID:???は、
>>126
も言っているとおり、正規化すべきだと思う。
また、「好物テーブル」 における「人物」が
「好物」をひとつしか選択できないのはどうかと。
これも正規化するといいかな。
例えた事象だから、本当のところはどうかわからんけど。
>>132
教授は頂けない。
0136NAME IS NULL
05/02/25 01:07:26ID:???属性別にテーブル設けて各テーブルにインデックスカラムを付けるだけなの?
0137NAME IS NULL
05/02/25 01:25:35ID:???0138NAME IS NULL
05/02/25 01:40:58ID:???http://hccweb1.bai.ne.jp/~hdg93401/sad/db/seikika.html
食堂テーブルにある、ジャンルはメニューに従属しているから、分割とか。
0139122
05/02/25 13:14:06ID:z4T9Kjr8まぁ例えなんで深くは考えずに
>>126
ちゃんとできました。
ご教授ありがとうございます!
>>135
アドバイスありがとうございます。
参考にさせていただきます。
0140NAME IS NULL
05/02/26 00:07:27ID:jOGQTQaNMySQLに接続するために必要なAPIあれば教えてください。
ASP.NET on IIS with MySQL (or PostgreSQL) という構成です。
0141NAME IS NULL
05/02/26 00:32:18ID:???http://www.mysql.com/products/connector/net/
0142NAME IS NULL
05/02/27 00:36:56ID:w+A6RWPjdrop文で「Unknown table 'テーブル名'」と言われてしまい次のcreate文に移りません。
確かにそんなテーブル無いのですが、再作成のために書いておきたいのですがどうしたらいいですか?
0143NAME IS NULL
05/02/27 01:13:49ID:???0144142
05/02/27 01:21:41ID:w+A6RWPjmysql -u root -ppassword -t testdb < test.sql
で実行してるのですが、
やっぱりUnknown table 'test_table'と言われて止まってしまいます。
ためしにcreate文でtest_tableを作ってから実行したらちゃんと実行されました。
postgreではエラーが出ても続行されたんですが・・・。
しょうがないんですかね。
0145NAME IS NULL
05/02/27 01:26:59ID:IfrbtRcKIF EXISTS
http://dev.mysql.com/doc/mysql/ja/drop-table.html
0146142
05/02/27 03:51:35ID:w+A6RWPjおお、これだ。
リファレンス本しか読んでなかったのがいけなかったみたいです。
反省します。ありがとうございました。
0147NAME IS NULL
05/02/27 12:20:00ID:mWXh/ugoPHP5+MySQLで練習をかねて資産管理を作っています。
まだ、登録・修正&削除・一覧表示をPHPで出来る所までしか
来ていないのですが・・・。
5つあるテーブルの4つまでは、何の問題もなく上記3つの
PHPページが出来たのですが、最後の一つのテーブルだけ
PHPから削除・一覧表示は出来たのですが、登録・修正だけが
MySQLのデーターベーステーブルに反映されません・・・。
コピペで作っているので、盆ミスでもなさそうな雰囲気なのです。
もしかして、カラム名に使ってはいけない文字ってありますか?
英小字一文字だと、駄目とかありますか?
よろしくお願いいたします。
0148147
05/02/27 14:25:16ID:mWXh/ugoすみません。
UNIQUE制約が邪魔していたみたいです。
お騒がせいたしました
0149NAME IS NULL
05/02/28 18:39:12ID:wLGA0zr7mysql> show processlist;
+----------+-------+----------------------+-------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----------+-------+----------------------+-------+---------+------+-------+------------------+
| 33278669 | testd | 192.168.100.15:61610 | named | Sleep | 6358 | | NULL |
| 33301701 | testd | 192.168.100.15:63815 | named | Sleep | 5427 | | NULL |
| 33349421 | testd | 192.168.100.15:61724 | named | Sleep | 3511 | | NULL |
| 33353592 | testd | 192.168.100.15:54189 | named | Sleep | 3350 | | NULL |
| 33385893 | testd | 192.168.100.15:59342 | named | Sleep | 2130 | | NULL |
| 33441073 | root | localhost | named | Query | 0 | NULL | show processlist |
+----------+-------+----------------------+-------+---------+------+-------+------------------+
という結果が表示され、192.168.100.15からの接続でのsleep状態がずっと続いてるのですが、原因がわかりません。
他のサーバもローカルIPで接続してるのですが、192.168.100.15のサーバだけがsleepしています。
どなたかお助けください。
0150NAME IS NULL
05/02/28 22:57:31ID:s2lgItl0(かねやんMySQLみたいな奴)
0151NAME IS NULL
05/02/28 23:50:39ID:???MySQL++ってWindowsでも使えないんだっけ?
0152NAME IS NULL
05/03/01 00:16:48ID:???使える。が、別に使わなくても繋げるしね。
もっと言えばDBMSぽく繋がないんだったら、
素のC++だけで、後は自前で作ってもなんとでもなるよ。
>かねやんMySQLみたいな
繋がりが良く判らん
0153NAME IS NULL
05/03/01 00:32:00ID:r4T/MZvg0154NAME IS NULL
05/03/01 00:56:41ID:???特に「プロトコル」って公開はされてはいないが
クライアントもサーバもソースは公開されてますんで
全然隠蔽されてませんよ。要するにアンドキュメントなだけ。
SSL通せば隠蔽はされますが、それとは別の話。
0155NAME IS NULL
05/03/01 01:20:36ID:???see 4.2.3
0156NAME IS NULL
05/03/01 13:16:51ID:???きちんとしたリファレンス本にはきちんと書いてあるぞ
0157NAME IS NULL
05/03/01 13:27:54ID:???mysqlプロンプトから任意の画像ファイルデータを問い合わせて
任意の画像ビュアーにそのデータを渡して画像を閲覧するようなクエリをお教え下さいませ
0158NAME IS NULL
05/03/01 14:51:32ID:???SQLインジェクションに対して安全でしょうか?
やはり
mysql_real_escape_string() とか mysql_escape_string() とか addslashes を
使うべきでしょうか?
0159NAME IS NULL
05/03/01 15:50:47ID:???0160NAME IS NULL
05/03/01 17:01:18ID:4KnrU+VKmysqldump データベース名 > ファイル名
だとテーブルのデータもくっついてくるのでこれを取り除く方法はないのでしょうか?
0161NAME IS NULL
05/03/01 17:34:14ID:???RedHatLinux WS2.1
mysql-4.0.23(INNODB)
上記環境で使用しています。
動作自体は安定して稼動しているのですが
ibdata1が肥大化してHDDを圧迫するようになりました。
なにか良い方法はありませんでしょうか。
0162NAME IS NULL
05/03/01 17:35:22ID:???マニュアルくらい読めよ
http://dev.mysql.com/doc/mysql/ja/mysqldump.html
0163NAME IS NULL
05/03/01 17:45:58ID:???mysqlプロンプトはバイナリーセーフではない作りの気がする。
よって何らかのプログラムを組んでやらないと駄目かと。
0164160
05/03/01 17:48:41ID:4KnrU+VK失礼いたしました。
別ページを見たらレコード削除するとか書いてたので^^;
ありがとうございました。
0165NAME IS NULL
05/03/01 17:49:06ID:???MLで見かけた気もする。出力側にも何らかの制限がある可能性も。
0166NAME IS NULL
05/03/01 21:24:43ID:???mysql> select d from hoge limit 1;
-----------------------------------------------------+
mysql> select d from hoge limit 1 \G
*************************** 1. row ***************************
d: 憊
こんな感じです。パイプとかで流し込めないのでしょうか?
その前に外部バイナリの指定ってSQL文の中でできる?できない??
0167150
05/03/01 23:48:23ID:???まず、テンプレートの使い方から勉強させていただくことにしました。
0168NAME IS NULL
05/03/02 11:51:54ID:b2z/H3G1フィールドの並び順を CREATE TABLE コマンドで定義した順番から変更する方法はありますか?
もう一度 CREATE TABLE をやり直すしかないのでしょうか?
0169NAME IS NULL
05/03/02 12:30:16ID:???定義上のフィールドの並び順を気にする時点で、
データベースを理解してないと思われ。
ま、ALTERでもして鯉
0170NAME IS NULL
05/03/02 12:39:41ID:???気になる気持ちは、わからんでもないけどさ。
一旦別の名前に変えて(HOGE→HOGE2)
create table HOGE select ...... from HOGE2
とでもしたら?
0171NAME IS NULL
05/03/02 13:06:50ID:???もともとの個々のファイルのタイムスタンプとは別に(でもこのタイムスタンプも埋め込む)
テーブルに格納された日時のタイムスタンプをIDの代りにしたいのですが
どういうコマンドライン?
0172NAME IS NULL
05/03/02 14:28:16ID:???ALTER TABLE tbl_name
ADD column_name INT UNSIGNED AFTER defined_column_nane
0173NAME IS NULL
05/03/02 19:09:20ID:???mysql > format c:
0174168
05/03/03 09:30:39ID:YOiMc7efできました。ありがとうございます!!
0176NAME IS NULL
05/03/03 12:27:42ID:???ありがとうございました!
0177NAME IS NULL
05/03/04 22:54:45ID:???並び順って、開発効率を上げる面では重要だと思うけど。
リリース後の追加っていうなら分かるが。
0178NAME IS NULL
05/03/05 09:44:08ID:???開発環境によってはそんなものは簡単に隠蔽できちゃうでしょ。
0179NAME IS NULL
05/03/05 12:55:10ID:???数百レベルの項目数になると、一つ一つ指定する際のオーバーヘッドも大きくなる。
テーブル分割してjoinすると、パフォーマンスで影響が出る。
項目順を予め入れ替えておくだけで解決できるなら、それはそれでやっておくべきだと思うぞ。
0180NAME IS NULL
05/03/05 14:30:12ID:???0181NAME IS NULL
05/03/05 14:55:47ID:???0182NAME IS NULL
05/03/05 20:39:05ID:???いや、隠蔽しても別に1つ1つ指定する必要はないけど?
SELECT * しても、カラム名でアクセスすればイイだけの話だし。
0183NAME IS NULL
05/03/08 01:39:30ID:???実際に運用されているかた、気をつけることとかありますか?
0184NAME IS NULL
05/03/08 03:05:49ID:???0185NAME IS NULL
05/03/08 04:04:59ID:???HAクラスタだよね。なら特に気にすることはなかったと思う。
0186NAME IS NULL
05/03/08 09:08:52ID:???0187NAME IS NULL
05/03/08 09:30:53ID:???日本語は正確に
×:社内なら GPLも関係ない
○:社内なら GPLでも関係ない(ことが多い)
0188NAME IS NULL
05/03/08 11:36:18ID:???0189NAME IS NULL
05/03/08 12:12:06ID:s4x3oOUvごめん、よく分かってないんで、教えて欲しいんだけど。
コードを持ち出すってどういうこと?
>>183のようなシステム作って、それを他に売ることをとめられるかってこと?
それ防ぐことは、別に難しいことじゃないと思う。
それとも、作ったシステムを、社外から使うのを防げるかってこと?
社外から使っても、別にいいんじゃないの?
0190NAME IS NULL
05/03/08 22:04:44ID:???0191NAME IS NULL
05/03/08 23:22:38ID:???なるほど。そういうことですか。
内部の人がパクって売ってしまうことを防げないということですね。
0192NAME IS NULL
05/03/08 23:55:39ID:???従業員にGPLで公開されてると見なせるのだろうか?
その前提なしに従業員がパクったら横領だよ。
勿論コード以外の資料を添付または流用したら確実に、
他にも会社の技術を勝手に転用されたと訴えられるだろう。
流用・転用は裁判の結果がでないと判断できないけど、
個人で裁判を受けて立つメリットデメリットを考えると
俺にはそこまで商才はないのでやらない。
0193NAME IS NULL
05/03/09 00:20:20ID:???0194NAME IS NULL
05/03/09 00:40:17ID:???おとなしく商用ライセンス買えと
7万くらいだっけ?
0195NAME IS NULL
05/03/09 02:18:22ID:???>なんにせよグレーゾーンおとなしく商用ライセンス買えと
え?話がずれてきてない?
>>186 社内ならGPLでも関係ないこと多い
>>188 問題はGPLなコードを社外に持ち出すことを止められるか?
>>189-192 コードパクって売る輩がいるかも(ハイリスクだけど)
ってことだろ。社内でも(リスク度外視でコード盗むやつを止められないから)
グダグダ言ってないで商用ライセンス買えってことかい?
0196192
05/03/09 03:21:07ID:???俺もちと話がずれてると思う。
別に会社でGPLのを使うのはグレーでもなんでもない。
(MySQL AB的には、恒久的に常用するならCML買えよが本音)
0197NAME IS NULL
05/03/09 10:48:01ID:???それを社外に持ち出して公開するのも GPL では問題なし
ただし、GPL 以外の問題があります
0198NAME IS NULL
05/03/09 22:24:50ID:1ImZYU2Tこれをリストアしようと
mysql -uuser -ppass db < dumpfile.dmp
したのですが、TEXTフィールドで改行が入った文字列が上手く入りません。
dumpfile.dmpを見ると「3月4日\r\n私から\r\n田中さんへ\r\n」のように改行はエスケープされています。
しかしこれをインポートしてみると「3月4日\r<改行>私から<改行>田中さんへ\r<改行>のように所々「\r」が
残ってしまいます。
MySQLのバージョンは4.0.20-logです。
よろしくお願いします。
0199NAME IS NULL
05/03/10 11:18:33ID:???レプリケーションをしている2台のサーバがありまして
masterのバイナリログがmaster-bin.100まで進んでいて
slaveがrelayログにmaster-bin.100の分まで溜め込んでいます。
この時にmasterのバイナリログmaster-bin.099までは圧縮もしくは削除しても
slave側のレプリケーションは停止しないでしょうか。
0200NAME IS NULL
05/03/10 15:01:11ID:???0201NAME IS NULL
05/03/10 15:34:15ID:???MySQLとSSLでググれ
0202NAME IS NULL
05/03/11 03:12:51ID:???slaveはrelayログでレプリケーションするので、
relayログがあるならmaster側のバイナリログを削除しても大丈夫。
レプリケーションの仕組みはMYSQL全機能リファレンスに詳しく書いてある。
0203NAME IS NULL
05/03/11 04:54:53ID:???「OSC2005/2005-03-26: 4B-2:MySQLのバックアップ・リカバリ」
http://www.ospn.jp/osc2005/modules/eguide/event.php?eid=11
これを聴きにいくのもよいかと。
多分バックアップ&リストアの絡みで
bin-logの話も聞けると思う。
0204NAME IS NULL
05/03/11 13:47:22ID:lHD/WJDjmysql-Max-4.0.20-3の違いを教えてください。
この二つの用途の違いが知りたいです
0205NAME IS NULL
05/03/11 13:55:34ID:???0206NAME IS NULL
05/03/11 14:59:03ID:???0207NAME IS NULL
05/03/11 16:50:26ID:???0208Super初心者
05/03/11 23:02:55ID:YNcJrtR50209NAME IS NULL
05/03/11 23:06:51ID:???ダメです。あきらめてください。
0210Super初心者
05/03/11 23:11:48ID:YNcJrtR5データベースの件なら許してもらえますか?
0211NAME IS NULL
05/03/11 23:21:41ID:???PostgreSQLに逃げると幸せになれる?
0212Super初心者
05/03/11 23:30:51ID:YNcJrtR5最終的には本支店間の物ですが?
0213NAME IS NULL
05/03/11 23:32:39ID:xptNNxFGそんなことできる?
1 row in set (0.26 sec)
↑
この「1」と「0.26」の数値の変数ってphpから利用出来る?
0214NAME IS NULL
05/03/11 23:42:02ID:???残念ながらなれる
3.xからずっと使ってきてそれなりに納得してきたのだが
4.1の糞さがなおらないままなのでPostgresに移行しちまった
0215NAME IS NULL
05/03/12 00:06:28ID:???popenでmysql呼び出して標準入出力をやり取り
0216213
05/03/12 00:13:22ID:cnkhU+30oh! サンクス!
0217NAME IS NULL
05/03/12 03:33:43ID:???その「販売管理」の内容にもよる。
そもそもDBMSもいらず、Excelのファイルを
バッティングしなよいように共有する程度のことでも
良いのかもしれんしな。
0218NAME IS NULL
05/03/12 03:55:50ID:q3r/NSYlmysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("zip");
$result = mysql_query("SELECT * FROM zip_code where zip=\"$formdata\"");
$r = mysql_fetch_array($result);
というphpを書いたのですが、
-----------------------------------------
$resultにはどんな情報が書かれているのでしょうか?
---------------------------------------
printしても
$result=Resource id #3
とか出てきました。
$rには配列としてフィールド分、データが入っていました。
$result = mysql_query("SELECT * FROM zip_code where zip=\"$formdata\"");
$r = mysql_fetch_array($result);
この2行はワンセットで使うおまじないみたいなものと考えていいのでしょうか?
0219NAME IS NULL
05/03/12 05:05:56ID:???0220NAME IS NULL
05/03/12 05:09:25ID:???闇雲の手探りはやめて原点を見直すこと。
http://jp2.php.net/manual/ja/function.mysql-query.php
intと書いてあるけど、実際にはint/boolのmix。
もっと厳密に言うとリソース型/boolのmix。
http://jp2.php.net/manual/ja/resource.php
型の緩やかなPHPの場合、何でもかんでもmixになってしまうので、
余りその箇所の記述は鵜呑みにはしないこと。結構適当。
0221218
05/03/12 06:13:52ID:q3r/NSYlありがとうございます。ちょっとふっきれましたです。
0222Super初心者
05/03/12 13:03:24ID:PFGNYZwI現在、死語かも知れませんが、
Lotusアプローチで管理していますが、
クライアントサーバ型で構築したいのです。
お金を掛けて市販ソフトを使用すれと良いのですが、
弱小企業の為、予算が出ません。
参考になる様な書籍など教えて頂けましたら幸いです。
0223NAME IS NULL
05/03/12 16:02:47ID:???逆に初心者と書かれるとレスしたくないと言う人もいるから、そういう名前は付けてほしくない
現在の管理データからMySQLに移行するっていうのならそう難しくないんじゃないか?
ライセンスとかは私はわからんが
0224NAME IS NULL
05/03/12 16:56:41ID:???ですかね?参考になる書籍とか知っている方がいたら教えて
欲しいです。
0225NAME IS NULL
05/03/12 18:58:58ID:jyfgQc/6急にMysqlの起動が出来なくなりました
データベースlの設定に関してはあまりよくわからないです
具体的にはJSP・JavaからJDBC使ってMysqlに接続してたのですが
Mysqlのコネクタが生成できなくなるというエラーです
自分でいろいろ調べたのですがMysql側に問題がある事がわかりました
確かに
>mysql -u root -p
Enter password: root
でログインしようとしても
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
というエラーが出ます
再起動した後に急に使えなくなったのですが
思い当たる節としては直前に、my.iniファイルの
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
を加えただけです
でも、これはただJSPの方で文字化け対策のために
やったので関係ないとは思っていますが・・・
どうかお力を貸してください。お願いします
mysql:4.1.9
tomcat:5.5.4
jdbcドライバ:mysql-connector-java-3.1.7-bin.jar
JDK:1.5.01
0226NAME IS NULL
05/03/12 19:00:58ID:???0227NAME IS NULL
05/03/12 19:50:00ID:???え?今までは自動で起動してたんで問題なく使えてたんですけど
起動コマンド教えてくださいm(__)m
0228NAME IS NULL
05/03/12 20:04:30ID:???0230NAME IS NULL
05/03/13 11:10:02ID:???0231NAME IS NULL
05/03/13 14:53:54ID:DgyjN9xh0232NAME IS NULL
05/03/13 17:43:19ID:???0233NAME IS NULL
05/03/13 19:55:25ID:Vyou6TzAそこから検索するのにどれくらいのスペックで何秒くらいかかるだろうか?
この内容のレコードでなくても数十万数百万のレコードについての例があったらスペックとレスポンスを教えて欲しい。
0234NAME IS NULL
05/03/13 20:49:50ID:qKRtUhv9旧鯖
PHP/4.3.5
phpMyAdmin/2.5.6
MySQL/3.23.49
↓
新鯖
PHP/4.3.10
phpMyAdmin/2.6.1-rc1
MySQL/3.23.49
旧鯖のデータがeuc-jpなのですが、新鯖ではsjisで取り込んでみたくて、
旧鯖phpMyAdminからそのままエクスポート
↓
新鯖phpMyAdminでsjisエンコーディングにチェックを入れて取り込み。
その結果、特定の行(2つ)で1064エラーが出て上手く取り込めません。
1064エラーを調べてみたけれどよく分かりませんでした。
どうかエラーの意味を教えて下さい。
0235NAME IS NULL
05/03/13 21:06:30ID:???ストレージタイプによっては、DB名またはDB名及びテーブル名
がそのままファイル名に連動することを理解して使うのなら別に構わんぞ。
>>232
意味ワカメ
0236NAME IS NULL
05/03/13 22:17:07ID:???何百行もあるならともかく、2行だけなら手で直せばいいじゃん
まあそのエラー番号がphpMyAdmin固有なのかPHP固有なのかMySQL固有なのか
オレには分からんな。エスパーじゃないし。それにエラーメッセージとか
エラーの出た行のデータぐらい貼ってみそ。
0237232
05/03/13 23:16:09ID:???例えば、SELECT id FROM table で、上から順に10、31、5、12、44と表示された場合、
これを5、10、12、31、44となるように並べかえて「記録保存」したいのです。SELECT * FROM table GROUP BY id ではなく。
やはり、SELECTするたびにGROUP BYで並べ変えるしかないのでしょうか。
0238NAME IS NULL
05/03/13 23:26:23ID:???order by
0239NAME IS NULL
05/03/13 23:42:29ID:???>5、10、12、31、44となるように並べかえて「記録保存」
そんなことは出来ない。仮に5、10、12、31、44の順でINSERTを掛けたとして
ORDERを掛けずにSELECTしたら、その順序で取れたとしよう(まあ取れると思うが)。
しかし「いつも、その順序で取れるという保証」はどこにもない。
0240237
05/03/14 00:26:06ID:???0241NAME IS NULL
05/03/14 00:30:53ID:???内部的な記録のされ方に何故こだわるのか?
ORDERをかけて正しく取り出せればいいと思うのだが。
0242NAME IS NULL
05/03/14 01:15:41ID:???得心いかないかもしれないけど、一般的にRDBとはそういうものだから納得しる。
0243237
05/03/14 14:43:48ID:???Excelのような感じだと思っていましたが、少し違うようですね
0244NAME IS NULL
05/03/14 15:31:34ID:???負荷って「ORDER BY」を記述する手間のこと?
んなわけないな。
RDBの中の実装は詳しく知らないけど、
もしも、RDBで並び順を保持できたら、INSERTのときに、隙間に入れなければならないし、
UPDATEしただけでデータを移動しなけりゃならない。それこと無駄が多いだろ?
代わりに、そうやって順序をよく保持できるのが、インデックスであって
インデックスがはってあれば、ORDER BYしてもソートの負荷は少ないんでないの?
0245NAME IS NULL
05/03/14 16:39:18ID:???なんか考え方的に
0246NAME IS NULL
05/03/14 23:38:47ID:???show tablesで確認するとvarcharになってしまうんですが仕様なんでしょうか?
バージョンは4.1です。
0247NAME IS NULL
05/03/14 23:56:30ID:???仕様。「暗黙の型変換」で調べてミソ
(個人的にはちとキモチの悪い仕様)
0248NAME IS NULL
05/03/15 00:04:11ID:???http://dev.mysql.com/doc/mysql/ja/silent-column-changes.html
0249NAME IS NULL
05/03/15 18:24:07ID:???同じ列数を持ち、かつ同じ位置にある列のデータ型は同一でなければいけない。」と本に載ってたのですが、
table1 -> alpha char(1), num integer
rev_table1 -> alpha integer ,num char(1)
のように同じ位置にあるデータ型が異なる場合でも
UNIONで併合できてしまうのですが、
大丈夫なんでしょうか?
MySQL4.1.10nt
0250NAME IS NULL
05/03/16 16:13:24ID:g2s40+lA例えば
名前テーブル
+----+
|Name|
+----+
|清原|
|新庄|
|松井|
+----+
のようなテーブルから、どうにかして(select文で)
+--------+
|???? |
+--------+
|清原選手|
|新庄選手|
|松井選手|
+--------+
という結果を得ることはできるでしょうか?
(データの中身に別の文字列を連結して表示)
一時テーブルを作成しても良いです。
多分そんな事はできないんだと思うのですが、
もしやり方をご存知の方がいましたら教えて下さい。
0251NAME IS NULL
05/03/16 16:18:27ID:???CONCATとか
Welcome to this crazy time 〜♪
0252NAME IS NULL
05/03/16 16:23:19ID:g2s40+lA>CONCATとか
調べてみました。
文字列結合なんてできるんですね。
ありがとうございます!
0253NAME IS NULL
05/03/19 17:58:09ID:NyWmAKIj正規表現で文字列を取得できないのでしょうか。
()付きで正規表現関数にかけると、()の中身を取得できるような感じです。
どうぞご教授ください。
0254NAME IS NULL
05/03/19 22:39:04ID:???0255NAME IS NULL
2005/03/22(火) 20:38:19ID:9SFRPsEjsafe.mysqld restartのログが出始めまして、restart失敗すると当然
apaccheも落ちるという症状でくるしんでます。mysqlの堅牢さゆえなか
なか同様の事象を見つけることもできません。発生する原因と考えられる
行為は特に思い当たりません。restartのログはおおよそ3時間インターバルにて
出力されますが周期的とまではいきません、2台運用しているのですがまったく
同時期に同じ症状が発生して 気が気でない状態です。どなたかmysqlでの運用
やメンテで同様の症状が発生して解決した方いらっしゃらないでしょうか?
0256NAME IS NULL
2005/03/24(木) 03:34:10ID:h5dhdtjwcreate table sex (
anal varchar(255),
cunt varchar(255),
blowjob varchar(255),
primary key(anal,cunt)
);
したら
specified key was too long; max key length is 1000bytes
て言われちゃった
255 + 255 > 1000
なのですか?
0257NAME IS NULL
2005/03/24(木) 04:47:30ID:???MySQL以前にOS(例えばSWAP)とか、ハードウェアを疑った方がいい。
「2台運用しているのですがまったく同時期に同じ症状が発生」これも。
・ハードウェアの不具合因子(寿命)の関連
・電源の問題(しかしこれは、それぞれ別のUPS等噛ましてるんでしょうな)
これら運用している2台の関係はクラスタリング?
0258NAME IS NULL
2005/03/24(木) 04:56:43ID:???http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_35
マニュアル等の公式ドキュメントでの記述が見つからんかった。
判ったら教えてくれ。
0259NAME IS NULL
2005/03/24(木) 05:07:28ID:???http://dev.mysql.com/doc/mysql/ja/news-4-1-1.html
| CHAR, VARCHAR, and TEXT columns now have lengths measured in characters
| rather than in bytes. The character size depends on the column's character set.
| This means, for example, that a CHAR(n) column for a multi-byte character set
| will take more storage than before. Similarly, index values on such columns
| are measured in characters, not bytes.
メインのリファレンスには記述がない(古いのだけ)ので、見落とし&判りづらいな。
0260NAME IS NULL
2005/03/24(木) 10:15:38ID:z8myW0ohありがとうございます
jamesのレポジトリをmysqlでやろうとおもってたんだけど
コンパイルしなおして2000bytesくらいにします
0261NAME IS NULL
2005/03/24(木) 15:06:24ID:???0262NAME IS NULL
2005/03/24(木) 20:12:07ID:???0263NAME IS NULL
2005/03/24(木) 20:30:14ID:???Excelで使うMySQL活用ガイド
http://www.9-ten.co.jp/bookdata/0136.php
高橋良明/九天社/3200円/ISBN4-86167-013-6
PHPのライブラリでxlsファイルが生成できるのがあるから、
PHPからMySQLに接続して、それで作るのもあり。
ExcelならCSVファーマットも読めるから、それに対応した
無償/有償のクライアントツール使ってCSVで出力するので良いと思うけどね。
0264NAME IS NULL
2005/03/26(土) 01:08:16ID:I+g70oVBPHP+MYSQLでbooklistというテーブルがあります。
その中のコラムのひとつに”description”があり
その中のデータの最後はいつも"Weight ****g"と
いう文で終わります。この"Weight ****g"を抜き出して
他のテーブルの"weight"というコラムにIDを元に移動させ
たいのですが何かいい方法はあるでしょうか?
板違いでしたらすみません。
0265NAME IS NULL
2005/03/26(土) 01:44:03ID:???PHPを既にインストールしてMySQLを操作してんなら、
そういう動作を行うスクリプトを組んだらよかろう。
データ(文字列)を後ろから検索掛けて"Weight"って単語の
位置を調べて、そこからEODまでを切り出し。
切り出したの使ってINSERT
0266NAME IS NULL
2005/03/26(土) 08:20:57ID:I+g70oVBご回答ありがとうございます。
早速やってみます。
0267NAME IS NULL
2005/03/26(土) 10:29:30ID:???0268NAME IS NULL
2005/03/26(土) 21:29:47ID:???マニュアルにあらわには書いてない。
ttp://mysql.inspire.net.nz/doc/mysql/en/upgrading-from-4-0.html
にある。ようはCHAR(N)はN「文字」であって、文字コードによってはこれは
必ずしもN「バイト」には対応しない、ということね(multi-byte char のとき)。
なんだが、これ、和訳のほうは古くて
ttp://mysql.inspire.net.nz/doc/mysql/ja/upgrading-from-4-0.html
には記載がない。
0269NAME IS NULL
2005/03/28(月) 20:04:20ID:mPnmsWYn'テーブル名' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
ていうのが出るようになったけど、コレて何?
0270NAME IS NULL
2005/03/28(月) 20:32:38ID:???このスレの15レス前ぐらいからの話題に関連。
0271NAME IS NULL
2005/03/29(火) 01:16:01ID:???MySQL 5.0.3-betaが出たね。
まあ大きくは変わらなかったけど、
BIT型が完全に新設なのと、cp932(SJIS for Windows-J)と
eucjpms(UJIS for Windows-J)が入ったのが目新しいとこかね。
0272NAME IS NULL
2005/03/29(火) 01:38:47ID:???でも回り見ても新規案件全部postgresにいっちまった・・・
0273NAME IS NULL
2005/03/29(火) 02:02:02ID:???ライセンス形式ががMySQLよりもシンプルですからね・・・
0274NAME IS NULL
2005/03/29(火) 02:40:54ID:???でも4.0まではよかったけど、4.1で文字コード問題発覚、
Linux等はごまかしでつかえるもののWindowsでは解決方法なし
ということで使わないことになったのさ
逆にPostgresはWindows正式対応しちゃったし、C/Sでは
MySQLはライセンス料金お話にならないのでどんどんにげてるっぽ
0275NAME IS NULL
2005/03/29(火) 03:00:36ID:???PostgreSQLもMySQLもライセンスは別に変わってませんが?
でも自分の場合、InnoDB使うようになってきたので費用面ではちとキツイ。
0276NAME IS NULL
2005/03/29(火) 03:15:09ID:???現状でMySQL4.0またはPostgreSQLなんで新機能待ちではなくて、
MySQL4.0がもう終わりかなぐらいで、MySQL4.1にのれればいい
という感じなので、互換度が一番重要でそれの待ち。
0277NAME IS NULL
2005/03/29(火) 22:10:44ID:???PostgreSQLは商用も無料でシンプル。
0278NAME IS NULL
2005/03/29(火) 22:32:03ID:???には特に異論はない。
0279NAME IS NULL
2005/03/30(水) 02:49:48ID:???0280NAME IS NULL
2005/03/30(水) 04:11:50ID:DxhulZk7RHELだと3系なんで、できればこれを使いたいと思ってます。
poestgreSQL7系も複数CPUをサポートしていますでしょうか?
0281NAME IS NULL
2005/03/30(水) 09:34:06ID:???「自分で調べろ」というレベルにすら達してない段階。
280みたいなのがシステム構築して料金ぼったくってるわけだ。
なんにも考えずにRHELのライセンスかって、
なんにも考えずにSMPサーバかって、
なんにも考えずにLAMPシステムつくって…
はぁ.... orz
0282NAME IS NULL
2005/03/31(木) 00:50:33ID:???eucjpはないんだぁ〜〜〜〜〜〜〜〜〜
latin1でつかってますけど・・
0283NAME IS NULL
2005/03/31(木) 03:45:15ID:???- Added cp932 (SJIS for Windows Japanese) and eucjpms (UJIS for Windows Japanese) character sets.
0284271
2005/03/31(木) 04:08:46ID:???Stored Procedures, Triggers, Viewをすっかり見落としてた...
いや実際のところ余り興味ないんだけけどね。
(トリガーはちょこっとだけあり)
0285C-route
2005/03/31(木) 12:39:30ID:y/Tz8Og2MySQL の演習用にデータファイル(.MYD .MYI .frm)をもらったは
いいんですが、レコードの日本語情報が sjis で記録されてました。
このデータファイル自体に対して、euc にエンコードする方法があれば
ご教示いただきたいのですが、先達にお心当たりはありませんでしょうか?
0286NAME IS NULL
2005/03/31(木) 16:30:08ID:???バイナリーなデータファイルだけ貰っても、貰った方も困るわな。
バイナリーなデータは、同じバージョンのMySQLでしか基本的に
互換性がない(4.0と4.1はあるんかな?)から、元のMySQLと同じサーバを
sjisに設定して動かして、そこからデータベースをファイルにdump。
ファイルはsjisで出力されてるのでnkf(skf)などでeuc-jpにコンバート、
ujisに設定したMySQLサーバにimportじゃないかね。
dump後のファイルを別のエンコードに変換しつつimportする
クライアントツールはあるので、探してそれを使ってもいい。
0287NAME IS NULL
2005/03/31(木) 18:26:58ID:???0288NAME IS NULL
2005/03/31(木) 18:45:58ID:???FC3/RHEL4/CentOS4で、MySQL4.0.24のビルド掛けると
MySQL4.1と同様に、http://bugs.mysql.com/bug.php?id=6554となるので
http://lists.mysql.com/internals/22988のパッチを関連するファイルに適用すること。
# embeddedパッケージだけが未だにエラーで作れん...orz
</チラシの裏>
0289NAME IS NULL
2005/03/31(木) 23:16:05ID:???最悪バイナリを解析すれば?
割に簡単にできるよ。
0290NAME IS NULL
皇紀2665/04/01(金) 00:35:33ID:???0291NAME IS NULL
2005/04/02(土) 16:07:58ID:???基本的に上位互換だったと思うが。
つか、sjisからeucに変換するスクリプト書いてupdateすればいいだけでしょ。
0292NAME IS NULL
2005/04/02(土) 23:23:03ID:???4.1はプログラムのバイナリ書き換えない限りファイルシステムレベルでの
ファイルは強制UTF8だから問題は多いよ
0293NAME IS NULL
2005/04/03(日) 01:49:37ID:???それは多少厳しいかもだが、リネームすれば大丈夫じゃね?
0294NAME IS NULL
2005/04/03(日) 13:18:28ID:???0295NAME IS NULL
2005/04/04(月) 08:52:15ID:???フィールド名はasciiにしてるから気にしてなかったよ。
0296285
2005/04/04(月) 12:44:18ID:g2xL8Y8+逆の発想となりますが、mysql のエラーメッセージの方
を sjis にすることは簡単にできますでしょうか?
0297質問すみません
2005/04/04(月) 19:10:47ID:???その節はお世話になりました。
さて、今回なのですが
MySQL+ASP(VBScript) or Excel VBA or VB6.0+MyODBCで開発しています。
ASP/VB他、全ての開発言語で共通する事象なのですが、
SELECTでレコードに読み込んだ後特定のデータ型のみ、
レコードセットに一度しかアクセスできないという不可解な現象が出ます。
具体的には
1:RS.open "SELECT aaa FROM bbb",Cn
2:IF RS(0)="" THEN
3: A=RS(0)
4:END IF
という分岐を行った場合に、
1:でRSにレコードセットした型がVARCHARであれば問題なく処理されるのですが、
TEXT/LONGTEXT型を用いた場合に2:で一度RSのレコードセットにアクセスした後、
3:の時点でレコードセットの内容が保持されていない、または破棄されているようです。
PCや開発環境を変えても同様の事象が発生しますので、MySQLかMyODBCに依存する
エラーだとは推測しているのですが、なにか情報をお持ちの方はいらっしゃいますでしょうか?
なお、MySQLは4.1.3 BETA,MyODBCはMyODBC-standard-3.51.9を使用しています。
よろしくお願い致します。
0298NAME IS NULL
2005/04/05(火) 07:00:47ID:???ADOでBLOB/CLOB系のフィールド読み書きする場合は
GetChunk/AppendChunkを使えってことではないかな。
0299質問すみません
2005/04/05(火) 09:34:45ID:???ご指摘ありがとうございます。
webprog板で以下の書き込みを見つけました
http://pc8.2ch.net/test/read.cgi/php/1059401269/827
>ああ、text型ね。ADOのバグあるよ。
>前方スクロールカーソルでレコードセット取得してる場合、
>text型のカラムを二回目読もうとすると読めなくてエラー。
>また、text型のカラムより後にあるカラムを先に読んでしまっても
>エラーになる事がある。
>もうやってるみたいだけど一旦変数に格納するのが吉。
>またはカーソルタイプをダイナミックにすれば大丈夫。
>text型は重宝するんだけどバグがね…
>SJISの二バイト文字入れててbcpで吐くとデータ壊れるし。
>早く2005出ないかなぁ…。
mysqlに関わらず、ADO経由でtext型を読み込むとエラーが発生するようです。
しかもこれはADOのバグ(仕様?)のようでした。
この書き込みにあるようにカーソルタイプをダイナミックにしてみましたが、
今度はtext型の中の値がNullのときに(テーブルはNull許可の設定済み)
レコードセットに格納・参照するだけでエラーという恐ろしい状況が出てることも発見してしまいました。
現在はエラートラップで強制的にresumeさせて無視していますが、
なにか納得できない気分です。
0300NAME IS NULL
2005/04/05(火) 14:35:40ID:???0301NAME IS NULL
2005/04/05(火) 16:30:13ID:???●環境
Red Hat Linux 9
Apache/2.0.53
MySQL 4.1.10
PHP Version 4.3.10
phpMyAdmin 2.6.1-pl3
●phpMyAdmin 設定
Language Japanese(ja-utf-8)
MySQLの文字セット: UTF-8 Unicode (utf8)
MySQL 接続照会順序: utf8_general_ci
●サーバー変数と設定値
変数 セッション値 グローバル値
back log 50 50
basedir / /
binlog cache size 32768 32768
bulk insert buffer size 8388608 8388608
character set client utf8 ujis
character set connection utf8 ujis
character set database ujis ujis
character set results utf8 ujis
character set server ujis ujis
character set system utf8 utf8
character sets dir /usr/share/mysql/charsets/ /usr/share/mysql/charsets/
collation connection utf8_general_ci ujis_japanese_ci
collation database ujis_japanese_ci ujis_japanese_ci
collation server ujis_japanese_ci ujis_japanese_ci
●現象
phpMyAdmin を使って DB の中身を参照すると
???
のように文字化けして表示されてしまいます。
phpMyAdmin トップページの Language コンボボックスでは、
「Japanese(ja-utf-8)」という項目が選択されています。
コンボボックス内の選択項目を一通り眺めてみましたが、
euc や sjis といった項目は存在しません。
文字化けを解消する方法をご存知の方がいらっしゃったら
ご教授ください。
よろしくお願いします。
0302NAME IS NULL
2005/04/05(火) 20:22:23ID:???昔、俺もはまったっけなぁ
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?cmd=read&page=FAQ#content_1_32
0303NAME IS NULL
2005/04/06(水) 10:29:57ID:???元となるデータは単なる文字列で、これをPerl/PHPなどで整形し、入力用データにする予定です。
整形する際にSQL文にするのが良いか、PHPとかで1行ずつクエリ実行するのが良いか迷ってます。
0304303
2005/04/06(水) 11:06:21ID:???整形するのに時間がかかって、20〜40万程度だったら入力自体には
そんなに時間がかかりませんでした。
正規表現のスキル不足でした orz
0305NAME IS NULL
2005/04/06(水) 15:56:59ID:YxlG0gex副問い合わせが使えない環境です。
そこで次のようなことを行いたいです。
create table mst(
uid VARCHAR(10)
,title TEXT
,url TEXT
)
この3列で複合キーになっています。
上記テーブルに
uid |title |url
-----------------------------------------------
abc |aaaaaaa |www.hogehoge.co.jp
-----------------------------------------------
abc |bbbbbbb |www.foobar.co.jp
と入っているものとします。
一方
create table log(
uid VARCHAR(10)
,title TEXT
,url TEXT
)
というテーブルがあります。これはキーなしです。
ここに
uid |title |url
-----------------------------------------------
abc |aaaaaaa |www.hogehoge.co.jp
-----------------------------------------------
abc |aaaaaaa |www.hogehoge.co.jp
-----------------------------------------------
abc |aaaaaaa |www.hogehoge.co.jp
-----------------------------------------------
abc |bbbbbbb |www.foobar.co.jp
-----------------------------------------------
abc |ccccccc |www.aiueo.co.jp
というようなレコードがはいっています。
ここで質問です。
テーブルmstに登録されていない組み合わせだけを、
テーブルlogから取り込みたいのです。
※この例ではccccccの組み合わせのみです
exist()が使えれば難しくはないと思うのですが、どうも
このバージョンのMySQLは使えないのでこまっております。
どうぞご教授よろしくお願いいたします。
0306NAME IS NULL
2005/04/06(水) 16:10:53ID:???SELECT * FROM log
LEFT JOIN mst
ON log.uid=mst.uid AND log.title=mst.title AND log.url=mst.url
WHERE mst.uid IS NULL
0307NAME IS NULL
2005/04/06(水) 18:09:57ID:YxlG0gex0308NAME IS NULL
2005/04/06(水) 18:10:25ID:???間違えましたすみません。
そのやり方で解決しましたありがとうございました!!
0309NAME IS NULL
2005/04/07(木) 13:07:38ID:EqrEf0eTここにoracleだとSQLを大文字で書くと速くなると書いてあるんだけど
mysqlではどうなの?
0310NAME IS NULL
NGNG最新の 4.1.11 にバージョンアップしたいのですが、
上書きインストールしてしまっていいものでしょうか?
0311NAME IS NULL
2005/04/07(木) 15:00:12ID:DtwT39/7どうするのでしょう?
0312NAME IS NULL
2005/04/07(木) 15:25:48ID:???自分は一応アンインストールしています。
>>311
mysqldump
0313NAME IS NULL
2005/04/07(木) 15:56:53ID:???マスタテーブルとアイテムテーブルに分けてリレーションさせる場合、
マスタテーブルにレコードを追加する際に、アイテムのフィールドに関してはアイテムに振られたプライマリキーの数値を入れる、
ということで合ってますか?
つまり、アイテムに振られたキーの番号を覚えていないと、マスタに追加する時に何番を入れたら良いか分からなくなりそうなんですが、
そういうものですか?
また、マスタにデータ追加時に、アイテムテーブルに存在しないアイテムが出て来た場合、動的にアイテムテーブルにレコードを追加する、ってことも出来るんしょうか?
0314NAME IS NULL
2005/04/07(木) 17:12:50ID:???0315NAME IS NULL
2005/04/07(木) 19:50:28ID:EqrEf0eT何のことやらさっぱり分からないんだけど
これについて解説した書籍を知っていたら教えて欲しい。
0317NAME IS NULL
2005/04/07(木) 21:26:54ID:???そりゃ貴方がGIS(OpenGIS規格)について知識がないからやがな。
0318NAME IS NULL
2005/04/07(木) 23:42:48ID:???例えば二次元情報の時間軸次元付加に空間ベクトルを使っても興味深い。
例えばリレーショナルデータベースという二次元情報の時系列データとして使えば
それ自体で差分スナップショットのできあがり〜
0319NAME IS NULL
2005/04/07(木) 23:55:56ID:???国土地理院のデータ2003年度版を47都道府県ぶち込んだんですが
DBがサイズ1.5Gになった・・・
0320NAME IS NULL
2005/04/08(金) 01:03:00ID:???てっきり20Gとか40Gになるのかと・・・・・
0321NAME IS NULL
2005/04/08(金) 04:50:51ID:???Mysqlで最高80億レコードまでは実績あるそうなんで
まーメチャな数字はないが現実的じゃないな。
0322NAME IS NULL
2005/04/08(金) 09:11:24ID:???CVS/SVN分以外のデータを全部格納する予定
0323NAME IS NULL
2005/04/08(金) 09:46:42ID:Dnu5jh4xMYODBCでACCESSにリンクしようと思っているのですが
ODBCにMYODBCを追加できません
(1)環境
Win2000 profesional sp1
Access2000
Mysql4.1
(2)手順
MyODBC-3.51.11-1-win.exe をダウンロードインストール
データ ソース (ODBC)のシステムDSNで「追加」を押しても一覧にMYODBC3.51が出てきません
ネットや本で見ると上の手順で簡単にインストールできるようなのですが
できません
おしえてくださいお願いします
0324NAME IS NULL
2005/04/08(金) 10:13:29ID:???systemdrive:\WINNT\System32\myodbc3.dll
とかちゃんと入ってる?なけりゃ失敗してるんだろうけど原因は知らん。
何かシステムログとかに出てないか
0325NAME IS NULL
2005/04/08(金) 10:22:05ID:???素朴な疑問。
国土地理院のデータフォーマットってOpenGISなの?
あと、なんでデータをDBにいれたの?
0326NAME IS NULL
2005/04/08(金) 11:28:17ID:Dnu5jh4xアドバイスありがとうございます
インストールも正常に終わって
WINNT\System32\myodbc3.dll
もあるのですが、ODBCに追加できません
どなたか分かる方いらっしゃいませんか
0327NAME IS NULL
2005/04/08(金) 12:10:19ID:???ここの一番上のSQL通りに入力しても、
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes
と出る。
テーブルタイプはMyISAMでフィールドはSQL通りなんだけど、どうしてだろう?
0328NAME IS NULL
2005/04/08(金) 13:13:00ID:???うーん、だとしたらODBCマネージャが腐ってるのか。
望み薄いけどexeのやつアンインストールしてmsiのやつ入れたらどう?
ぢっちみち中身同じだけど。あとMySQL4.1と組み合わせるのはちょっと
どうかと思うがMyODBC2.5系を入れたらどうなるか試す。
0329NAME IS NULL
2005/04/08(金) 20:19:12ID:???Server characterset : sjis
DB characterset : sjis
Client characterset : sjis
Conn. characterset : sjis
となってるんですが、VBAからデータをinsertすると日本語部分が
文字化けを起こしています。どうやったら直るか教えてください。
コマンドプロンプトからinsertする分には正常に表示されるみたい
なんですけど。
かねやんMySQLAdimn.exeでログインすると
このキャラクタセットでは文字化けを起こす可能性があります。
サーバのキャラクタセット ->
クライアントのキャラクタセット -> sjis
というメッセージが出るんですけど。
0330NAME IS NULL
2005/04/08(金) 20:32:33ID:???ODBC 経由で接続しているのなら、ODBC のデータソース設定で
Connect Options タブ → Initial Statement に set names sjis
を設定してみれば?
0331329
2005/04/08(金) 20:57:26ID:???& " SERVER=localhost;" _
& " DATABASE=********;" _
& " UID=xxxxxx;" _
& " PASSWORD=yyyyy;" _
& " OPTION=3"
で接続しています
odbcの設定を
Loginタブでは
Data Source Name myodbc
Server Localhost
User xxxxxx
Password yyyyy
Connect Optionsタブで
Initial Statement set names sjis
に設定後Testで Success connection was madeが出たのを確認、
サービスを再起動しテストしましたが、駄目でした。
0332NAME IS NULL
2005/04/08(金) 21:16:17ID:???接続文字列が、それだと ODBC の設定が使用されてないよ〜
以下のようにしないと。
P_CNString = "DSN=myodbc"
0333329
2005/04/08(金) 21:26:35ID:???修正後実行し、コマンドプロンプトで見たら文字化けは直りました。
またこれかもよろしくお願いします。
0334NAME IS NULL
2005/04/08(金) 22:20:48ID:???データベースのテーブルタイプはもちろんMyISAMなんだよね?
InnoDBだと駄目だった気がするよ。
ttp://dev.mysql.com/doc/mysql/ja/fulltext-restrictions.html
マニュアルくらい読もうZe
0335NAME IS NULL
2005/04/08(金) 22:21:23ID:???ああごめ、MyISAMって書いてあるじゃん。
MySQLのバージョンは?
0336NAME IS NULL
2005/04/09(土) 12:03:39ID:???バージョンは4.1.1で、Windowsでやってエラー発生。
テーブルタイプはデフォルトのままだからMyISAMのはず。
0337NAME IS NULL
2005/04/09(土) 12:09:43ID:???それはデフォルトがInnoDBになってると思われ。
試しにType=MyISAMを追加してみそ。
0338NAME IS NULL
2005/04/09(土) 12:17:47ID:???おおお
出来た!ありがとう!
0339報告(別名 チラシの裏 w)
2005/04/10(日) 00:13:20ID:???参考書についていたmysql-4,1,3b-win-zipをインストール
して、MYSQLサービスを立ち上げようとすると、
システムエラーが発生しました。
システムエラー
1067が発生しました
というメッセージというエラーが発生。
Googleで検索してwindowsフォルダのmy.iniを一旦削除して
サービスを起動すると正常に立ち上がり。
ではどこが駄目なのか、付け加えてはサービスをあげたり落
としたりしてみたところ、以下のデータがmy.iniに入っていると正常
起動が出来なかった。
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 4.1/"
#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 4.1/Data/"
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8
ワケ ワカ ラン♪
∧_∧ ∧_∧ ∧_∧
(; ・∀・) (; ・∀・) (; ・∀・)
⊂ ⊂ ) ( つ つ ⊂__へ つ
く く く ) ) ) (_)/
(_(_) (__)_) 彡(_)
0340NAME IS NULL
2005/04/10(日) 18:10:30ID:???なぜにversion下げる?
0341NAME IS NULL
2005/04/10(日) 22:49:19ID:???0342NAME IS NULL
2005/04/11(月) 14:38:16ID:???ttp://dev.mysql.com/doc/mysql/en/mac-os-x-installation.html
0344134
2005/04/12(火) 14:43:54ID:/xM/e5Y/mysql-essential-5.0.3-beta-win32.msi
上記のファイルからインストール手順を進めていましたが
Install As Windows Service のインストールが出来ずに
cannot create windows service for Mysql error: 0
と言うエラーメッセージが表示されてしまいます。
以前のバージョンが残っているとインストールが途中で止まるとの事なので
残らず削除しましたが、やはり完全にはインストールができません。
0345NAME IS NULL
2005/04/12(火) 15:16:51ID:/8uXX3jwMYODBCの設定で各種パラメータ設定後、
test data sourceボタン押下時に、
アクセス拒否の旨のメッセージが出力されます。
どう対応していいのか分かりません。誰かエロイ人
教えてください。お願いします。
バージョンは以下のとおりです。
MYSQL:4.0.14
MYODBC:3.51.8
0346NAME IS NULL
2005/04/12(火) 15:38:45ID:???0347NAME IS NULL
2005/04/12(火) 16:01:47ID:/8uXX3jwご返答ありがとうございます。
たぶんしてないと思います。MYSQL関連のサイトを拝見したのですが
いまいち分からなくて・・・
ODBC操作の許可ってどうやるんでしょう
なんせ初心者なので・・・
0348NAME IS NULL
2005/04/12(火) 16:15:37ID:???ガンガレ
0349NAME IS NULL
2005/04/12(火) 18:56:04ID:???a 1 1 1 2 2 3 3 3 ・・・n n n・・・
b 1 3 5 1 6 2 4 5 ・・・3 5 9・・・
a=1の場合のbが最小値である列
a=2の場合のbが最小値である列
a=3の場合のbが最小値である列
a=nの場合のbが最小値である列
だけを取り出す。
上の例では(a,b)=(1,1)(2,1)(3,2)(n,3)の列だけを取り出す。
のにはどういったSQLを書けば宜しいでしょうか。
考えたけど、よく分かりませんでした。
使うべき関数だけでもご教授お願いします。
0350NAME IS NULL
2005/04/12(火) 19:09:28ID:???うはっwwwおkwwwうえっうえっwww??
0352NAME IS NULL
2005/04/12(火) 19:39:20ID:yaYL03P40353NAME IS NULL
2005/04/12(火) 20:58:03ID:???なんか出来そうな感じです、有難う御座いました。
0354NAME IS NULL
2005/04/13(水) 02:57:35ID:AvWiAUcmある行を上から2番目に移動させたいのですが
??????? from tables where xxx is yyy;
どうすればいいでしょう?
テストデータで何千件も番号の羅列のデータがあるので、
実際に使うデータを見かけ上、2番目にもってきたいという理由です。
0356NAME IS NULL
2005/04/13(水) 08:47:29ID:???んなもんクライアント側で適当にやれや
0357NAME IS NULL
2005/04/13(水) 11:15:48ID:1z1gdUmSMySQLでは同一テーブル内での自己参照制約を作成することは可能でしょうか?
同一テーブル内で、子ID・親IDを持ち、親IDは子IDを必ず参照するといった
制約をつくりたいのですが、別テーブルにわけないと実現不可能でしょうか。
0358357
2005/04/13(水) 11:40:18ID:???作成できますね・・・。
0359NAME IS NULL
2005/04/13(水) 14:53:07ID:???myodbc 3.51.11 (Initial StatementにSET NAMES sjis)
#utf8にしても同じ
クライアントはAccessでDate(time)型のフィールドを更新しようとすると
SQLデータ型が有効範囲にありません(#0)
というメッセージが出ます。これって回避できないもんなんでしょうか?
またexcelで管理してるデータをmysqlに貼り付けたいだけなんで
別になんかいい方法があれば、教えてください。
4.1.10は・・・ってのは置いといて。
0360354
2005/04/13(水) 19:12:25ID:???一応phpmyadminはあるのですが、これをつかってでも無理ですか?
0361NAME IS NULL
2005/04/13(水) 19:58:14ID:???order by とかつけてないなら、
それは「たまたま」二番目に出てくるだけであって、
必ず二番目に出てくる保証はない。
0362NAME IS NULL
2005/04/13(水) 22:09:12ID:???ttp://bugs.mysql.com/bug.php?id=8363
じゃね?
バージョン下げれば大丈夫っぽ。
0363NAME IS NULL
2005/04/13(水) 22:10:43ID:???RDBMSって基本的に順番は保持してないんだヨ。
RDBMSについて勉強してみましょう。
0364NAME IS NULL
2005/04/13(水) 23:40:40ID:???ある文字列を指定した桁に含むレコードを検索したいんだけど、
通常インデックスと全文インデックスどちらでやってもlike '__abc'と言う様な検索が凄く遅いんです。
文字列はスペースの区切りが無いのでmatch()against()では1件もヒットしません。
何か良い方法ってありませんか?
0365NAME IS NULL
2005/04/14(木) 04:56:53ID:mAlafAcg・対象のフィールドで重複しないレコードを抽出して、新たに作ったテーブルに入れていく。
・新たに出来たテーブルにauto_incrementで振られた数字をプライマリキーとし、
元のテーブルのぉ…うわああああわかんね!!
0366359
2005/04/14(木) 08:57:12ID:???thx
古いやつは、utf8書くのにちゃんちやってくれなかった覚えが
あるから、とりあえず中に書いてあった3.51.11-2ってので試してみるわ。
ついでに
>>364
subsrting()使えばlikeよりははやいんじゃないの?
>>365
漏れもわかんね。もっと詳しく
0367359
2005/04/14(木) 10:21:27ID:???ついでにset names sjisとか書かなくても、日本語ちゃんとでるよ
0368NAME IS NULL
2005/04/14(木) 17:50:12ID:???取り出す桁の位置が固定ならsubstring()使った関数インデックス作っとくとよさげやね。
それか元のテーブルの主キーと検索に必要な桁だけのテーブルを別に作っといてJOINするとか。
>>364
LIKE '_xxx' や LIKE '%xxx' みたいな式はインデックス効かないよ。
0369NAME IS NULL
2005/04/15(金) 08:29:33ID:l/QWyh7VphpMyadminの "character set client(セッション値)" の値を
"sjis" にするには…? "sjis" で管理、表示させたいんだけど
なにをどうしても "utf8" のままで…。どこをどうしたらいいんでしょ?
つまらない質問だったらごめんなさいだす、、、
環境はぁ、
fedora core 3
phpMyAdmin 2.6.1-pl3
MySQL 4.1.10
PHP Version 5.0.4
で、あります。
0370NAME IS NULL
2005/04/15(金) 09:27:11ID:???binaryにsjis突っ込んでるとか?
わざわざsjisにしたい理由がわからない
0371NAME IS NULL
2005/04/15(金) 10:28:50ID:E+fJ7AX5WinMySQLadmin1.4 にて Databasesタブに、作成したテーブルが表示されないのですが
どうすれば見れるようになるでしょうか?
何回かアンインストールを繰り返しているのですが、WinMySQLadmin画面では前の履歴が
残ってい居るようです、(my.ini 設定など)。
WindowsXP MySQL4.0.21 環境です。
0372NAME IS NULL
2005/04/15(金) 10:56:39ID:KrN68DWhMYSQLにはフィールドロックはあるのでしょうか?
Google先生に頼んでも、普通のLockTableしか見当たらず、もしかしたら無いのかとコマっております。
0373NAME IS NULL
2005/04/15(金) 11:33:56ID:???0374NAME IS NULL
2005/04/15(金) 11:43:43ID:???フィールドロックって何?
レコードロックのことなら以下で。
SELECT … FROM … WHERE ロックしたいレコードの抽出条件 FOR UPDATE
抽出条件の対象カラムが PRIMARY KEY でないとテーブルロックになるので注意。
テーブルタイプは InnoDB でないとレコードロックは使用できなかったはず。
0375NAME IS NULL
2005/04/15(金) 11:47:58ID:???0376muro c119201.tctv.ne.jp/
2005/04/15(金) 11:58:44ID:???ぇ し の ァ ハ
け と ぉ ァ
うはっwww夢がひろがりんぐwwwwww
0377NAME IS NULL
2005/04/15(金) 13:07:08ID:???すいません、用語が間違ってました
レコードロックというんですね。Google先生でもひっかかります。
ありがとうございました。
0378NAME IS NULL
2005/04/15(金) 13:19:27ID:???選択したストレージエンジンによる。
0379NAME IS NULL
2005/04/15(金) 13:59:17ID:???dクス。
0380muro YahooBB220029188143.bbtec.net/
2005/04/15(金) 14:06:58ID:???ぇ し の ァ ハ
け と ぉ ァ
うはっwww夢がひろがりんぐwwwwww
0381muro p1160-ipad11gifu.gifu.ocn.ne.jp/
2005/04/15(金) 19:23:29ID:???ぇ し の ァ ハ
け と ぉ ァ
うはっwww夢がひろがりんぐwwwwww
0382↑
2005/04/16(土) 00:19:52ID:???ttp://www.itmedia.co.jp/enterprise/articles/0504/15/news068.html
0383NAME IS NULL
2005/04/16(土) 10:33:21ID:zFHNc9CJフィールドの位置を移動させるにはどうすればいいのでしょうか?
0384NAME IS NULL
2005/04/16(土) 10:59:52ID:???0385前スレ966
2005/04/16(土) 11:59:03ID:4ylbpIarあれから、以下のような方法を思いつきました。
PHPで、すべてを取得し、mbstringかけてから配列につめる。
ループさせて、一致する文字を探す。
この方法なら出来るとは思うのですが、みなさんは、どういう風に実現してるんでしょうか?
LIKE '%キーワード%'で、作成されている方、みえませんかねぇ?
0386NAME IS NULL
2005/04/16(土) 13:33:13ID:???いや、普通に LIKE '%キーワード%'の中間一致でやってるよ。
効率は悪いけど。
「2バイト文字がうまく検索できない」のは
ちゃんと文字コードを合わせてないから。
0387前スレ966
2005/04/16(土) 16:25:49ID:4ylbpIarありがとーーーーー! 感激っす。
力強く断言してもらったおかげで、探す際の気合の入り方が変わりました。
おかげさまで、my.confの書き換え忘れを発見。
さらに、BLOBからTEXTに型を戻して、PHPのSQLからもbinaryを外して、解決。
はー。
ようやく、あちこちに書いてあった意味が、繋がった...
今夜は良く眠れます。
0388NAME IS NULL
2005/04/16(土) 18:51:01ID:???ここにR-TREEっていう単語が出てくるけどこれは何?
MySQLの通常のインデックスがB-TREEという事は知ってるんだけど。
0389NAME IS NULL
2005/04/16(土) 22:46:53ID:???なぜこうなるのかちょっと不思議。
0390NAME IS NULL
2005/04/16(土) 23:56:13ID:zFHNc9CJthx
とても助かりました。
0391NAME IS NULL
2005/04/17(日) 03:08:04ID:???いきなり電源が落ちてしまった場合は、サーバ立ち上げ時から更新されたデータは飛んでしまうのでしょうか?
fedora coreですが、デフォルト状態で使っていても問題ないのでしょうか?
0392NAME IS NULL
2005/04/17(日) 15:01:18ID:???R-TreeっていうのはたしかB-Treeを多次元に拡張したもののはず。
>>391
heapと勘違いしてない?
そういえば、senna の日本語全文検索機能を組み込んで使ってる人はいる?
会社名が怪しすぎるから試していなかったけど、ちょっとやってみるかな。
0393NAME IS NULL
2005/04/17(日) 18:41:07ID:???R-Treeは本来は多次元インデックスです。
しかしGISデータ型用だから2次元までしか対応してないのでは?
PostgreSQLでもやはりR-Treeは2次元インデックスです。
PostgreSQLで多次元インデックスが欲しければGiSTで作ることになります。
なおPostgreSQLでは昔から指定できたので関連文書に解説があります。
4.10) R-tree インデックスとは何ですか? (PostgreSQL FAQより)
http://www.postgresql.jp/wg/jpugdoc/faq-japanese.html#4.10
[postgres95 801] spatial data structures
http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/1996Oct/msg00007.html
0394NAME IS NULL
2005/04/18(月) 21:51:23ID:6qA5XaRHCREATE TABLE t1 (s1 INT);
INSERT INTO t1 VALUES (1);
CREATE TABLE t2 (s1 INT);
INSERT INTO t2 VALUES (2);
その後、SELECT を実行します。
SELECT (SELECT s1 FROM t2) FROM t1;
結果は 2 になります。なぜなら、t2 には、カラム s1 を持つレコードがあり、s1 の値は 2 であるためです。
副問い合わせを勉強中なんだけど、これの意味が分からないので教えてください。
select (select s1 from t2) from t1;がselect 2 from t1; ってこと?
それともこのSQL文全体の結果が2になるんだったらselect s1 from t2;と同じじゃ?
0395NAME IS NULL
2005/04/19(火) 00:28:14ID:???select 2 from t1 と同じ意味が正解。
今回の例では、select s1 from t2 でも同じ結果が返るけど、t1 に
複数レコードあれば、結果は異なる。
やってみれば判る。
0396NAME IS NULL
2005/04/19(火) 05:41:45ID:???全てのselectの結果に含まれるカラムだけを取り出す方法ってありますか?
0397NAME IS NULL
2005/04/19(火) 09:24:08ID:???> いきなり電源が落ちてしまった場合は、サーバ立ち上げ時から更新されたデータは飛んでしまうのでしょうか?
そう。
> fedora coreですが、デフォルト状態で使っていても問題ないのでしょうか?
用途による。
セッション情報なんかはいいんじゃない?
ロールバックかけるようなものを入れちゃまずいでしょ。
0398NAME IS NULL
2005/04/19(火) 15:46:22ID:???MyISAMじゃなくてHEAP型のことならと一文あった方が、誤解がない
0399NAME IS NULL
2005/04/19(火) 16:13:10ID:???MyISAM型はクエリを受け付けるとメモリ上の処理待ちリストに追加され、
クエリー完了結果はディスクに実際に書き込まれてからしか返されないので、
不意の電源断などでアブナイ部分は、DBMSが混んでてそのクエリが処理待ち
リストに入ってる瞬間だね。1行クエリはいいけど、ロックを掛けて複数クエリで
成立する処理をやってる場合は注意した方がいい。
HEAP型はクライアント間で共有ができるので、
>セッション情報なんかはいいんじゃない?
は良い。MyISAMでも充分なスピードだけど。
「不意の電源断」の起こりそうな環境で大切なデータは扱うなよ
0400397
2005/04/20(水) 00:03:49ID:???392氏の指摘で十分かと思いはしょりました。。
>>391
399氏の言うとおりです。
テーブルをメモリ上に持つメリットはあるけど、キーバッファや
ディスクキャッシュにメモリを割り当てた方がトータルでは良かったりするかもね。
0401NAME IS NULL
2005/04/20(水) 06:23:16ID:g5cEy3Syビット演算でもインデックスって使われるんでしょうか?
0402NAME IS NULL
2005/04/20(水) 09:49:23ID:???立ってるだけでいいなら
where (a.foo * 256) != 0
とかで
0403NAME IS NULL
2005/04/21(木) 09:07:56ID:???このSQL文が失敗するのですが、なぜですか?
create table geo (geogeo multipoint);
これは成功します。
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 'surface)' at line 1
というエラーメッセージが出ます。
0404403
2005/04/21(木) 09:54:44ID:???0405NAME IS NULL
2005/04/21(木) 11:19:09ID:???解決したらな、解決方法を書けよ・・・
0406NAME IS NULL
2005/04/21(木) 16:23:36ID:???http://dev.mysql.com/doc/mysql/ja/mysql-spatial-datatypes.html
0407NAME IS NULL
2005/04/21(木) 23:32:23ID:???sjisでコンパイルしたmysqlへhtmlのform(euc-jp)データをインサートすると
勝手にsjisになるんでしょうか。
0408NAME IS NULL
2005/04/21(木) 23:44:56ID:???0409NAME IS NULL
2005/04/22(金) 00:02:02ID:???0410NAME IS NULL
2005/04/22(金) 00:14:24ID:???0411NAME IS NULL
2005/04/22(金) 00:31:48ID:???なんで指定するの?
0412NAME IS NULL
2005/04/22(金) 00:54:32ID:???MySQLサーバが中に入ってるデータをsjisのテキストとして扱うため。
指定がなけりゃ、バイナリーなんてどう扱っていいか判らんやん。
0413NAME IS NULL
2005/04/22(金) 01:02:45ID:???selectしたときに出力されるコードがsjisになるって
ことでしょうか?
0414NAME IS NULL
2005/04/22(金) 01:11:10ID:???9 各国キャラクタセットと Unicode
0415NAME IS NULL
2005/04/22(金) 01:12:37ID:???したときには、その文字コードで返ってくるんですか?
0416NAME IS NULL
2005/04/22(金) 01:56:43ID:???貴様(サーバ)はsjisとして扱い給えという指定。
受け渡しに際して勝手に色々と気をまわすのは俺様に対して失礼である。
また思い込みによって処理を間違える可能性もあるので貴様は他に何もするな。
ということ。
0417NAME IS NULL
2005/04/22(金) 03:33:15ID:???ありがとう!
バイナリのインスコはやめたほうがいいな。と妄想
0418NAME IS NULL
2005/04/22(金) 03:36:23ID:L0u67L2BDBの仕事ではない。
DBは単なるインデックスつきの箱だ。
0419403
2005/04/22(金) 04:33:20ID:???>>406の指摘通り、インスタンス化できるかできないかの違いで、
つまりsurface型はそもそも作れないという事でした。
リファレンスの空間機能についての解説が少なすぎる気がする・・
未実装と書かれてる機能が使えたりするし。(contains()とか)
0420NAME IS NULL
2005/04/22(金) 19:11:34ID:???単純でなくなる。
0421NAME IS NULL
2005/04/22(金) 19:17:26ID:???LIKE 使うときもな。
文字の切れ目がわからないと困る。
0422NAME IS NULL
2005/04/22(金) 22:36:27ID:???tcp 0 0 *:mysql *:* LISTEN
ここのポートリスンしてるんだがこのままでいいですか?
ここのweb鯖からのリクエストしか応じない場合は
ふさぐべき?
0423NAME IS NULL
2005/04/22(金) 23:07:00ID:???skip-networking
0424NAME IS NULL
2005/04/23(土) 06:52:57ID:XvvE8E3e現在一通りデータを入力し終え、PHPからDBを呼び出すスクリプトまで完成しました。
で、色々と検索テストしていて一つ困った事が出てきました。
それは、入力したデータの中に全角英数文字と半角英数文字が入り乱れている事です。
MySQLの方に全角/半角を区別しないで検索する命令があるだろうと思ってたのですが、
いざ実装しようとすると、探せど探せど情報が見付かりません…
宜しければ何方かやり方をご教示願えませんでしょうか?
0425NAME IS NULL
2005/04/23(土) 07:02:30ID:???ないよ、そんな(半/全を同一視)機能。
MSのSQLサーバとかで慣れて欲しいって話があったので、
フロントで吸収するように作った事はあるけど。
0426NAME IS NULL
2005/04/23(土) 07:08:04ID:???えぇ〜!そうなんですか!?
う〜ん、最初から分かってればなぁ。
とりあえずデータの方を修正するしかないですね…
しかし、まさか無いとは…orz
0427NAME IS NULL
2005/04/23(土) 09:12:32ID:???そう驚くものでもないが。
曖昧一致は便利だし欲しい機能ではあるけどね。
渡辺と渡邊と渡邉を同一視してくれるとか、
1や一、壱、@あたりを同じと見なすとか、
まあRDBMSが担当すべき領域なのかは疑問だが。
0428NAME IS NULL
2005/04/23(土) 09:43:31ID:???いや、パフォーマンスじゃなくって、手間の方が。
0429NAME IS NULL
2005/04/23(土) 14:01:33ID:???登録するデータに一貫性が無いとDBなんて・・・・
0430NAME IS NULL
2005/04/23(土) 14:13:51ID:w8MMk9gwカラムかテーブル作ればいいんだよ。
0431NAME IS NULL
2005/04/24(日) 15:59:07ID:???その為にMySQLにISO-2022-JP(JIS)を使っても問題ないのでしょうか?
サイトもISO-2022-JP(JIS)で構成されているので文字化けはしていないようです。
やっている人に聞いたら「動いているから大丈夫」って事なんですが、
使用する文字コードはEUCかUnicode、
あるいはSJISぐらいしか聞いたこと無いので気になってしまいます。
0432NAME IS NULL
2005/04/24(日) 16:51:36ID:???データベースをujisかutf8に設定して、jisでデータを入れたいって話かな。
ただ単純に格納するだけならujis/utf8の設定で、jisデータを入れることは何ら問題ない。
(MySQL4.1以降はエンコードの無用な変換が掛からないように設定等に注意)
先にも色々出ているが、それを日本語のデータとしてDBMSの機能で色々検索など掛けたい場合には駄目。
データベースにあったエンコードに変換して格納、出力に合わせて、メールならjis、
ケータイ向けならsjisなどとフロント側で変換するのが普通。
0433NAME IS NULL
2005/04/24(日) 16:56:54ID:???許されているキャラクターセットからの変換の場合、
その辺を代替または削除する処理もしておく。
0434NAME IS NULL
2005/04/24(日) 17:27:18ID:???今のところは格納しているだけなんですが、
やはりこれから検索などをかけたくなったときに困るので
言われているように格納はujis等にして
必要に応じて変換して使用するようにしてみます。
半角カナや機種依存文字の問題もありました。
本当に有り難うございます。
0435NAME IS NULL
2005/04/25(月) 01:46:24ID:???4.1.11を再インストールしたら、Config Wizardの最後で
Could not start the service MySQL.Error:0
と表示され失敗します。
sc deleteやったり、WizardにてRemoveし、サービスの中にも
MySQLがないのを確認して再度Wizardを行っても同様です。
メッセージはやや異なりますが、>>344さんと同じでしょうか?
失敗した後でもMySQLサービスが出来ているので、開始させてみると
ローカルコンピュータのMySQLサービスを開始できません。
エラー 1067 プロセスを途中で強制終了しました。
とエラーが表示されます。
解決方法はありますか?よろしくお願いします。
0436NAME IS NULL
2005/04/25(月) 18:26:01ID:???MySQLのバックアップ・リストアについて調べています。
MySQLで稼働中にバックアップをとる方法としてはmysqldumpが提供されていますが、mysqldumpで取得したダンプは参照整合性は保障されているのでしょうか?
複数のテーブルにまたがる更新トランザクション中にmysqldumpが走ると整合性が保障されなくなるような気がします。
メンテナンス時間にアプリケーション側でWrite Lockするような機構を用意するという設計思想なのでしょうか?
0437NAME IS NULL
2005/04/25(月) 20:03:59ID:???3系、4系、5系、どのシリーズから?
0438NAME IS NULL
2005/04/25(月) 20:43:50ID:???mysqldump --help
mysqlhotcopyもあるよ
0439NAME IS NULL
2005/04/25(月) 22:47:48ID:???ストアドは5じゃなかった?
0440NAME IS NULL
2005/04/26(火) 00:10:49ID:???ホレ
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5b.html
0441NAME IS NULL
2005/04/26(火) 01:46:56ID:???整合性は保障されないのではないでしょうか。
うちの場合は、複数台レプリケーションさせて、
最後の1台だけ、cronでslave stopしてから、
mysqldumpしています。
ダンプ後にslave startすれば、数分後には全台同期します。
やっぱりこれが非同期レプリケーションの利点ですね。
0442NAME IS NULL
2005/04/26(火) 02:22:12ID:???オライリにそれについてのいい訳書があるよ
0443NAME IS NULL
2005/04/26(火) 04:12:27ID:???エラーログには何か出てないの?
0444NAME IS NULL
2005/04/26(火) 16:58:20ID:???Windowsなら参考までに >>339を
0445NAME IS NULL
2005/04/26(火) 17:47:40ID:cnxIRR5Buseridが1の所属しているグループとピッタリ同じグループに
所属しているuseridを抜き出す方法ってあります?
id | groupid | userid
---+---------+-------
1 | 2 | 1
2 | 3 | 1
3 | 5 | 2
4 | 6 | 3
5 | 6 | 4
6 | 1 | 4
7 | 3 | 4
8 | 8 | 5
9 | 9 | 5
10 | 1 | 5
11 | 2 | 5
12 | 4 | 6
13 | 7 | 7
0446NAME IS NULL
2005/04/26(火) 17:54:36ID:???select userid from table where groupid in (select groupid from table where userid=1)
0447NAME IS NULL
2005/04/26(火) 17:58:32ID:???2と3を抽出したいって事か?
id | groupid | userid
---+---------+-------
1 | 2 | 1
2 | 3 | 1
0448NAME IS NULL
2005/04/26(火) 18:00:11ID:???0449NAME IS NULL
2005/04/26(火) 18:01:45ID:???userid1と同じグループに属する全てのuseridを抽出でしょ?
0450NAME IS NULL
2005/04/26(火) 18:19:51ID:???SELECT table.userid FROM table
LEFT OUTER JOIN table AS x ON table.groupid=x.groupid
WHERE x.userid=1
0451445
2005/04/26(火) 20:01:02ID:cnxIRR5B作ったテーブル
mysql> select * from test order by user_id,group_id;
+----+----------+---------+
| id | group_id | user_id |
+----+----------+---------+
| 1 | 1 | 1 |
| 3 | 2 | 1 |
| 2 | 1 | 2 |
| 5 | 3 | 2 |
| 17 | 9 | 2 |
| 9 | 2 | 3 |
| 8 | 4 | 3 |
| 22 | 1 | 4 |
| 10 | 2 | 4 |
| 11 | 1 | 5 |
| 12 | 2 | 5 |
| 18 | 5 | 5 |
| 13 | 1 | 6 |
| 14 | 2 | 6 |
| 4 | 3 | 6 |
| 6 | 4 | 6 |
| 15 | 8 | 6 |
| 20 | 1 | 7 |
| 21 | 2 | 7 |
| 7 | 7 | 8 |
| 19 | 2 | 9 |
| 16 | 8 | 9 |
+----+----------+---------+
>>446 さんのをサブクエリ使えないので二段階で。
mysql> select group_id from test where user_id=1;
+----------+
| group_id |
+----------+
| 1 |
| 2 |
+----------+
2 rows in set (0.00 sec)
mysql> select user_id from test where group_id in (1,2);
+---------+
| user_id |
+---------+
| 1 |
| 2 |
| 1 |
| 3 |
| 4 |
| 5 |
| 5 |
| 6 |
| 6 |
| 9 |
| 7 |
| 7 |
| 4 |
+---------+
13 rows in set (0.00 sec)
0452445
2005/04/26(火) 20:04:39ID:cnxIRR5Bmysql> SELECT test.user_id FROM test LEFT OUTER JOIN test AS x ON test.group_id=x.group_id WHERE x.user_id=1;
+---------+
| user_id |
+---------+
| 1 |
| 2 |
| 1 |
| 3 |
| 4 |
| 5 |
| 5 |
| 6 |
| 6 |
| 9 |
| 7 |
| 7 |
| 4 |
+---------+
13 rows in set (0.00 sec)
たしかに、450さんの結果は446さんと同じなのでクエリとしては同じなんだけど、求めている結果と違います。
>>449 さんのように結果がほしいので、
+---------+
| user_id |
+---------+
| 1 |
| 4 |
| 7 |
+---------+
と出てきて欲しいのですが。(1はあってもなくても。)
0453NAME IS NULL
2005/04/26(火) 20:26:42ID:???> >>449 さんのように結果がほしいので、
> +---------+
> | user_id |
> +---------+
> | 1 |
> | 4 |
> | 7 |
> +---------+
> と出てきて欲しいのですが。(1はあってもなくても。)
シノニムで
0454436
2005/04/26(火) 23:31:14ID:???どうもありがとうございました。ただいまmysqlsnapshotというのも調べているところです。
0455NAME IS NULL
2005/04/26(火) 23:33:21ID:???0456NAME IS NULL
2005/04/26(火) 23:39:17ID:???質問させて下さい。
mysql3系で、1つのテーブルの中に、文字列や数字を入れて、SQLで呼び出すぐらいしか知識がありません。
例えば、
・商品テーブル
商品名 単価 配送サイズ
商品A 30,000 80
商品B 50,000 120
・配送料テーブル
サイズ 料金
60 500
80 750
100 1000
120 1250
140 1500
160 1750
みたいなデータがあったとします。
たとえば、商品Aを選んだときに、送料もデータベースから探すことはできるのでしょうか?
こういう2つのテーブルを使えば、送料が変わっても、配送料テーブルだけ書き換えれば助かります。
こういうのをリレーショナルというのでしょうか?
それとも副問い合わせというのでしょうか?
この場合、商品テーブルの配送サイズと、配送料テーブルのサイズをリンク(?)させないといけないですよね?
ここらへんを理解すれば、いろいろな事ができそうなのですが・・・。
そもそもmysqlの3系でこういう事はできるのでしょうか?(myISAM? InnoDB?)
0457NAME IS NULL
2005/04/27(水) 00:40:21ID:???4.1の話もちらほら見かけます
4.0と4.1のどちらが良く使われているのでしょうか?
phpでmysqliが使えるようになるので
気になっています
0458NAME IS NULL
2005/04/27(水) 01:20:56ID:???っていうかもうちょっと勉強しろよ。「結合」か「join」で検索しる。
0459NAME IS NULL
2005/04/27(水) 02:21:09ID:???mysqliは、PEAR使ってるなら余りメリットは無い。
(MySQL4.1以降の新機能を使うためには、どの道mysqli経由しかない訳だが)
自分はMySQL4.0.xとMySQL5.x使ってる。
MySQL3.xと互換性の高いMySQL4.0.x、新機能でMySQL5.xの区分け。
0460NAME IS NULL
2005/04/27(水) 10:43:17ID:???1台のサーバで同時起動って可能でしょうか。
0461NAME IS NULL
2005/04/27(水) 12:25:12ID:???そこでいう"サーバ"ってのはプロセスのことか?
それともハードウェアのことか?
0462NAME IS NULL
2005/04/27(水) 12:35:20ID:???可能。mysqldを複数動かしてください。
0463456
2005/04/27(水) 15:23:43ID:fOa9uM/Dleft joinってやつですね。
見てみました。ちょっとSQL文が複雑に見えますが勉強してみます。
サブクエリってのは、副問い合わせと同じ意味でしょうか?
0464NAME IS NULL
NGNG今まではグループ分けしたものを抽出してから
それをループでグループ毎にクエリして、抽出してましたが
これって効率悪いですよね?
0465localhost
2005/04/27(水) 18:06:02ID:nNNwpcrwテストでDBサーバを分散しているのですが。
条件によってそれをおのおの指定したいのですが、可能でしょうか?
AサーバとBサーバが
ある場合、
どのようにすれば接続できるでしょうか?
PHPはCのWebサーバからアクセスします。
Cのindex.phpで条件がAで「検索」とすればAのDBを見に行き、
Cのindex.phpで条件がBで「検索」とすればBのDBを見に行く。
ってかんじなんですが。
どなたか、ヒントでもいいので教えてください。
m(__)m
0466NAME IS NULL
2005/04/27(水) 19:27:42ID:???その中で、サーバAかBかを指定して接続すれば良いじゃん。
0467NAME IS NULL
2005/04/28(木) 01:44:09ID:???各サーバが同期した負荷分散ならば、
mysql_connectのホストを乱数で切り替えたりするんだけど。
単にテーブルが散らばってるだけなら、
とてもメンテナンスしづらく思えます。
0468NAME IS NULL
2005/04/29(金) 00:07:15ID:???phpmyadminのトップページでフォームで入力する画面って
config.phpのどこを弄ればいいの?
http://www.sakura.ne.jp/support/manual/rs/images/xoops51.gif
こんな感じにしたいんだけど、
['auth_type']かなと思って、http・cokkieを選んだけど無理ぽ。
0469NAME IS NULL
2005/04/29(金) 01:20:18ID:???http://pc8.2ch.net/test/read.cgi/db/1103113155/560-562
にも書いたのですが、もしや MySQL 特有の問題かと思ってこちらにもポストします。
クロスポストごめんなさい。
table hoge {
ID int(20),
md5化URL varchar(32),
その他date, userid, subjectなどなど
}
というテーブルがあって、md5化URLが重複してる項目を探そうとしてます。
前掲のスレ 561 にあるように 直接 “自己結合で where条件に IDが!= かつ md5化URLが= ”
というのはやってみたんですが、empty が帰ってきます。
でも他の column を使って、似ている要素を探し出すと、
明らかに md5化URL 値が重複した row はあるんです。
これって MySQL の varchar の扱いとかそう言う問題でしょうか??
MySQL は 4.1.7 みたいです。
0470NAME IS NULL
2005/04/29(金) 01:23:03ID:???0471NAME IS NULL
2005/04/30(土) 08:19:21ID:???具体的にどういうときに使ったら良いものなんでしょうか?
explorer代わりに使えるのでしょうか?
情報処理試験に受かりたいので、使いこなせるようになりたいのですが
0472NAME IS NULL
2005/04/30(土) 09:06:43ID:???>>1
0473NAME IS NULL
2005/04/30(土) 09:56:39ID:???1.ファイラーとして
2.IEのようなブラウザとして
使いこなしまくりだな。
0474NAME IS NULL
2005/04/30(土) 11:16:34ID:???0475NAME IS NULL
2005/04/30(土) 13:30:06ID:???まず自分の職業を替えるといいよ
0476NAME IS NULL
2005/04/30(土) 14:04:41ID:???0477NAME IS NULL
2005/04/30(土) 15:24:18ID:???0478NAME IS NULL
2005/05/01(日) 08:46:53ID:EM4XnQsCNULLを許可してるにも関わらず、INTのカラムにNULLを入れると0になります・・(デフォはNULLに設定)
今使ってるバージョンだとNULLは入らないんでしょうか?
バージョン4以降ならNULLになるんでしょうか?
教えてください。
0479NAME IS NULL
2005/05/01(日) 10:07:31ID:???NULLは入ります。
0480478
2005/05/01(日) 17:30:44ID:EM4XnQsC$aaa = NULL で、$aaaを定義してから、それをINSERTしたんですが・・それが方法が駄目なのでしょうかねぇ。
もうちょい試してみるかなぁ
>>479 ありがとございました〜
0481NAME IS NULL
2005/05/01(日) 18:00:53ID:???$aaa って PHP でやってるの?
まずは、普通に insert into テーブル名 (カラム名) values(NULL) とやってみて
切り分けてみたら?
0482480
2005/05/01(日) 19:22:08ID:EM4XnQsCPHPでやってます。
ifで分岐させて、有効な値が入っている時だけクエリを送信するように書き直しました。
いっこのクエリでサラっと書ければよかったんですけどね・・ とりあえず解消です。
values(NULL)は、これから試してみます。ありがとうございました〜
0483NAME IS NULL
2005/05/01(日) 21:22:52ID:rmxdKpzAPHPのNULLとSQLのNULLって違うんじゃないの?
$aa = NULL;
$sql_query = "insert into テーブル名 (カラム名) values($aaa)";
ってしたら$sql_queryの中は
insert into テーブル名 (カラム名) values("")
ってなってNULLとは違ってくるんじゃないの?
$aa = "NULL";
$sql_query = "insert into テーブル名 (カラム名) values($aaa)";
ってやればちゃんと
insert into テーブル名 (カラム名) values(NULL)
ってなってうまく行くんじゃないのかな?
テストしてないんであれだが。
0484NAME IS NULL
2005/05/02(月) 01:50:58ID:9W9A6uDhLinux上に、こういうアプリケーションってありますか??
0485NAME IS NULL
2005/05/02(月) 01:59:48ID:???0486NAME IS NULL
2005/05/02(月) 02:12:34ID:???>>2
>>5
0487NAME IS NULL
NGNG1 a 山田
2 a 内藤
3 b 大石
4 b 高田
5 a 馬場
6 b 稲田
7 a 大隈
8 c 岩田
9 b 山口
こんな感じのテーブルから
各グループ(a〜不定数) からランダムに3人以下づつ 取り出したいのですが、
1回のクエリでは不可でしょうか?
0488NAME IS NULL
2005/05/02(月) 22:13:23ID:Z1c1PgWeあれって、もしかして、複数の"SQL node"において、
テーブルロックをかけることができない仕様なんでしょうか?
同一サーバー内の別プロセスからのアクセスにおいては、
READ、WRITEのロックも動いているようなんですが、
別のサーバーからREAD、WRITEロックされたテーブルに対して、
書き込み出来るんですが…。
0489484
2005/05/03(火) 08:53:48ID:U+cWgmJP0490NAME IS NULL
2005/05/03(火) 12:04:27ID:???order by rand() limit 3
とか?
0491ツ& ◆LCinZ00nuc
2005/05/04(水) 17:24:46ID:jhVtNWyH複数のユーザにcreate, drop権限を与えて使用したいと思っています。
ですが、そうするとcreate database時にデータベース名がかぶってしまうと思うのですが、
どのようにすればよいのでしょうか?
0492NAME IS NULL
2005/05/04(水) 18:09:47ID:???LinuxなんだからユーザごとにユーザIDがあるよな?
だったら、MySQLにユーザ名と同じDB名を作って、
ログインしたユーザはそのDBしか使えないようにする。
レン鯖とかそうなってるでしょ。
0493& ◆pBmU8j9iQw
2005/05/04(水) 18:41:10ID:jhVtNWyH以下のようにユーザごとにDBを一つ作成しました。
create database [ユーザ名];
grant create, drop, select, insert, update, delete on [ユーザ名].* to [ユーザ名]@localhost identified by '[パスワード]';
このあと、そのユーザで create database 出来てしまいます。
テーブルの作成だけは許可して、データベースの作成は不許可、
というようなことは出来ますでしょうか?
0494NAME IS NULL
2005/05/04(水) 18:52:32ID:???DB名にユーザプリフィクスを付けて管理する。username_dbnameとかね。
標準のI/Fを利用するならパッチあてないと駄目だよ。
普通は「複数のユーザにcreate, drop権限を付与」はしないで、
専用の管理I/Fを設けてやってそのI/Fを利用してのみcreate/dropが出来るようにする。
0495NAME IS NULL
2005/05/04(水) 19:03:17ID:???できる。権限のレベルと種類を理解して設定汁
http://dev.mysql.com/doc/mysql/ja/grant.html
0496NAME IS NULL
2005/05/04(水) 19:05:51ID:???grant usage on *.* to [ユーザー名]@localhost identified by '[パスワード]';
grant all on [ユーザー名].* to [ユーザー名]@localhost;
0497NAME IS NULL
2005/05/04(水) 22:06:58ID:Nf5R0i9bPerlのDBIとMySQLとどっちがいいのでしょうか?
0498NAME IS NULL
2005/05/04(水) 22:14:42ID:zCPBHyvq中国2ch攻撃中!田代祭りしてるからみんなカモン!
0499NAME IS NULL
2005/05/04(水) 22:44:01ID:???PerlのDBIがどういうものか理解してからきてください。
それはCGIとPHPってどっちがいいのとか、意味不明な質問といっしょ。
それともDBI(+DBD::MySQL)とNet::MySQLの比較?
0500NAME IS NULL
2005/05/05(木) 22:23:00ID:???Windows上だとVCがないとC APIを使ったプログラムをcompileできないようですが…。
0501NAME IS NULL
2005/05/05(木) 23:13:10ID:???0502NAME IS NULL
2005/05/05(木) 23:30:27ID:???いやだからDBI+DBD::MySQL)とDBI+DBD::MySQLPPのどっちよ。
前者はlibmycqlclient(C API)のラッパーで、後者はPerlPortだから
どっちも純粋なC APIよりは、そりゃ速度は遅いよ。
0503NAME IS NULL
2005/05/06(金) 05:58:46ID:???0504NAME IS NULL
2005/05/06(金) 11:33:41ID:???設定は相当調べてやってみたが、テーブル名やフィールド名に日本語を使うとコケる。
日本語など使わないほうがいいのはわかっているが、utf8にすれば使えそうな感じもしたので試してます。
キャラセットはこんな感じです。
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------+
実験コードはこんな感じ。
DB_Connect.ConnectionString = DSN文字列
DB_Connect.Open()
SqlCmd.CommandText = "Select 名前,年齢 from 名簿;"
SqlCmd.Connection = Connect
SqlCmd.ExecuteNonQuery()
Connect.Close()
.netのString型は内部ではUTF8に変換されてるはずなので、すんなり通ると思ったら駄目。
sql文(String型)をUTF8にエンコードして Byte()配列 に変換、
その後 SqlCmd.CommandText にセットするのかと思ったが、SqlCmd.CommandText は
String型しか受け取らない。
受け取らせるためには、String型に戻す必要がある
(そもそもString型はUTF8なはずじゃなかった?)。
4.0.23では、えらく古い日本語用パッチが当たったMYODBCで開発したときは、漢字も問題なかった。
これはMYODBCの問題なのでしょうか。
知ってる人、ヒントください。無理なら無理と教えてください
0505NAME IS NULL
2005/05/06(金) 12:09:36ID:???MyODBC3.51(Windows)で使ってるライブラリの問題かなんかだと思うよ。
0506NAME IS NULL
2005/05/06(金) 12:10:26ID:???0508NAME IS NULL
2005/05/06(金) 16:45:26ID:???まあCの方が速いのは分かって聞いてるんだろうけど、定量的に比較したデータは
見たこと無いな。
0509あ
2005/05/07(土) 00:01:03ID:???構築方法がわかるって言うサイトありますか?google 利用したのですが、いまいちでした。
0510NAME IS NULL
2005/05/07(土) 05:48:15ID:???0511NAME IS NULL
2005/05/07(土) 07:52:42ID:???クーリエ imapd ということですが、サイラスあいまっぷディーはつかえないでしょうか?
というのは、後者はカーネギーメロンで開発されており、非常に信頼が高いからです。
0512NAME IS NULL
2005/05/07(土) 08:16:45ID:???0513NAME IS NULL
2005/05/07(土) 23:36:56ID:hZIl0ldU例えばレンタル掲示板を作る際、各掲示板ごとにテーブルを作るのか、
それとも全掲示板の管理者・パス・email等をまとめて保持するテーブルと
全投稿記事の記事・投稿者・パス・所属掲示板等をまとめて保持するテーブルの二つのみにするか
どちらが良いのでしょうか?
リファレンスによるとテーブルの乱立は好ましくないと言う様な記載があるし、
外部キーで関係付けるのも書き込み処理などのオーバヘッドになるようです。
しかし投稿記事に所属掲示板情報を付けるというのは、HDDを無駄に使うし
ある掲示板を開いた時にその掲示板IDを持つ記事を全投稿記事から検索するという手間が気になります。
0514NAME IS NULL
2005/05/08(日) 00:08:58ID:???サイトを一人で作成することは可能でしょうか?サーバー知識等は
除いてお願いします。
また、無理かなというときは、できれば具体的な理由もお願いします。
0515NAME IS NULL
2005/05/08(日) 00:29:59ID:???可能。無理だとしたらPHP、MySQLを"理解していない"か
そもそもプログラムで使うアルゴリズムを考える力がないかのどちらか。
0516NAME IS NULL
2005/05/08(日) 00:39:33ID:???機能的には可能だろうけど、goo並みとなると一人では単純に仕事量がたいへんかな。
それから、負荷軽減のためにメモリ上にコンテンツを保持しなきゃならんとか、サーバ
運用条件からのプログラムへの要求は常にあるからサーバー知識がないと難しいな。
そのへんの知識は切り離せない。
0517NAME IS NULL
2005/05/08(日) 08:13:02ID:???テーブル設計はデータの冗長性を出来るだけ少なくする正規化と
処理を出来るだけ軽くする為の冗長化のせめぎ合いで行う物です。
ご自分で色々考えられてるみたいですから、結論も自分でだして行動するのが
(失敗しても上手くいっても)自分自身の血肉になると思いますからやってみるべし
0518NAME IS NULL
2005/05/08(日) 14:19:28ID:DKFDRvPO文字コードをUTF-8に指定するにはどうしたらいいんでしょうか。
0519NAME IS NULL
2005/05/08(日) 15:07:22ID:???少しでも調べてみたのかな…
create database テーブル名 character set utf8;
0520NAME IS NULL
2005/05/08(日) 15:09:38ID:???マニュアルに載ってるから調べてないんじゃない?
0521NAME IS NULL
2005/05/08(日) 15:28:28ID:???0522NAME IS NULL
2005/05/08(日) 16:55:21ID:vHv3cO2w自宅のwin2k + anhttpd + mysql-4.1.4-gamma-winでは
正常に通るのですが
レンタルサーバーのredhat9 + apache2 + MySQL 3.23.32 + PHP 4.3.0
では
#1064 - 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 'UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`cat_name` var
このようなエラーがでてしまします。
一応、mysqlのマニュアルに沿って書いたつもりなのですが・・
CREATE TABLE `m_cat` (
`cat_id` varchar(2) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`cat_name` varchar(20) default NULL,
`reg_date` datetime default NULL,
`up_date` datetime default NOT NULL,
`del_flg` char(1) default NULL,
unique (cat_id,cat_name)
) ENGINE=MyISAM;
sql文はこれになります。ご指摘いただければ助かります。
0523NAME IS NULL
2005/05/08(日) 17:17:34ID:???ぱっと気づいた部分だと、MySQL 3.23.32なら
ENGINE=MyISAMじゃなくてTYPE=MyISAM
今後のことを考えたらENGINEとすべきだけどね。
あと、varchar(2)なのにUNSIGNEDもオカシイよね。
文字型に正負ってないから。
0524523
2005/05/08(日) 17:18:32ID:???0525522
2005/05/08(日) 17:50:30ID:vHv3cO2wなるほど、アドバイスありがとうございます。
create table m_cat (
cat_id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cat_name VARCHAR(40),
reg_date TIMESTAMP(14) default NULL,
up_date TIMESTAMP(14) NOT NULL,
del_flg char(1) default NULL,
unique (cat_id,cat_name)
) ENGINE=MyISAM;
とりあえずこれで通りました。のちにTYPE=MyISAM でもやってみようと思います。
厚かましくて申し訳ないですがよければもうひとつ質問させてください。
reg_dateはレコードの作成日時 up_dateはレコードの更新日時をいれようと思うですが
up_dateのほうはレコードにアクセスか勝手に日時入れてくれるのでいいのですが
reg_dateのほうはどうやっていいかわからずこんな形にしています。
最初に一レコードが作成されたときにだけ日時を書き込むというのは
どんなやりかたがあるでしょうか?
0526NAME IS NULL
2005/05/08(日) 19:57:32ID:???MySQL3.23.32でも使えるか確認した上で
使える適切な関数が見つかる筈
http://dev.mysql.com/doc/mysql/ja/date-and-time-functions.html
サーバ(MySQLサーバ)側の時刻とクライアント(Access)側の時刻は違う可能性が
あるので注意。普通は値をどちらが与えるのか決めて(大抵はサーバ側かな)、それを使う。
同一の端末でC/Sを構成してる場合は関係ないけどね。
(アクセスはAccessと書こう)
0527NAME IS NULL
2005/05/08(日) 20:30:32ID:???レコードを操作することをアクセスと言っているのか、Microsoft Accessのことを
言っているのかよく判らないんだけど。
timestamp型カラムが複数存在した場合、自動的に更新されるのは片方だけ。
どのカラムが更新されるのかの条件は忘れた。スマソ
reg_date はレコード作成(insert)時に now() を書き込めばいい。
他のカラムは省略するけど、こんな感じ。
insert into m_cat (reg_date) values(now());
個人的には、timestamp型ではなく、両方ともdatetime型にして明示的に値を
書くほうが好きデス。
insert into m_cat (reg_date, up_date) values(now(), now());
update m_cat set up_date = now() where xxx
0528NAME IS NULL
2005/05/08(日) 21:33:38ID:???自動登録は先に定義されたカラムかな。
http://dev.mysql.com/doc/mysql/ja/datetime.html
0529NAME IS NULL
2005/05/08(日) 23:26:33ID:???以下のファイルで mysql>source credb.sql; でテーブルを作成して、
use test;
drop table myBlobs;
create table myBlobs(
blobId int auto_increment not null,
blobTitle varchar(50),
blobData longblob,
blobType varchar(50),
primary key(blobId),
unique id(blobId)
);
grant select,insert,update,delete on test.myBlobs to myID@localhost identified by 'myPASSWD';
次のようなPHPプログラムでblobにインサートしようとしています。
$file_upload_size = filesize($file_upload_temp);
$fileHandle = fopen($file_upload_temp, "rb");
if(!is_resource($fileHandle)){ die("FILE(" . $file_upload_temp . ") OPEN ERROR"); }
$fileContent = fread($fileHandle, $file_upload_size);
$mysql_connect_string = "mysql://" . $dbUser . ":" . $dbPass . "@localhost/" . $dbDatabase;
$sConn = DB::connect($mysql_connect_string);
if(DB::isError($sConn)){
print( $mysql_connect_string . "<br>\n" );
die("Couldn't connect to database server:" . $sConn->getMessage() );
}
//テキストBLOBならば、クォートされるべき文字の前にバックスラッシュを挿入する
if ( strpos( $file_upload_type, "text" ) ){
$fileContent = addslashes($fileContent);
}
$dbQuery = "INSERT INTO myBlobs VALUES (0, '$strDesc', '$fileContent', '$file_upload_type')";
$res = $sConn->query($dbQuery);
if(DB::isError($res)){
die("Couldn't add file to database : ". $res->tostring());
}
このPHPプログラムでテキストファイルのINSERTはできるのですが、バイナリファイル(例えばJPG)などはINSERTでエラーになってしまいます。
考えてみれば文字でないようなコードも含まれているわけですから $dbQuery をテキストに展開する時点で文字化けなどが起こるせいではないかと
思っているのですが、では、binaryのデータをPHPで、INSERT文でレコードに追加できないのでしょうか?
PHPとMySQLのバージョンは以下の通りです。
PHP Version => 5.0.3
System => Windows NT xxxxxxxx 5.1 build 2600
Build Date => Dec 15 2004 08:06:41
F:\>mysqladmin version
mysqladmin Ver 8.40 Distrib 4.0.23, for Win95/Win98 on i32
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 4.0.23-nt
Protocol version 10
0530NAME IS NULL
2005/05/09(月) 00:48:10ID:???BLOBで扱うのはBinaryそのものじゃなくて、Binary文字列だし。
Base64とか。
0531NAME IS NULL
2005/05/09(月) 01:51:27ID:???ご返答ありがとうございます。
つまり、PHPでbinaryデータをBLOBにinsertするには、いったん文字列に
変換してやらないといけないということですね。
binaryデータをそのままinsertするにはCとかのプログラムでinsertしてやらないと
いけないというわけですね。(どう組むのか未調査ですが)
0532531
2005/05/09(月) 02:10:15ID:???追加のお礼。base64でエンコードして、取り出すときにデコードしてやると、
JPEGがちゃんと絵で見られました。PDFもOKでした。
ヒントをありがとうございました。
0533NAME IS NULL
2005/05/09(月) 05:42:10ID:uY7+0betレコードが100万件を超えてしまいました。このままじゃどうしようもないと思うんですが、
こういう肥大化し続けるモノの場合、設計というか運用というか、どうやって行ったらいいものでしょうか?
月ごとにテーブルを分けていけばいいとか、何万件ごとに分けた方がいいとか、色々あると思いますが、
皆さんならどうしますか?
0534NAME IS NULL
2005/05/09(月) 05:48:23ID:k6lhzE7gmy.cnfには[mysqld]と[client]のセクションに
default-character-set=utf8を書いています。
mysql> create database 店舗;
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 '店舗
at line 1
という風になります。
0535NAME IS NULL
2005/05/09(月) 06:49:08ID:???トリガをうまく使えば一つのテーブルでもうまくやれると思ったけど、
調べてみたらMySQLでトリガの実装は5.1以降みたい。
となるとアクセス数にもよるけど月/周/日ごとにテーブルを分けるとか
ログを取る条件をチューニングするとかぐらいしか思いつかないなあ。
他の人はどうやってるんだろ?
0536NAME IS NULL
2005/05/09(月) 07:25:43ID:???こんな風に
http://naoya.dyndns.org/~naoya/mt/archives/001565.html
0537NAME IS NULL
2005/05/09(月) 11:44:19ID:+rEk5p0Lcreate table A (
type smallint unsigned,
id int unsigned,
value text,
index type_id (type, id)
)
create table B (
type_id char(15),
value text,
index type_id (type_id)
)
B.type_idはzerofillした'A.type + A.id'の連結
A.type = 43, A.id = 52 だった場合
B.type_id は '000430000000052'
# 本来は可能な限りB.type_idを圧縮
以下のクエリを想定
Aの場合
select value from A where type=43 and id=52;
select value as 'values' from A where type=43;
Bの場合
select value from B where type_id like '000430000000052';
select value as 'values' from B where type_id like '00043%';
A, Bどちらのテーブルを使用した方が最適ですか?
(selectのクエリの速度 > テーブル・インデックス サイズ > データ更新 の順番で)
0538NAME IS NULL
2005/05/09(月) 12:33:08ID:???http://dev.mysql.com/doc/mysql/ja/legal-names.html
あとMySQL4.1あたりから、データベース名・テーブル名は
UTF-8のファイル名になるからファイルシステムで
UTF-8が使えるのかもチェックしといた方が良い。
(それまで入力したエンコードそのままだった)
0539NAME IS NULL
2005/05/10(火) 06:48:57ID:???ファイルシステムって何が一番いいんでしょうか。
ReiserFSがやっぱり最強なんでしょうか。
0540NAME IS NULL
2005/05/10(火) 07:36:21ID:???0541NAME IS NULL
2005/05/10(火) 07:56:17ID:???最強だとは思わないけど、ReiserFS使ってる。
ファイルが大量だと旧式なファイルシステムとは格段の差がでる。
MySQLで使うんだったら、ファイルが沢山出来るわけでもないので
余り拘らなくてもOK。
0542NAME IS NULL
2005/05/10(火) 17:51:16ID:???初めてDBでMYSQLを触ったので素人質問だと思いますが宣しくお願いします。
ちなみにOSはFedora core 3です。
本を参考にしながらダウンロードを行い手順をふんでるのですが、
コンパイルの為のconfigureを実行しようとすると何故かコケるようです。
コマンドは本を参考に
# ./configure --prefix=/usr/local/mysql --with-charset=ujis --with-extra-charsets=all --with-endedded-server --enable-local-infile --enable-threrd-safe-client --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
で実行すると以下のメッセージが出て止まりました。
050510 17:45:25 mysqld ended
なにやら/dataに以下のエラーログが出ているようなのですが
私はなんのエラーやら解らない状態です。
050510 17:45:23 mysqld started
050510 17:45:25 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
050510 17:45:25 mysqld ended
何か原因が解れば教えてもらえないでしょうか?
0543NAME IS NULL
2005/05/10(火) 19:20:10ID:???0544NAME IS NULL
2005/05/10(火) 19:30:28ID:???>The error means mysqld does not have the access rights to the directory.
>File name ./ibdata1
>File operation call: 'create'.
>Cannot continue operation.
0545NAME IS NULL
2005/05/10(火) 20:15:56ID:???0546NAME IS NULL
2005/05/10(火) 20:58:36ID:???使用するデータベースエンジンによる。
0547NAME IS NULL
2005/05/10(火) 21:58:41ID:???0548NAME IS NULL
2005/05/10(火) 22:23:58ID:???私が持っている百万枚のエロ画像をデータベース化したいのです。
0549NAME IS NULL
2005/05/10(火) 22:29:21ID:???さすがにMySQLでも処理が追いつかないと思うのです。
MySQLというか、OS(Linux)がこんな大きなファイルを使えるのかどうか心配です。
私が持っている本(実践ハイパフォーマンスMySQL)には、
60GBぐらいで急激に処理が遅くなると書いてあります。
200GBのテーブルを扱う最良の方法を教えてください。
本当はMySQL+Linuxがいいのですが、これでは逆立ちしても無理というのであれば
他の環境でもかまいmせん。
0550NAME IS NULL
2005/05/10(火) 22:53:26ID:???画像データをテーブルにツッコム必要はないと思うけど。
ま、InnoDB使えば?
ttp://dev.mysql.com/doc/mysql/en/table-size.html
0551NAME IS NULL
2005/05/10(火) 23:17:38ID:???テーブルが壊れたら財産を失うので必死にMySQLを学んでいる。
0552NAME IS NULL
2005/05/11(水) 00:02:51ID:???じゃあ、そう。というか1テーブルに対して3ファイル(frm/MYI/MYD)
>>551
司法の手によるもの限定か?<セキュリティ
(嫁限定かも知れん)
0553NAME IS NULL
2005/05/13(金) 21:05:37ID:rq9Q345HPHP+MySQLでスクリプトを書いているのですが、
BLOB型のフィールドに格納することまではできたのですが、
そこから取り出して表示するにはどのようにすればいいのでしょうか?
具体的には、POSTされた画像ファイルをaddslashes($file)として格納しています。
そこから取り出したデータを変数に格納することはできるのですが、
そのデータを(たとえば)<img src="ほにゃらら">という形で使うには
どのようにすればいいでしょうか?
PHPスレで質問するべきだったかな…
0554NAME IS NULL
2005/05/13(金) 21:13:02ID:???まぁ、まずは画像ファイルの格納方法から間違ってる。
一般的にはPHP(Javaとかでもそうだけど)でBLOB型にデータを登録するには、
BASE64でエンコードして登録する。
0555NAME IS NULL
2005/05/13(金) 21:25:21ID:???BLOBデータが正しく変数に格納できているとして。
方法1
URLでアクセスできるディレクトリに fopen, fwrite を使って変数の内容を書き出し。
その後、<img src="書き出したファイル名"> とする。
方法2
<img src="gerblob.php?抽出条件"> とする。
getblob.php ではBLOBが格納された変数の内容に header をつけて
標準出力に書き出し。以下は、jpeg の例。
header("Content-type: " . 'image/jpg');
echo 変数
方法1は、書き出したファイルをどのタイミングで消せばよいか検討する必要がある。
>PHPスレで質問するべきだったかな…
禿げしく同意なので、以降はPHPスレで。
0556NAME IS NULL
2005/05/13(金) 21:34:18ID:???>header("Content-type: " . 'image/jpg');
>echo 変数
正確には
header("Content-Type: image/jpeg") ;
imagejpeg(変数);
0557NAME IS NULL
2005/05/13(金) 21:43:30ID:???嘘吐くんでない。
imagejpegの引数はGDのイメージリソースだよ。
バイナリ(PHP内部では文字列型扱い)を変数に格納してるならechoでOK.
0558NAME IS NULL
2005/05/13(金) 22:06:21ID:???"ほにゃらら"にPHPスクリプトのファイル名を指定して、
そのPHPスクリプトにMySQLからデータを取り出して、
画像フォーマットのヘッダーとデータを吐くコードを書く。
<img src="imgread.php?img=001">とかなってるヤツがそう。
0559553
2005/05/13(金) 22:27:53ID:???なるほど。
とても参考になりました。
ちらちら見てたサイトに書いてあったものをそのまま使っていました。
>>555-557
ありがとうございます。
header("Content-type: " . 'image/jpg');
というのを参考に検索してみたところ、それらしきサイトに行き当たりました。
echoでいいように書いてありました。
>>558
参考にします。
ありがとうございました。
スレ違いで申し訳ありませんでしたm(_ _)m
0560545
2005/05/14(土) 03:37:58ID:???BASE64ではなく、バイナリのまま入れられないでしょうか?
100万枚近くあるので、できるだけ容量を節約したいんです。
またBASE64のエンコード・デコードにCPUを使いますし。
0561NAME IS NULL
2005/05/14(土) 08:06:28ID:???普通に突っ込めるなら、みんな普通に突っ込んでると思わない?
なんでBASE64でエンコードするのか、理由を考えると良いよ。
0562NAME IS NULL
2005/05/14(土) 12:44:05ID:???や、PHPのことは良くシランが。
0563NAME IS NULL
2005/05/14(土) 13:45:14ID:???MySQLのBLOB型を理解していない奴の典型的な例。
0564NAME IS NULL
2005/05/14(土) 14:25:35ID:???psql < DB名 〜.sql
はmySQLではどのようにやればよいのでしょうか。
ご教示いただけますと幸いです。
0565NAME IS NULL
2005/05/14(土) 14:33:43ID:???要するに、ファイルに書いてあるSQLを実行させたいんだよな?
mysql -uユーザ名 -p < ファイル名
上記コマンド打った後に、パスワード聞かれるから入力すればファイルに書かれた
SQL文が実行される。
ちなみに、DB指定したいなら、SQL書いてあるファイルの先頭に use データベース名; をつける。
0566NAME IS NULL
2005/05/14(土) 17:36:32ID:???PHPはよくしらぬが、というあたりからして
Javaなら少なくともそのままバイナリつっこむから
MySQLとしてなら問題ない発言では?
0567NAME IS NULL
2005/05/14(土) 17:57:03ID:???BASE64使うのは、BLOBで扱う際にエスケープするのが
楽だから使ってるだけで、本当に必要なのは生のバイナリーを
"バイナリー文字列"にエスケープしてやること。
BASE64はスペース効率でみると余り良くないからね。
Javaでバイナリー突っ込めるって話だけど、JDBCが生のバイナリーを
受け付けるだけで、MySQLのBLOBが受け付けるのはバイナリー文字列だから
必要なエスケープを中の人がやってくれている。貴方が使う言語やI/F、
ライブラリで、その辺の"楽さ"は変わってくるから、あとの環境固有のことは
自分で調べてください。
0568NAME IS NULL
2005/05/14(土) 18:11:23ID:???ドライバの中のソースまで見ろというのは酷な話だろ。
APIレベルで生バイナリなら問題ないのでは?
0569NAME IS NULL
2005/05/14(土) 18:17:00ID:???公式マニュアル読んでいたら頭がこんがらがってきました。
データはそのままで、バージョンアップする方法を教えてもらえないですか。
もしくはわかりやすいサイトを教えてください…。
あと、鯖管理ソフトのPlesk7.5が入っています。
0570NAME IS NULL
2005/05/14(土) 18:46:39ID:???つかPHPMyAdminが入ってるんでないか>Plesk
0572NAME IS NULL
2005/05/14(土) 23:14:22ID:???DBにバイナリで登録する話をしてるんだと思ってたが。
バイナリ文字列にエスケープというよりは
一部の特殊文字をエスケープってのが正しいと思うが。
そうじゃなきゃEUC-JPが通ったりしないべさ。
0573NAME IS NULL
2005/05/14(土) 23:49:14ID:???EUC-JPも文字列だが。
7/8bitの観点からだと普通にMySQLは8bit通るし。
7/8bitが関係するBASE64の話が混じってるから
判りづらくなってるのは確かだけど。
0574NAME IS NULL
2005/05/15(日) 00:11:52ID:???0575NAME IS NULL
2005/05/15(日) 01:08:10ID:???エスケープするのが簡単だから。
0576NAME IS NULL
2005/05/15(日) 15:05:32ID:uYJg+KZtMySQL,JDBCで
Calendar cal = Calendar.getInstance();
java.util.Date day = cal.getTime();
PreparedStatement statement =
connection.prepareStatement("SELECT DAY FROM TEST_TABLE WHERE DAY =?");
statement.setDate(1,day);
とすると、
シンボル: メソッド setDate(int,java.util.Date)
場所 : java.sql.PreparedStatement の インタフェース
statement.setDate(1,date);
が出てしまうのですがどなたか解決策ご存知無いでしょうか?
0577NAME IS NULL
2005/05/15(日) 15:16:30ID:???java.sql.Dateと勘違いしてないかね?
0578NAME IS NULL
2005/05/15(日) 15:22:05ID:???0579NAME IS NULL
2005/05/15(日) 15:23:33ID:???それではできないんでしょうか?
またはキャストできるとか。
0580NAME IS NULL
2005/05/15(日) 15:24:35ID:???java.util.*とかjava.sql.*とか指定してないか?
それは現場では絶対にダメ、日曜プログラマなら気にしないかもしれんが
普通はEclipseとかのコード支援使ってクラス単位で
import java.util.Date
というふうにひとつのクラスごとインポートしていく
0581NAME IS NULL
2005/05/15(日) 15:34:25ID:???import java.util.*;
import java.sql.*;
とやっていますが、変数宣言時に
java.util.Date day = cal.getTime();
としているので多分大丈夫だと思うのですが、駄目なんでしょうか?
どちらにしても、>>580さんの意見は参考になりました。
ありがとうございます。
0582NAME IS NULL
2005/05/15(日) 17:18:15ID:???だからutilじゃダメなんだって
0583NAME IS NULL
2005/05/15(日) 17:22:18ID:???JDBCで使うのはjava.sql.Date
ほかにもJDBCで日付をあらわすのに
java.sql.Timestampやjava.sql.Timeがある
引数が違うのをコンパイルすればエラーが出るのは当たり前
0584NAME IS NULL
2005/05/15(日) 17:24:16ID:???そんなのは解決にならんだろ
JDBCでこの辺触っていれば
おそらくJava.sql.Dateとjava.util.Dateが同一の場所にでてくる
どのみち完全修飾名が必須さ
0585NAME IS NULL
2005/05/15(日) 18:10:30ID:???すいません、java使い始めて日が浅いもので。
ちなみにキャストしてjava.util.Date型のオブジェクトを
java.sql.Date型に変換したりってできますか?
0586surferome
2005/05/15(日) 18:42:47ID:???mysqlccのレコード数の欄が、FixedとかDynamicだとか表示されるように
なり、正しくレコード数が表示されなくなりました。
レコード数を正しく表示するための何か方法はないでしょうか?
0587NAME IS NULL
2005/05/15(日) 18:57:32ID:???その型を持っている場合だけできることだよ
こんな感じ
Object list = new ArrayList();
((List)list).add("ほげ");
ま、まずはjava.sql.Dateのコンストラクタみてみそ
0589NAME IS NULL
2005/05/15(日) 19:33:44ID://RpJC20それが全部の文字が化けるのではなく、化ける文字と化けない文字があります。
文字コードはUTF-8です。
化ける文字は、確認した限りだと「舗、静、松」などです。
これらは、「店舗、静岡、浜松」という組み合わせで入れています。
「店、岡、浜」は化けません。
my.cnfにはdefault-character-set=utf8を書いています。
またhtmlの出力にもcharset=utf-8を書いています。
なぜ化けるのか分かる方いましたら教えてください。
0590NAME IS NULL
2005/05/15(日) 20:51:02ID:???ご指導いただければ幸いです。
http://dev.mysql.com/doc/mysql/ja/linux.html
ここにて
1,000 を超える同時接続を予定している場合は、
LinuxThreads にいくつかの変更を加えて再コンパイルし、
新しい libpthread.a を MySQL に再リンクする必要があります。
sysdeps/unix/sysv/linux/bits/local_lim.h の PTHREAD_THREADS_MAX を 4096 に増やし、
linuxthreads/internals.h の STACK_SIZE を 256 KB に減らしてください。
このパスは glibc のルートからの相対パスです。
注意: STACK_SIZE がデフォルト値の 2MB である場合、
MySQL は約 600〜1,000 接続で不安定になります。
とありますが、
linuxのカーネル2.6以降(と RHL9 と RHEL3)は
LinuxThreadを使用していないので、
上にある変更ができないんです。
ABのバイナリはLinuxThreadを無理やり使うようですが、
ソースからコンパイルしたときはどうなんでしょうか?
glibcがNPTLを使用するに書かれているので
NTPLを使うのかなとか思ったり。
RH9で結構な数の接続を開こうと思っているのですが、
どなたか1000より多き接続を受け付けても余裕だよー
とか試した方いらっしゃらないでしょうか?
長文失礼しました。
0591589
2005/05/15(日) 21:46:40ID://RpJC20Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
という表示でした。
しかしmy.cnfには、[mysqld][mysql][client]の3つのセクションに
default-character-set=utf8を書いています。
なぜclientとconn.がlatin1になるのでしょうか?
0592NAME IS NULL
2005/05/15(日) 21:54:41ID:???アプリでデータベース接続した後に以下を実行すればよいかも。
set names utf8
0593589
2005/05/15(日) 22:49:50ID://RpJC20でも相変わらず文字化けします。
>>592
それやってみましたが、変わりませんでした。
0594589
2005/05/15(日) 23:00:41ID:???0595NAME IS NULL
2005/05/15(日) 23:41:37ID:???0596NAME IS NULL
2005/05/15(日) 23:49:59ID:???明示指定してDB作成する方法はMySQLではどのように
行うのでしょうか
0597KUR
2005/05/16(月) 00:47:49ID:YS2d2CsV例えば、varchar(20),textの2フィールドがあったとき、CSVから読み込みたい。
(ML logでも、load_fileやtext型で探しましたがうまく見つけられなかった)
0598NAME IS NULL
2005/05/16(月) 04:11:52ID:???クライアントプログラムはデフォルトではmy.cnfを読まないよ。
0599NAME IS NULL
2005/05/16(月) 04:13:14ID:???create database hogehoge character set ujis;
0600NAME IS NULL
2005/05/16(月) 04:14:45ID:???varchar でも text でも変わらん。
0601NAME IS NULL
2005/05/16(月) 11:50:47ID:???青野氏激白! サイボウズがMySQLを採用した理由
http://www.itmedia.co.jp/enterprise/articles/0505/12/news007.html
0602NAME IS NULL
2005/05/16(月) 11:52:11ID:???0603NAME IS NULL
2005/05/16(月) 14:23:00ID:???http://pc8.2ch.net/test/read.cgi/unix/1114101176/811-813
上記から誘導されて来ました。
> 報告あんがと。
> あと、Aテーブルにレコードをインサートできなかったときのエラーメッセージも教えて。
この時には、問題なくインサート出来ます。
ですので、普通にselect したら、インサートした分表示されますが、
myisamchk かけると、下記の状態になってしまします。
Checking MyISAM file: ***.MYI
Data records: 2 Deleted blocks: 0
- check file-size
myisamchk: error: Size of datafile is: 32 Should be: 56
- check key delete-chain
- check record delete-chain
- check index reference
- check data record references index: 1
myisamchk: error: Found key at page 1024 that points to record outside datafile
- check record links
myisamchk: error: Record-count is not ok; is 1 Should be: 2
myisamchk: warning: Found 1 parts Should be: 2 parts
MyISAM-table '***.MYI' is corrupted
Fix it using switch "-r" or "-o"
今現在は、順調に稼動していますので、
すぐに、エラー状況の再現出来ません。
今晩にでも、もう一度再現させてみよう
かと思っていますが・・・。
0604NAME IS NULL
2005/05/16(月) 15:11:42ID:???修復が完全でないとか?(コワー
myisamchk に、もっと詳しくチェックするオプションがあるみたいなんで、
それでもチェックしよう。
動いてるのには触らずに済むように、
障害時のデータのコピーを別に作って、そっちで試すべし。
あと、myisamchk -dv database/table_name の出力もカクニーン。
0605603
2005/05/17(火) 10:33:33ID:Jb3z2sEn> 動いてるのには触らずに済むように、
> 障害時のデータのコピーを別に作って、そっちで試すべし。
そうですよね。
しかし、実はまだこの障害の根本がどこなのか完全に切り分け出来ていません・・・。
mysqlなのか、OSレベルなのか。
> あと、myisamchk -dv database/table_name の出力もカクニーン。
やってみましたが、なにか解りますでしょうか?
各項目が何を意味しているのか、マニュアルやググッテ調べるとこなのですが、
もし、なにか問題等があれば指摘して頂けるとありがたいです。
MyISAM file: ***.MYI
Record format: Packed
Character set: sjis (13)
File-version: 1
Creation time: 2005-05-15 17:32:12
Recover time: 2005-05-15 17:32:46
Status: changed
Auto increment key: 1 Last value: 31
Data records: 22 Deleted blocks: 0
Datafile parts: 22 Deleted data: 0
Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3
Datafile length: 628 Keyfile length: 2048
Max datafile length: 4294967294 Max keyfile length: 17179868159
Recordlength: 48
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 2 4 unique long 1 1024 1024
0606NAME IS NULL
2005/05/17(火) 17:31:36ID:???0607NAME IS NULL
2005/05/18(水) 02:35:24ID:???インデックスファイルが壊れることは、何度かあったけど。
なので、大体、optimize table か、myisamchk -r で復旧できてます。
まぁ、でも、面倒な場合は、レプリケーションしてる他のマシンから
該当ファイルだけコピって終わりって感じです。
0608NAME IS NULL
2005/05/18(水) 03:34:33ID:???0609NAME IS NULL
2005/05/18(水) 03:48:14ID:???もしも何かやり方があれば教えてください。お願いします。
0610NAME IS NULL
2005/05/18(水) 06:50:21ID:???TIMEDIFF()
0611NAME IS NULL
2005/05/18(水) 10:11:36ID:???0612NAME IS NULL
2005/05/20(金) 02:56:25ID:???消してしまったんだが、このmysql自体を再インストしたんだが、
このdatabaseが作られない。 どうなってんだー
0613NAME IS NULL
2005/05/20(金) 03:44:22ID:???mysql_install_dbしなおしたら?
http://dev.mysql.com/doc/mysql/ja/mysql-install-db.html
0614NAME IS NULL
2005/05/21(土) 11:43:43ID:Pqn0ZHf/環境は
WinXP
MySQL4.1.10
mysql-connector-java-3.1.8
DBのキャラクターSETをUTF8,SJIS,UJISなど切り替えて検証していますが
うまくいきません。
public class DbConnection {
public Connection Connect() throws ClassNotFoundException,SQLException{
Class.forName("com.mysql.jdbc.Driver");
Connection connect=DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=SJIS","root","root");
return connect;
}
}
日本語文字がすべて??となってしまいます。
0615NAME IS NULL
2005/05/21(土) 12:49:37ID:???と思ったけどすべての日本語がという時点でいつもの症状とは違うようだな
まずDBのキャラクタセットになにを使ってるかだな
0616NAME IS NULL
2005/05/21(土) 13:37:23ID:xh2ntbKKそもそも可能なのですか?
+------+-------+-------+-------+
| key1 | data1 | data2 | data3 |
+------+-------+-------+-------+
| 1 | 1 | 2 | 3 |<<<<<この行をコピーしたい
| 2 | 1 | 2 | 3 |
| 3 | 10 | 20 | 30 |
+------+-------+-------+-------+
Key1はauto_incrementでユニークになってます。
宜しくお願いいたします。
0617NAME IS NULL
2005/05/21(土) 17:31:55ID:moxCiqUfDBのキャラクタセットも変えているんですけどだめです…
JDBC新しすぎるのかなぁ。
0618NAME IS NULL
2005/05/21(土) 18:42:52ID:???文字化けしません。
SHOW VARIABLE
のエンコードのとこさらしてみて
0619NAME IS NULL
2005/05/21(土) 20:25:21ID:f022Bv91| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | sjis |
| character_set_results | latin1 |
| character_set_server | sjis |
| character_set_system | utf8 |
| character_sets_dir | F:\MySQL\MySQL4.1\share\charsets/ |
あれ?
ぜんぶSJISになってない…
もしかしてmy.iniに全部書き足さないとだめ??
0620NAME IS NULL
2005/05/21(土) 21:28:41ID:xh2ntbKK直すには
1.サーバーに接続した後にすぐ、"SET NAMES キャラクターセット名" という SQL 文を実行
2.libmysql.dll, libmysqlclient のコンパイルし直す
3.キャラクターセットをbinaryにする
ぐらいかな。
0621NAME IS NULL
2005/05/21(土) 23:15:35ID:???my.iniの
[mysqld] セクションに
default-character-set = sjis
と書いて、サーバ再起動。
ちなみに、うちではJDBCのURLは
jdbc:mysql://hostname/db_name?autoReconnect=true&useUnicode=true&characterEncoding=windows-31j
とwindows-31jを指定しています。
これは、JDK1.4からwindowsのShit_JISの名前が変わったためです。
一応これで表などの文字化けしちゃう文字も大丈夫でした。
参考までに。
http://www.ingrid.org/java/i18n/encoding/shift_jis.html
0622NAME IS NULL
2005/05/22(日) 00:31:50ID:???>2.libmysql.dll, libmysqlclient のコンパイルし直す
Connector/Jの場合はlibmysql, libmysqlclientを利用しない実装だから関係しない。
0623NAME IS NULL
2005/05/22(日) 01:12:11ID:???そのURLだと4.1は機種依存文字はダメだよね?
0624NAME IS NULL
2005/05/22(日) 01:20:35ID:???↑まるいち
0625NAME IS NULL
2005/05/22(日) 05:27:37ID:l+rjKGlE4.1系はやっぱ駄目だは。
0626NAME IS NULL
2005/05/22(日) 11:16:35ID:12RyQW7Dset character set ujis;
とかを接続直後に実行すればよいんじゃないの?
perl DBIで文字化けしてたときは、これで解決したけど
0627NAME IS NULL
2005/05/22(日) 11:38:00ID:???insert into hoge (key1,data1,data2,data3)
select 0,data1,data2,data3 from hoge where key1=1;
0628NAME IS NULL
2005/05/22(日) 12:35:09ID:???いつからその設定だけでいけるようになったんだ
新しいバージョン?
default-character-set = sjisがうまく動いてるように見えないし
そもそもWindows版だと環境設定が上書きされる
0629NAME IS NULL
2005/05/22(日) 13:00:54ID:???がっつりメモリ使わせられるし、
書き間違い?
0630NAME IS NULL
2005/05/22(日) 13:06:30ID:???そもそもmysqlコマンドがマルチランゲージ対応のためにUTF8固定だから
使い勝手が非常にまずい。
0631NAME IS NULL
2005/05/22(日) 13:08:41ID:???手書きで設定しかしたことないや
0632NAME IS NULL
2005/05/22(日) 13:21:59ID:???おぉぉ〜できました。
ありがとうございます。
0633NAME IS NULL
2005/05/22(日) 13:23:12ID:???セットアップ時に必ずその設定ツールが動くはずだが。
0634NAME IS NULL
2005/05/22(日) 13:32:38ID:???0635NAME IS NULL
2005/05/22(日) 17:14:38ID:01wogRetJDBCのURLのcharacterEncodingに指定する文字列は、
http://dev.mysql.com/doc/connector/j/en/cj-character-sets.html
Table 1.4. MySQL to Java Encoding Name Translations
Java-Style Character Encoding Nameにあるものを指定しています。
この表にないMySQL Character Set Name、たとえば
dec8 の場合は、characterEncodingには何を指定すればよいのでしょうか。
characterEncodingの設定自体が不要なのでしょうか。
0636NAME IS NULL
2005/05/22(日) 19:13:55ID:???ドキュメント見るとデフォルトでは
'autodetect'
らしいから無くてもいいかもね。
useUnicodeはつけるかんじかなー
0637NAME IS NULL
2005/05/24(火) 16:27:08ID:???テーブルにIDというauto_incrementのフィールドがあって、
データのインストール時に勝手にIDが設定されるんですが、
この値を正確に取得するにはどうしたらいいのでしょうか?
不特定多数の人間がインストールしますので、
INSERT句の後にすぐにSELECTでMAXを使って取得しても、
既に他人によってデータ登録された後という可能性もあります。
正確に自分のINSERTしたデータのIDを取得するにはどうしたらいいのでしょう?
0638NAME IS NULL
2005/05/24(火) 17:12:11ID:???insert して
select して
unlock なら取れそうじゃない?
0640NAME IS NULL
2005/05/24(火) 17:29:05ID:???LAST_INSERT_ID()
0641NAME IS NULL
2005/05/24(火) 17:29:58ID:???INSERT直後に
SELECT LAST_INSERT_ID()
とやれば取れるよ
0642641
2005/05/24(火) 17:30:59ID:???0643NAME IS NULL
2005/05/24(火) 17:33:08ID:???マニュアルのここにまとまっている。
http://dev.mysql.com/doc/mysql/ja/getting-unique-id.html
0644637
2005/05/24(火) 17:59:47ID:???こんな機能が。
ありがとうございます。
0645NAME IS NULL
2005/05/24(火) 18:10:56ID:???最後に生成された ID は、接続ごとにサーバに保持されます。
他の接続を使用するクライアントによって変更されることはありません。
てことでpoolに接続返す前なら確実だしね。
0646NAME IS NULL
2005/05/24(火) 19:55:22ID:Q2ACmeBMMySQLの文字セット: UTF-8 Unicode (utf8)
を EUC に変える方法を教えてください。
0647NAME IS NULL
2005/05/25(水) 17:04:44ID:???GJ!!
>>645さんの言う通りセッション毎なんでダブル心配はないですね。
勉強になりました。
0648NAME IS NULL
2005/05/25(水) 17:15:29ID:???>>640と>>641の検証してたんだけど、DOS窓2つ上げて、両方とも最初にBEGINする。
そして、片方でINSERTして、もう片方でもINSERTをする。
最初にINSERTしたほうをロールバックして片方をコミットする。
そうすると、見事にオートインクリメントの値が1つ飛ぶんだよね。
0649NAME IS NULL
2005/05/25(水) 17:59:12ID:???歯抜けになるのは良いのでは?
0650NAME IS NULL
2005/05/25(水) 18:04:17ID:???正しい。以下を参照。
http://dev.mysql.com/doc/mysql/ja/innodb-auto-increment-column.html
歯抜けが困るときは自分で番号管理テーブルを作るけどね。
たいていのRDMSってそうぢゃないのかな。
0651NAME IS NULL
2005/05/25(水) 20:37:59ID:???autoincrement設定したテーブル作って、
autoincrementカラムに対してはNULLを指定するようにし、残りは別テーブルから取り込むようにinsert from selectかけたんだが、
autoincrementカラムの内容がすべて同じになりやがった。
もう一度同じことをすると、+1された値がずらーっと取り込まれる。
insert1回で+1になってて激しく使い物にならなかった。
0652NAME IS NULL
2005/05/25(水) 21:35:13ID:???意味ワカラン。
0653NAME IS NULL
2005/05/26(木) 19:38:21ID:???DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` (
`productID` varchar(30) character set ujis NOT NULL default '',
`makerID` varchar(30) character set ujis NOT NULL default '',
`note` text character set ujis NOT NULL,
PRIMARY KEY (`productID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
^^^^^^^
(一部抜粋)
ここのフィールドはujisになっているのですが、
InnoDBのDEFAULT CHARSET=latin1;になっています。
一応、
/usr/local/mysql/bin/mysqldump --set-charset="ujis".......
これにてdumpしましたが同じ結果です。
問題ありませんでしょうか。
0654NAME IS NULL
2005/05/26(木) 22:13:01ID:680qdAKzレプリケーションしたら 5C 問題が勃発し、Masterには書けるものの
バイナリログが変でSlave側でエラーを起こしてはまりました。
エスケープが、バイナリログでは 'ソ\' とかしてしまってね。
default-character-set が双方であってなくて何とかクリアしましたが。
こんなことで悩み無くないしまだ何かあるかも・・
思い切って ujisに変更した方がいいかな?
速度なんかも eucの方が早いのかな?
文字のエンコードは ' と \ ぐらいを気にすればいいのかな?
エロイ人、オレを王道楽同へ導いてください。
あ、java の人です。
0655NAME IS NULL
2005/05/26(木) 22:38:10ID:???tp://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
を見なされ。
0656NAME IS NULL
2005/05/27(金) 03:06:47ID:???ujis sjis euc
どれがベストなんでしょう。
0657NAME IS NULL
2005/05/27(金) 03:35:48ID:???0658NAME IS NULL
2005/05/27(金) 04:53:07ID:???utf-8
0659NAME IS NULL
2005/05/27(金) 06:12:21ID:???CP932
0660NAME IS NULL
2005/05/27(金) 11:24:57ID:???それ4.1じゃ未実装では
0661NAME IS NULL
2005/05/27(金) 20:30:28ID:???MySQL4.1.12で追加されてる。
eucjpmsは入ってないが。
0662NAME IS NULL
2005/05/27(金) 23:31:08ID:???さんきゅ
やっとまともに日本語とおるようになったのか
でも対話アプリケーションがUTF8ということで全滅か
0663NAME IS NULL
2005/05/28(土) 20:12:36ID:???日本語文字列でソートや検索することがないアプリだったから
使える手かも。
0664NAME IS NULL
2005/05/28(土) 20:54:01ID:???だったらBLOBにescapeして入れてもいっしょのよーな気も。
0665NAME IS NULL
2005/05/29(日) 00:28:19ID:???ISHでもMAJでも・・・・・・・・
0666NAME IS NULL
2005/05/29(日) 00:49:40ID:???C:\mysql\bin>mysqladmin -u root -p create kiso
Enter password: *******
でkisoというデータベースを作ろうとすると
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'
とでてエラーになってしまいます。
調べても(Using password: NO)のエラーに関する記述が多く
何が原因かが解りません。どなたかアドバイスお願いします。
0667NAME IS NULL
2005/05/29(日) 01:06:46ID:???mysqladmin -u root password [新しく設定するパスワード]
でパスワードを新しく設定されました?
「-p」後はスペースを入れずにパスワードを打ち込まないとエラーが出ます。
0668NAME IS NULL
2005/05/29(日) 01:52:02ID:???レスどうもです。
cd c:\mysql\bin
のあとにパスワード設定してしまいrootにパスワードをかけてしまいました
このrootへのパスワードをなくしたいときはどうしたらいいのでしょうか?
C:\mysql\bin>mysql -u usr -p kiso
Enter password: ******
のようにkisoに対してだけパスワードを設定するつもりだったのですが。
0669NAME IS NULL
2005/05/29(日) 19:56:40ID:???ここらをまず参照されたし。
http://www.softagency.co.jp/mysql/Manual/4.1.1/html-split/manual.html
0670NAME IS NULL
2005/05/31(火) 00:13:29ID:j02Is4N7間違ってMysqlに接続するユーザー(rootも)をなんと削除してしまいました・・・・
これは、どうにか復活させる方法はないでしょうか?
いろいろ調べても、こんなアホは俺だけで事例が見つかりませんでした。
0671NAME IS NULL
2005/05/31(火) 01:59:46ID:???0672NAME IS NULL
2005/05/31(火) 02:16:01ID:???0673NAME IS NULL
2005/05/31(火) 16:52:36ID:Uxy2VvqPいつサポートされるんだろう・・・
0674NAME IS NULL
2005/05/31(火) 19:34:42ID:???select * from book order by product_id limit 1;
select * from book order by product_id limit 3,2;
これを一つにまとめる書き方を教えてください。
0675NAME IS NULL
2005/05/31(火) 20:09:48ID:???UNION
0676NAME IS NULL
2005/06/01(水) 00:00:26ID:???0677NAME IS NULL
2005/06/01(水) 00:06:13ID:???ワロタ
0678NAME IS NULL
2005/06/01(水) 15:56:30ID:???0679a
2005/06/01(水) 17:27:22ID:???下記の通り一部でエラーになります。どうすればうまくいくでしょうか?
Postfix Admin Setup Checker 1.0.0
Running software:
- PHP version 4.3.11
- Apache/2.0.52 (Fedora)
Checking for dependencies:
Warning: Magic Quotes: OFF (using internal function!)
- Depends on: presence config.inc.php - OK
Error: There is no database support in your PHP setup
To install MySQL 3.23 or 4.0 support on FreeBSD:
% cd /usr/ports/databases/php4-mysql/
% make clean install
- or with portupgrade -
% portinstall php4-mysql
To install PostgreSQL support on FreeBSD:
% cd /usr/ports/databases/php4-pgsql/
% make clean install
- or with portupgrade -
% portinstall php4-pgsql
- Depends on: session - OK
- Depends on: pcre - OK
0680NAME IS NULL
2005/06/01(水) 17:32:26ID:???To install MySQL 3.23 or 4.0 support on FreeBSD:
0681NAME IS NULL
2005/06/01(水) 20:10:40ID:kES1RqUK1Gを超える「.sql」ファイルのインポートには、どういった方法が最適でしょうか?
Windows2000環境、MySQL4.0.13、PHP4.3.2、Apache2.0.46、phpMyAdmin 2.6.2-pl1
0682679
2005/06/01(水) 20:33:17ID:???0683NAME IS NULL
2005/06/01(水) 23:48:42ID:???データを更新するたびに現在の時刻に変わってしまうのですが、
このデータはIDとして扱いたいので、簡単に変わってしまうと厄介です。
これを避ける方法はないのでしょうか?
初心者の質問で恐縮なのですが、
何かご提案ありましたらよろしくお願いします。
0684NAME IS NULL
2005/06/02(木) 00:16:32ID:???逆に古いの(MySQL4.1じゃないの)入れてみな。
0685NAME IS NULL
2005/06/02(木) 00:52:47ID:???TIMESTAMP型はそういう特性をもったフィールド型です。
日付型のIDを使用するなら、DATETIME型を使います。
http://dev.mysql.com/doc/mysql/ja/datetime.html
としても、TIMESTAMP(10)だと分までの区別しかなかった訳ですが
分でも秒でもIDとして成立(ユニーク)させることを別の所で
処理しないといけない気がしますが。
0686NAME IS NULL
2005/06/02(木) 00:59:27ID:???ありがとうございます。
マニュアルのそのページを見たときに、
書式以外はDATETIME=TIMESTAMPと思ってしまったところが
間違いだったようですね。。。
ユニークにさせる処理はできているので大丈夫だと思います。
ありがとうございました。
0687NAME IS NULL
2005/06/02(木) 09:19:37ID:???ttp://dev.mysql.com/doc/mysql/ja/subquery-errors.html
> ただし、これは、一部の初期のバージョン(MySQL 4.1.1 など)にのみ適用される。
0688NAME IS NULL
2005/06/02(木) 10:07:29ID:???それを読んで、
「一部の初期のバージョン(MySQL 4.1.1 など)にのみエラーが出る」
(=それ以外のバージョンではエラーなく実行できる)
と理解したんだけど、間違ってた?
で、最新バージョン(4.1.12)を入れてもエラーになるんでおかしいな、と
0689NAME IS NULL
2005/06/02(木) 13:24:43ID:???mysql ,mysql-server のパッケージってあるのでしょうか?
yum install しますと、バージョン3になってしまいます。
0690681
2005/06/02(木) 13:31:43ID:T6Y+YlBSトしたいのですが。
初心者のため分かりやすく教えていただける方、どうぞよろしくお願いします。
0691NAME IS NULL
2005/06/02(木) 15:32:48ID:???前にもあったが、日本語doxは糞だからあまり当てにするな。
英語のref manual を嫁。
0692NAME IS NULL
2005/06/02(木) 19:48:03ID:E1fmfaVc英語1文字で LIKE 検索をすると関係ないものまで引っ張ってきてしまいます。
mysql> select ARTIST from DATA_TB WHERE ARTIST LIKE '%b%';
+------------------------+
| ARTIST |
+------------------------+
| CRYSTAL KAY |
+------------------------+
文字コード周りをいろいろ調べてみたのですが解決できませんでした。
MySQLのバージョンは 4.1.11-log です。
どなたか解決方法をよろしくお願いします。
0693NAME IS NULL
2005/06/02(木) 19:58:19ID:???例えば「zzz」なんかもヒットするって事?
0694NAME IS NULL
2005/06/02(木) 20:06:47ID:E1fmfaVcレスありがとうございます。
zzzは引っかからないです。
hex関数の結果をみますと
mysql> select hex('b');
+----------+
| hex('b') |
+----------+
| 62 |
+----------+
1 row in set (0.00 sec)
mysql> select ARTIST, hex(ARTIST) from DATA_TB WHERE ARTIST LIKE '%b%';
+------------------------+----------------------------------------------+
| ARTIST | hex(ARTIST) |
+------------------------+----------------------------------------------+
| CRYSTAL KAY | 826282718278827282738260826B8140826A82608278 |
+------------------------+----------------------------------------------+
1 row in set (0.00 sec)
あくまで予想ですが、「62」ってのに引っかかってるのかなぁって
思っています。
内部的なことは詳しくないので確証は持てないのですが。。。
0695NAME IS NULL
2005/06/02(木) 20:14:29ID:???ARTISTフィールドの定義(設定) が
1byte系エンコーディングまたはbinary属性の気がする。
0696NAME IS NULL
2005/06/02(木) 20:20:05ID:E1fmfaVcblob型で設定している限りこの問題は回避できないって事っすかね・・・。
ちなみにDBのcharsetは現在sjisにしてあります。
いろいろ変更してみたのですが結果は変わりませんでした。。。
最終的には大文字、小文字を区別してくれて検索出来ればいいんですけど
そういう時ってどのような環境が最適なんでしょうか?
0697NAME IS NULL
2005/06/02(木) 20:58:53ID:???そういう場合はCLOB(TEXT)を使うんでないか?
http://dev.mysql.com/doc/mysql/ja/blob.html
BLOBはあくまでもBinaryLargeOBjectsなんだから。
0698NAME IS NULL
2005/06/02(木) 21:16:34ID:???ARTISTカラムをBLOB型で定義する意味って何?
普通にVARCHARで良いように思うけど。
0699NAME IS NULL
2005/06/02(木) 21:28:40ID:E1fmfaVc始めはTEXT型で宣言してたんですけどマニュアルに
「TEXT 型は大文字と小文字を区別しない BLOB 型と考えることができます。」
って掛かれてたのでBLOB型で定義しなおしたんです。
で、テストで英語1文字で入れてみたら今のような現象が起こったって訳です。
>> 698
何文字のアーティストがいるか分からないからラージオブジェクトにしたんですが
VARCHARでも事たりますねぇ。。。
0700NAME IS NULL
2005/06/02(木) 21:47:07ID:???>「TEXT 型は大文字と小文字を区別しない BLOB 型と考えることができます。」
ああ、それは「大文字と小文字を区別しない」→「ロケールを考慮する」読み替える。
そこで言う「大文字と小文字」は、"日本語"での大文字小文字の区別のことではない。
「ロケールを考慮」すると、英語などのロケールではBINARYもbinaryも同じ意味なので
「大文字と小文字を区別しない」動作をするが、日本語ではそういう動作をしない。
連続したバイナリをエンコーディングに合わせて、"ひとつの文字"として認識するという動作をするだけ。
0701NAME IS NULL
2005/06/02(木) 21:59:13ID:???0702681
2005/06/02(木) 22:06:34ID:1PJ+iiN5レスありがとうございます。
コマンドプロンプトからmysqlへ移動しuse databases実行後
mysql> mysql < sqlファイル名;
上記のコマンドを実行しましたが、エラーが表示されてしまいます。
ファイル名のディレクトリ指定方法が間違っているのかもしれませんが、試した物が通りませんでした。
重ねてですが、ご支持いただけると幸いです。
0703NAME IS NULL
2005/06/02(木) 22:15:42ID:???50音順でア行〜ワ行を取得したいのですが、
何故か、上のクエリを実行すると、「ギ〜」というヨミのものも入ってきます。
カ行のはずなのに「ビ〜」のヨミや、ハ行のはずなのに「タ〜」のヨミが出てきます。
これは何ででしょうか。
調べてはみましたが、このような事態になってしまって困ってます。
Mysql4.0.24を使ってます
0704NAME IS NULL
2005/06/02(木) 22:37:06ID:???5.0.xは?
0705NAME IS NULL
2005/06/02(木) 22:54:44ID:???示されたポインター先のマニュアルページを良く嫁。
そこにも書いてるけど、ついでに下も
http://dev.mysql.com/doc/mysql/en/batch-mode.html
0706NAME IS NULL
2005/06/02(木) 22:57:28ID:???yomiのエンコーディングが適正に設定されてない。
0707706
2005/06/02(木) 22:58:41ID:???MySQLサーバ全体のエンコーディングが適正に設定されてない。
だな
0708NAME IS NULL
2005/06/02(木) 23:10:30ID:???ありがとうございます。今から調べてみます
0709703&708
2005/06/02(木) 23:19:32ID:???Mysqlを入れなおした時に設定が戻っていたようで、見落としてました… orz
>>706-707 多謝!
0710NAME IS NULL
2005/06/03(金) 00:41:47ID:???> VARCHARでも事たりますねぇ。。。
ジュゲムでも入れるのか?
0711NAME IS NULL
2005/06/03(金) 02:20:21ID:???>コマンドプロンプトからmysqlへ移動しuse databases実行後
>mysql> mysql < sqlファイル名;
>上記のコマンドを実行しましたが、エラーが表示されてしまいます。
そうじゃないよ、たとえばこのようになる。
$ /usr/local/mysql/bin/mysql -u root -p [DB名] < [ファイル名.sql]
一度、mysqldumpして、内容を良く見てみるといい
0712NAME IS NULL
2005/06/03(金) 02:51:08ID:???すごい昔の知識だけど使えなかった気が。
0713NAME IS NULL
2005/06/03(金) 05:42:47ID:???DOSの頃から現在の窓のコマンドプロンプトに至るまで、使える。
0714NAME IS NULL
2005/06/03(金) 09:28:10ID:???recommendedでないのは入れたくなかったので試しておりませぬ
0715NAME IS NULL
2005/06/03(金) 21:52:45ID:???入れてテストするくらいやればいいのに。。。
別に既存のをリプレースする必要はないんだし。
0716NAME IS NULL
2005/06/03(金) 23:47:17ID:???ではよろしくー
0717NAME IS NULL
2005/06/04(土) 09:50:36ID:???715じゃないけど、テストコードとデータくれたらいつでもテストするよ。
0718NAME IS NULL
2005/06/04(土) 16:52:00ID:DCaPW79Eというクエリを実行したのですが、エラーになってしまいます。
何がいけないのか教えてください。
0719NAME IS NULL
2005/06/04(土) 18:14:50ID:???0720NAME IS NULL
2005/06/04(土) 18:47:27ID:???正解はcreate database `00001`;
0721NAME IS NULL
2005/06/04(土) 19:25:07ID:DCaPW79EERROR 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 '00001
' at line 1
0722NAME IS NULL
2005/06/04(土) 19:25:45ID:DCaPW79E0723NAME IS NULL
2005/06/04(土) 20:02:18ID:???お前は目がおかしいのか?
>>720はシングルクウォーテーションじゃないぞ。
バッククウォートだぞ。
0724NAME IS NULL
2005/06/04(土) 22:44:32ID:DCaPW79Eもう一つ質問です。
在庫管理のシステムを作っており、
出庫・入庫の最新30件を表示したいのですが、
これをどのように作ったらいいか分かりません。
入出庫ログには日付の列もあるのですが、
たくさんレコードがあるのでorder byだと遅くなってしまいます。
入出庫ログの日付へのインデックスを作ればできそうなのですが・・・。
どなたか良い方法を教えてください。
0725NAME IS NULL
2005/06/04(土) 23:30:13ID:???やってみてから質問しろよ馬鹿
0726NAME IS NULL
2005/06/04(土) 23:44:50ID:???せんかね?
0727NAME IS NULL
2005/06/04(土) 23:48:15ID:aGSJcONGホームページでもいいんですけど。
0728NAME IS NULL
2005/06/05(日) 08:57:40ID:???動画データ自身はDBに格納せずに、ファイルシステム上の
ポインター(要はpath)のみ格納して管理する。
0729NAME IS NULL
2005/06/05(日) 09:38:33ID:???そんなのわざわざDBに入れる情報ではない罠。
動画データそのものを保護する手段としての格納を考えている。ファイルシス
テムとは別のデータベースへのアクセス権で動画の利用を制限するのが主目的
で検索にプライオリティーを置いていない。でも容量が凄いことになるのでな
んとかなりませんかねっていう疑問。テラ容量クラスが必要。でもそうすると
ハードウェア的に脆弱性が出る。如何ともし難い。
0730NAME IS NULL
2005/06/05(日) 10:09:01ID:???OrderByを使うしかない。
そして、30件とデータの取得件数が決まっているならLIMITを仕様して必要な件数だけ取ってくればいい。
それと、遅くなりそうという意見だが、これはチューニング次第。
俺が以前にやったのはOracleだが数千万レコードから1億レコードのデータがあっても、
データ検索に1秒以下で実現できる。
つまりチューニング次第。
0731NAME IS NULL
2005/06/05(日) 10:13:18ID:???DBに格納するにしろ、そのままディレクトリに置くにしろ変わらなくないか?
確かにDBに格納する場合、若干ファイル容量が増えるが、
テラ容量必要って言ってるんだからそのまま置くにしてもテラ容量必要だろ。
結局は、ハードウェア的に対応するしかないんじゃない?
HDDをRAIDにして尚且つDATテープ装置で週1回のフルバックアップと
毎日の差分バックアップするとかね。
0732NAME IS NULL
2005/06/05(日) 10:56:42ID:???ああ、DBで管理が前提な訳ね。
だったらDBが膨れるのはなんともならない。当たり前。
で、DBが膨れることでデータファイルのサイズが
ファイルシステム的に大きなサイズになって困るということなら
InnoDBを使って小さなファイルサイズに分割された状態になるようにしとけば良い。
勿論DBを複数のディスク/ディレクトリに分散することも可能。
俺はやっぱりポインタだけで管理することを薦めるがね。
>動画データそのものを保護する手段としての格納を考えている。
>ファイルシステムとは別のデータベースへのアクセス権で動画の
>利用を制限するのが主目的
なんだよな。ファイルシステム上のデータに対して、
MySQLで管理するアカウント(MySQLのユーザアカウントでも良いし、動画データ用の専用の
アカウント管理をしても良い)で、アクセスしか出来ない様な仕組みを提供する方が簡単。
仮想メールアカウント/ボックスをMySQLで管理するのと同じような方法。
自分はそんな感じで、多連でDVD-RAMに格納してやってるよ。
0733NAME IS NULL
2005/06/05(日) 19:30:17ID:kv1snlcrクエリの実行速度を簡単に計測するツールって無いですか?
DOS窓で実行すれば時間は表示されるんですが、あんまりDOSでSQL文をいじるのがめんどうくさいので、、
0734NAME IS NULL
2005/06/05(日) 20:36:58ID:???0735733
2005/06/05(日) 21:03:11ID:kv1snlcr試してみます
0736NAME IS NULL
2005/06/05(日) 21:10:21ID:K/EM+lbVTime::HiResモジュール使えばマイクロ秒(0.000001秒)まで計測可能。
use Time::HiRes qw(gettimeofday);
$start = gettimeofday();
#処理
$elapsed = gettimeofday() - $start;
printf "elapsed :%7.3f msec\n", 1000 * $elapsed;
0737NAME IS NULL
2005/06/05(日) 21:24:41ID:???と同じ症状です。
MySQL4.1.12aでかねやんからアクセスすると
サーバのキャラクタセット ->
クライアントのキャラクタセット -> sjis
と、サーバのキャラクタセットが空白に表示され、CSVからのデータのインポートに失敗します。
my.iniを見てもちゃんとsjisに設定されています。
とりあえずインポートを成功させたいのですがよい方法はないでしょうか。
0738NAME IS NULL
2005/06/05(日) 21:27:22ID:???0739NAME IS NULL
2005/06/05(日) 23:46:44ID:kFSH5fCZ0740NAME IS NULL
2005/06/05(日) 23:48:30ID:???super-smackってのがいいよ。
日本語ドキュメント内から今使い方をblogで公開しようと
必死で書いてる。
もう少し待ってね
と、さっきデートしてほぼふられることが確定した俺が言ってますよ・・・
0741NAME IS NULL
2005/06/06(月) 01:19:43ID:???一応俺は10〜2000くらいまではテストするんですが
2000発行するとクライアントのCPU使用率おかしくなりません?
0742NAME IS NULL
2005/06/06(月) 07:41:36ID:???time mysql -u ユーザ名 -ppassword < テキストファイル名
0743NAME IS NULL
2005/06/06(月) 21:08:57ID:BC3hoVn0Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
と言われて接続できません。xxx.xxx.xxx.xxxはクライアントのIPアドレスです。
hosts.allowには一時的な対策としてALL:ALLを書いてあります。
何がいけないのか、教えてください。
0744NAME IS NULL
2005/06/06(月) 21:13:57ID:???1つ聞いていい?
自宅のサーバはちゃんと外部からアクセスできるようにしてあるんだよね?
というのは、そういったスキルがあるなら、こういった質問は出てこないから。
0745NAME IS NULL
2005/06/06(月) 21:18:35ID:BC3hoVn0my.cnfかどこかに書く場所があるとは思うんですが、
調べるのが面倒なんですよ。。。
0746NAME IS NULL
2005/06/06(月) 21:23:03ID:???そういう事じゃないのね。
MySQLとかそういった話以前に、外部から自宅にアクセスできるのかって言うのを聞いてるの。
それに、外部から繋ぐのに、my.cnfとか殆ど関係無い。
鯖が外部からアクセスできるなら、殆どの問題はクリアしている。
調べれば分かるけど、自宅の鯖を外部に公開するってのは結構大変な作業。
0747740
2005/06/06(月) 21:45:40ID:???http://nullpo.2log.net/home/pcijiri/archives/blog/main/2005/06/06_185852.html
おかしなところとかありましたら、指摘お願いします。
と言うかおかしなところだらけですw
0748NAME IS NULL
2005/06/06(月) 23:05:01ID:f0IBjb/5show tables すると 8つあるテーブルのうち 5つ分しか表示されない
他の人はこんなことない?
Linuxだとちゃんと全部表示された。
PCがおかしいのかな?
0749NAME IS NULL
2005/06/07(火) 02:49:12ID:???mysqlがエラー吐いてるなら、port3306でつながっているんででしょう。
なので、ただ単に、localhostからの接続しか許してないんでしょう。
grant all on *.* to root@"%" identified by "hogehoge"
みたいなみたいな。
select * from mysql.userして調べて見ましょう。
0750NAME IS NULL
2005/06/07(火) 03:55:03ID:???0751NAME IS NULL
2005/06/07(火) 08:27:42ID:???grant使わずにupdate/insert/deleteで操作した場合はflushする必要がある
0752NAME IS NULL
2005/06/07(火) 12:01:31ID:???単純にWin/Linuxで設定やアカウントがことなってるからじゃないか?
show tablesして見えるテーブルの権限が、そのアカウントにあるか確認。
0753748
2005/06/07(火) 19:51:04ID:t7JDRBy2GRANT ALL ON *.*
TO root@localhost IDENTIFIED BY xxxx';
した root で show tablesしてもダメだった
とりあえず、これは置いといて
別の問題で
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON *.*
TO member@localhost IDENTIFIED BY 'memberber'
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES ON restriction.*
TO member@localhost;
use restriction;
REVOKE DELETE
ON `採番`
FROM member@localhost;
を実行すると
ERROR 1147 (42000) at line 18: There is no such grant defined for user 'member'
on host 'localhost' on table '採番'
ってなるんだけど、GRANT,REVOKEの使い方が間違ってる?
0754NAME IS NULL
2005/06/07(火) 19:59:06ID:blI7rnNl今度、max connectionsの値を変更したいのでmy.cnfを検索したところ、locateでもfindでも見つけることができなくて変更できずにいます。
どこのファイルからこの値を変更できますか?どなたか教えてください。お願いします。
0755かなり初心者です
2005/06/07(火) 21:51:57ID:SKY8l8Cjこのテーブルにデータが10個くらいいれてあります。
このテーブルに、primary keyが4のレコードを入れて、
今までprimary keyが4だったレコードを5へ、
primary keyが5だったレコードを6へ、
primary keyが6だったレコードを7へ、
………
という風にしたいんですが、どういう風に書けばいいでしょうか?
教えてください。
0756NAME IS NULL
2005/06/07(火) 22:12:17ID:???で、件のテーブルをdrop、後create。
データをうまいこと入れなおせばできるんでない?
sqlだけでやれるのかしら?
0757NAME IS NULL
2005/06/07(火) 22:13:07ID:???できれば、その4とか5...の値を保持するカラムを別に設けたほうが良いと思う。
auto_incrementでprimary keyカラムの値を変更するのはあまりお勧めしないけど。。。
primary keyのカラムが id とした場合、こんな感じ。
UPDATE table SET id = id + 1 WHERE id >= 4;
INSERT INTO table (id,...) VALUES(4, ...);
0758755
2005/06/07(火) 23:00:22ID:SKY8l8Cj別のカラムを設けることにします。(orderというカラム)
そこのカラムでも、
UPDATE table SET id = id + 1 WHERE id >= 4;
INSERT INTO table (id,...) VALUES(4, ...);
こういうことをするには、auto_incrementって設定しない方がいいですか?
設定すると、どういう時に、おかしくなる心配があるか、教えてもらえませんか??
0759755
2005/06/07(火) 23:01:39ID:SKY8l8Cj>INSERT INTO table (id,...) VALUES(4, ...);
↓↓
UPDATE table SET order = order + 1 WHERE order >= 4;
INSERT INTO table (order,...) VALUES(4, ...);
この間違いです。
0760NAME IS NULL
2005/06/07(火) 23:08:52ID:???文法的には合ってるんだが、
グローバルレベル:GRANT 〜 ON *.*
データベースレベル:GRANT 〜 ON restriction.*
テーブルレベル:REVOKE 〜 ON `採番`
でそれぞれ管理レベルが異なる。
http://dev.mysql.com/doc/mysql/ja/grant.html
REVOKEで権限を抜けるのは同じ管理レベルにおいて
既に権限が設定されてるものに対してだから、
テーブルレベルでGRANTで権限が設定されていないと駄目。
最終的な権限はそれぞれのレベルの論理和(or)だから、
ある特定のテーブルに対して"だけ"権限を与えたくない
というパターンの場合は、正直設定が面倒くさいね。
管理ツールとかユーティリティだと操作が楽になってるけど。
0761757
2005/06/08(水) 00:04:04ID:???auto_increment はテーブルに一つしか設定できないので、元のカラムを残して
order カラムに auto_increment は設定できない。
ぢゃあ、元のカラムを消して、order カラムに auto_increment を設定する?
という話になるとそれはやめた方がいい。
元の auto_increment、primary key のカラムはそのレコードを特定する値として
残しておく。そして一度、設定されたら変更しない。
他のテーブルと結合したりする時、結合相手がころころと変わると大変だから。
今回、他のテーブルと結合するかどうかは知らないけど、常にレコードを特定する
値は何?ということは頭に置いておくべき。
order は単に表示順序を決める値なので、おまいさんが都度都度、設定して
必要に応じて振り直しをした方がいいよ。
どういう風に設定、振り直しをするかはおまいさんのやりたいことをもう少し
聞かなきゃ判らんけど。
0762755
2005/06/08(水) 00:35:51ID:???Ruby on RailsっていうWebアプリケーションのフレームワークを使い始めて、
今まで触ったことのないSQLを使い始めています。
Railsでは、tebleにはidカラムが必須なので、
それとは別に、データの取り出し順序を指定するorderカラムを作ることにします。
それで、このカラムには、auto_incrementとかは使えない。
データを入れるときにRubyスクリプトでうまく設定します。
時間があれば、SQLの勉強もしないといけないですね。>おれ
0763NAME IS NULL
2005/06/08(水) 02:30:11ID:???無いのが普通。
|ソースディストリビューションがあれば、my-xxxx.cnf という名前の
|設定ファイルのサンプルが support-files ディレクトリに含まれています。
|バイナリディストリビューションの場合は、DIR/support-files ディレクトリにあります。
|ここで、DIR は MySQL インストールディレクトリのパスです(通常、C:\mysql または /usr/local/mysql)。
|現在、小、中、大、および特大システム用のサンプル設定ファイルが用意されています。
|my-xxxx.cnf を自分のホームディレクトリにコピーして、名前を .my.cnf に変更し、このファイルを
|使用してみてください
http://dev.mysql.com/doc/mysql/ja/option-files.html
0764NAME IS NULL
2005/06/08(水) 02:37:35ID:???文字コードはSJISを使っています。
mysqldumpコマンドでダンプし、それをLinuxのMySQLサーバへリストアしたのですが、LinuxのMySQLインタプリタでデータを見ると文字化けしてます。
ダンプファイルをエディタで直接開いても、よく分からない文字コードになってます。
ただし、WindowsのMySQLインタプリタでLinuXのMySQLサーバにつないでみると、文字は化けていません。
次に、backup tableコマンドを試したのですが、ダンプはできましたが、LinuxのMySQL4.1サーバへリストアすると、.frmファイルでエラーが起きます。
select into outfileでスキーマなしのデータ部分だけエキスポートすると、問題なくSJISのファイルが出来るのですが…。
mysqldumpコマンドでダンプ・リストアする方法がわかる人はいますでしょうか?
0765NAME IS NULL
2005/06/08(水) 05:55:42ID:???4.1系ならmysqldumpの引数に --default-character-set=sjis をつけてやってみたら
いけるんぢゃない?
バックアップする時とリストアする時の両方ね。
0766NAME IS NULL
2005/06/08(水) 12:53:39ID:???ありがとうございます!
0767NAME IS NULL
2005/06/08(水) 14:19:40ID:c/qUh/E8c#からodbc経由で接続しています
0768NAME IS NULL
2005/06/08(水) 15:15:25ID:NDa4ljVFauto_incrementの項目があるとき、INSERT文の中で、その時に振られた番号を取得する事は出来るでしょうか?
具体的には、auto_incrementで振られたNoを含む文字列を、同じレコードの別のフィールドに保存したいのです。
今はINSERT文のあとに、直前のNoを検索して、UPDATEしているのですが、Noが分かることが出来るのか知りたくて質問しました。
0769NAME IS NULL
2005/06/08(水) 15:16:23ID:???0770NAME IS NULL
2005/06/08(水) 15:18:51ID:???SELECT LAST_INSERT_ID()
0771NAME IS NULL
2005/06/08(水) 15:44:46ID:???回答は770が正解&過去ログ>>637- 嫁
0772NAME IS NULL
2005/06/09(木) 01:42:06ID:???検索することとかも考えています。
0773NAME IS NULL
2005/06/09(木) 02:29:54ID:???リッチテキストっても一杯種類があるんだが。
MSのWordPadなんかで使うrtfは、DBには格納せずに
そのままファイルの状態で管理した方が良いよ。
その方が検索ツールの適応度も高い。
0774NAME IS NULL
2005/06/10(金) 11:43:32ID:???mediawikiをインストール中、データベース作成時に下記のエラーが表示されました。
'Specified key was too long; max key length is 1024 bytes'
このエラーを解消する方法(キーの長さ制限を増やす?)を教えてください。
ちなみにこのURLを見ていましたが、いまいち内容が掴めませんでした。
http://64.233.187.104/search?q=cache:gS8sbkXozsoJ:dev.mysql.com/doc/mysql/ja/error-returns.html+Specified+key+was+too+long%3B+max+key+length+is+1024+bytes&hl=ja&lr=lang_ja
http://64.233.187.104/search?q=cache:k6NRDUcLYQ0J:jira.atlassian.com/browse/CONF-2783%3Fpage%3Dall+Specified+key+was+too+long%3B+max+key+length+is+1024+bytes&hl=ja
0775NAME IS NULL
2005/06/10(金) 13:45:38ID:???>>256 で同様の質問
>>258-259 >>268 で理由の説明
MySQL4.1.1以降で仕様が変わったので、アプリ側が
対応してなければ自分で弄って対応させるか、
古いMySQL3.xや4.0.xを使う。因みにアプリ製作者が
シングルバイト圏の人だと気づきにくいところ。
本人の環境だと変化ないから。
0776774
2005/06/10(金) 14:10:45ID:E0hIbgFr過去レスをよく読むべきでした、回答ありがとうございます。
ちなみにアプリ側の対応のさせ方というのはご存知の方いらっしゃいますか?
0777& ◆R7PNoCmXUc
2005/06/11(土) 06:06:02ID:FHUWJIVm今度、システムを新しくしようと思ってるんですが、
MySQLのデータベースっていうのは、どこに保存されているのでしょうか?
システムを新しくしていく時に、保存しておくべきファイルってどれでしょうか??
0778NAME IS NULL
2005/06/11(土) 07:57:03ID:???無かろうからシステム更新ごとに全部消しちまっても大差ないべ、
というのは置いといて、/usr/local/mysql/data あたりだ。
一応。
0779NAME IS NULL
2005/06/11(土) 08:01:48ID:???ttp://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
0780NAME IS NULL
2005/06/11(土) 12:31:24ID:???まあ、>>778で正解だろうと思うけど、
SHOW VARIABLES LIKE 'datadir';
SHOW VARIABLES LIKE 'innodb_data_file_path';
SHOW VARIABLES LIKE 'innodb_data_home_dir';
して場所を確認。あと必要ならlog絡みも。
システム刷新するならバイナリでバックアップするんじゃなくて、
dumpでやっといた方が良いと思う。
0781NAME IS NULL
2005/06/11(土) 14:24:59ID:FHUWJIVm192.168.1.* からのログインのみ許可するようなユーザにしたいのですが、
こういう書き方って可能ですか??
0782NAME IS NULL
2005/06/11(土) 14:55:23ID:???[4.3.9. アクセス制御の段階 1: 接続確認]
http://dev.mysql.com/doc/mysql/ja/connection-access.html
0783781
2005/06/11(土) 15:05:42ID:FHUWJIVmピンポイントです。Thanks!
0784NAME IS NULL
2005/06/11(土) 15:40:17ID:???主キーを1,2,3,・・・と再振り分けしたいのですが、
そういったことはどのようにやればいいのでしょうか?
直接MySQLを操作してるわけではなく、JDBCから操作しています。
よろしくお願いします。
0785NAME IS NULL
2005/06/11(土) 19:03:19ID:???その都度alterでカラムの変更をしてる。それも毎日。
これって異常なのか?
0786NAME IS NULL
2005/06/11(土) 21:01:36ID:???設定が固まってないのなら仕方がないけど、データベースの使い方としては特異。
毎日データの格納・取り出しが変わってたら定型作業にならないやん。
使う人が複数いれば、その連絡とかどうすんの。毎日やるわけ?
0787NAME IS NULL
2005/06/11(土) 21:12:53ID:???テーブル構造を変えると、内部処理では
「一度新規テーブル作ってデータコピーして旧テーブル消す」
ということを行っている。
つまり、実行中はそのテーブルへのアクセスが一切出来ない(排他処理で待たされる)し、
万オーダーを超えたあたりから、ALTER激重になってくる。
気をつけたほうがいいぞ。
10万オーダー超えると、アクセスするプログラムによっては変換中にタイムアウトになるかもしれん。
0788NAME IS NULL
2005/06/12(日) 16:48:22ID:???なんらかの問題で、レプリケーションマスタを入れ替える場合は、
マスタのバイナリログが使えなくなるわけだから、
一度レプリケーション解除して、再度レプリケーション構築するような手順になると思うんだが、
具体的手法や手順の参考になるような資料は無いだろうか?
おそらく、master.infoとslave.infoと旧マスタからコピーしたバイナリログを
レプリケーションスレーブから消せばいいんだと思うんだが・・・・・・
0789NAME IS NULL
2005/06/13(月) 00:07:02ID:???つまづいています(Windows環境です)
mysqladmin -u root -p create catalog
Enter password: *****
エラーが出ないので作れていると思うのですが、mysqlshowで表示させても出てきません。
↓表示されるのはこれだけです。
+-----------+
| Databases |
+-----------+
| test |
+-----------+
仕方ないのでもう一度同じものを作成しようとすると、下記のエラーが出ます。
メッセージからすると、既に同名のデータベースがあるのでつくれないという旨のようです。
mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'catalog'. Database exists'
表示させるにはどうしたら良いでしょうか?
0790NAME IS NULL
2005/06/13(月) 00:24:38ID:???mysqlshowで指定するユーザに対して、対象となるデータベースの
SHOW DATABASES権限をGRANTする。
0791NAME IS NULL
2005/06/13(月) 11:49:41ID:???>具体的手法や手順の参考になるような資料は無いだろうか?
私は公式のマニュアル以外、一切見ていませんが、
マスタが死んだ場合は、再構築する手順とほぼ同じですね。
master.infoにどこまでbinlogを読んだかが記録されているので、
残していると、レプリケーションが狂います。
なので、マスタ側は、スレーブの/data以下をコピーしたものを用意して、
binlogを全て削除する。スレーブ側は、master.infoを削除する。
あとは、my.cnfの設定を再確認して全台起動、という流れでしょうか。
0792NAME IS NULL
2005/06/16(木) 00:44:46ID:???タイトル 主役 共演者
とした時に俳優Aが主演した映画の共演者の中で、別の映画で主役を
得た俳優を求めることは可能ですか?
0793NAME IS NULL
2005/06/16(木) 09:37:09ID:???0794NAME IS NULL
2005/06/17(金) 01:36:41ID:???も、一つ。
tableA NATURAL JOIN tableB NATURAL JOIN tableC …(合計6個結合する)
ってやると、えらい時間が掛かってしまうんですが、何が悪いんでしょうか?
0795NAME IS NULL
2005/06/17(金) 05:28:19ID:???そのフィールドに1から連番でナンバリングしたいんですけど
いい方法はありますか。
0796NAME IS NULL
2005/06/18(土) 00:08:16ID:???日本語の「このマニュアルについて」からダウンロード先にいったけど
落とせるのは日本語のみの様子・・・。
どなたかご存知でしょうか?
0797NAME IS NULL
2005/06/18(土) 00:24:25ID:???その日本語が良く判らん
0798NAME IS NULL
2005/06/18(土) 02:07:26ID:???EXPLAIN
0799NAME IS NULL
2005/06/19(日) 14:54:17ID:n9q/trAx両DBMSの比較してる良いサイトありますか?
0800NAME IS NULL
2005/06/20(月) 13:03:50ID:???mysqlシェル上で
mysql> create table file (id int, data blob);
mysql> insert into file
->values (1, load_file
->('/home/fuga/1.gif'));
として
mysql> select data INTO DUMPFILE
->'/home/fuga/2.gif' from file where id=1;
とやると(ここまでは本まるうつし)
ERROR 1: Can't create/write to file '/home/fuga/2.gif' (Errcode: 13)
となります。mysql -u rootで入っても同様です。
MySQLプロセスのユーザーとシステムのユーザーがちがうので
書き込み権で撥ねられたのだと見当はつくのですが
どうすればよいんでしょうか?
0801NAME IS NULL
2005/06/20(月) 14:20:12ID:???or
chmod go+w -R /home/fuga/
0802NAME IS NULL
2005/06/21(火) 01:25:04ID:kGdVNVy8とれともトランザクションが同時に10までということなのですか?
0803NAME IS NULL
2005/06/21(火) 01:52:07ID:???ライセンスの話なのか、機能の話なのかはっきりさせようじゃないか。
端的に言えばWinXP ProにApache入れた時といっしょ。
0804NAME IS NULL
2005/06/21(火) 09:46:27ID:???どの様な使い方をされるんですか?
0805NAME IS NULL
2005/06/21(火) 12:16:35ID:rzUU6lJJmysql_install_dbやったら
mysql_install_db: /usr/local/bin/hostname: 見つかりません
って言われるんですけど
どこを見て/usr/local/bin/にhostnameがあるって設定になってるんでしょうか
よろしくお願いします。
0806NAME IS NULL
2005/06/21(火) 12:56:51ID:???134 # Try to determine the hostname
135 hostname=`/usr/bin/hostname`
136
素人はバイナリ使えよ。
0807NAME IS NULL
2005/06/22(水) 04:33:03ID:E8U4gjYmLOAD DATA LOCAL INFILE '○○'
この部分をどうすればいいのかわかりません。
ローカル側から読み込ませたいんですが
具体的にどこにCSVファイルを置いて
どんなふうにそのファイルまでアドレスを指定したらいいのか
わかんなくて困ってます・・・。
0808NAME IS NULL
2005/06/22(水) 05:44:00ID:???普通に期待したとおりローカルのカレントディレクトリから読み込むよ。
http://dev.mysql.com/doc/mysql/ja/load-data.html
http://dev.mysql.com/doc/mysql/ja/load-data-local.html
0810807
2005/06/22(水) 15:08:09ID:NCTTdtQeカレントディレクトリってコマンドプロンプトで調べられるやつですよね?
C:\Documents and Settings\Hoge
これがでてきたので、この階層にtest.csvを置いて
LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE `test`
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
このSQL文を送ったのですが読み込めませんでした。
もしかしてやり方間違ってますか?
0811NAME IS NULL
2005/06/22(水) 16:58:49ID:???>読み込めませんでした。
が、どう読み込めなかったのか不明なのでなんとも。
普通成功/不成功ともにエラーが出てるもんでしょ。
まあ、ローカルファイルが探せなくて読み込めない風な
ことだったので、その点については、
C:\Documents and Settings\Hoge\test.csvが存在して、
C:\Documents and Settings\Hogeディレクトリに移動した上で
mysql.exeを起動(パスが通ってなければフルパスで指定)して、
USE DATABASEしてtestというテーブルが存在するデータベースを選択後、
LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE `test`;
でC:\Documents and Settings\Hoge\test.csvが読み込めないというのはオカシイ。
読み込めなかったとすれば、ファイルの権限ぐらいだろうが、この場合は考えられんね。
FIELDS 〜以下の指定についてはCSVファイルの形式による。
指定の仕方はちょっと判りづらいかと思うので、ググるなりで勉強してください。
0812NAME IS NULL
2005/06/22(水) 17:03:02ID:???あ、あとかなり古いバージョンのMySQLでは、インストーラが
スペース混在のディレクトリ名に対応してなかったこともあるので
ユーティリティの一部機能にも似たようなことがある可能性がある。
"Documents and Settings"などのディレクトリ以外で一応チェックして。
「mysql Ver 14.10 Distrib 5.0.6-beta, for Win32 (ia32)」では問題なかった。
0813NAME IS NULL
2005/06/22(水) 17:06:47ID:???ib_logfile0
ib_logfile1
ibdata1
これらのファイルは何をするものなんですか?
ib_logfile*はログファイルっぽいのですが、
レプリケーションしなければログは要らないのかなと、
ibdata1はデータファイルのようですが、
--innodb-file-per-table=1
を指定して別のところにデータファイルを作る設定をしても
自動で作られる・・・
よくわからないです、どなたかお願いします。
0814NAME IS NULL
2005/06/22(水) 19:03:50ID:???InnoDB用のファイル。
MyISAMしか使わないのなら関係ありません。
InnoDBを使うのならマニュアルの解説を読んで理解すること。
MyISAMしか使わないのに、InnoDB用のファイルがあるのは
インストール時に「トランザクション機能が必要」としたためと思われ。
他には中身を理解せずにmy.cnfで設定を記述したか。
0815NAME IS NULL
2005/06/22(水) 22:13:50ID:???カレントディレクトリがなんたるかをわかってないようなので、
変なツール使ってて、そのツールのカレントディレクトリになってるんじゃないか?
上げてる時点で疑うべき場所を非常識レベルに変えたほうがよさげ
0816NAME IS NULL
2005/06/22(水) 22:37:28ID:???ありがとうございます。
もちろんInnoDBで使われることはわかっています。
InnoDBを使おうとして、skip-innodbのコメントをはずし、
4.1から利用可能な--innodb-file-per-tableを使って、
データファイルをMyISAMテーブルのように扱いたいと思ったわけです。
インストールはソースからのコンパイルですので、
トランザクション機能が必要とか、聞かれませんでした。
0817NAME IS NULL
2005/06/23(木) 00:57:06ID:???まず当たり前だがマニュアルには一通り目を通すこと。
http://dev.mysql.com/doc/mysql/ja/innodb.html
その上で、
http://dev.mysql.com/doc/mysql/ja/multiple-tablespaces.html
を読めば、何故ibdataファイル(ibdata1)が存在するのか判ると思います。
ib_logfile0, ib_logfile1については、これはInnoDBログファイルです。
操作履歴やレプリケーションに関わるMySQLのログとは性質が異なります。
これはInnoDBの自動修復に利用されるログで、何んらかの理由で電源断などが起きた場合等で
データベースの整合が取れなくなった際に、整合性修復のためにシステムにより利用されるログです。
複数あるのはログローテーションしているため。
InnoDBの設定を変えたり、InnoDBを利用しているデータベースやテーブルの
内容や構成を変更したのにibdataファイルの数や容量が減ったりしないのはInnoDBの仕様です。
(固定的に場所を確保しているので変更に強い(スピードが速い)と言えます)
設定を変更の際にはバッアップを取って、設定変更後にリストアする手間が必要になります。
ツール類を使えばそんなに大変ではないですけどね。一度決まれば、設定変更なんて頻繁にあるものでもないですし。
0818NAME IS NULL
2005/06/23(木) 10:53:07ID:V/LYOwCQib_logfile0とib_logfile1はREDOログ用のファイル、この2つのファイルは循環して上書き使用される。
ibdata1というのはテーブルスペース用のファイル。
innodbの"テーブルスペース"にはREDOログ以外の全ての情報が書かれていると思ってよい。
インデックス、テーブルデータ、データディクショナリあたりかな。
--innodb-file-per-table=1にしてもデータディクショナリはibdata1に残るんじゃない?
あとUNDOログがバッファ上でいっぱいになってしまった場合に書き出されるのも
このファイル上なんじゃないのかな?←これは推測。
あと、--innodb-file-per-table=1にした場合、以前から存在するテーブルはibdata0に
残ったままで、別ファイルには切り出されない。
--innodb-file-per-table=1を使いたいという意見は聞くけど、どうしても特定のテーブルだけ
シンボリックリンクで別のディスクにおきたいとかいう話で無い限り、パフォーマンスも
ほとんど変わらないし、使う意味無いよ。
0819NAME IS NULL
2005/06/23(木) 16:33:06ID:y4Qkh/o7教えてくださいませ。
/usr/bin/mysqladmin -u *** -p ping など、いろいろユーザーやコマンドを変えてみても、
---このようなHELPメッセージ?が表示されてしまいます。
mysqladmin: unrecognized option `--default-character-set=ujis'
mysqladmin Ver 8.23 Distrib 3.23.58, for redhat-linux-gnu on i386
.....
.....
mysql へは入れます。ユーザも確認しましたが、間違ってません。
よろしくお願いしますです。
0820NAME IS NULL
2005/06/23(木) 17:52:09ID:???エラー嫁
>mysqladmin: unrecognized option `--default-character-set=ujis'
大方、my.cnfで[client] セクションか[mysqladmin]セクションに
unrecognized optionを設定していると思われ。
0821NAME IS NULL
2005/06/23(木) 18:29:00ID:y4Qkh/o7あ、有難うございますた。
ご指摘のとおり、[client]の 'default-character-set=ujis' を取り除いたら解決しました。
2日間悩み続けたのが、一発で解決しました。
感謝、雨あられです。
このエラーのについて、いろいろ検索をかけたのですが、全然ヒットしませんでした。
マニュアルもそれらしい部分を当たってみたのですが、解りませんでした。
本屋にいってみても、参考になるようなものは見つかりませんでした。
やはり、マニュアルを精読しないとだめなんでしょうか。
もし、よろしければ、アドバイスをおながいしまつ。
0822NAME IS NULL
2005/06/23(木) 19:01:10ID:???つ[http://myna2.mysql.gr.jp/mysqlml/mysql/msg/6658]
アドバイスとしては、
・英語だからとエラーやログを自分で読まないのは愚の骨頂
("出来る"人も多くは英和辞書や翻訳ツールのお世話になっているものだ)
・検索を掛けるときは完全な検索結果を求めるのではなく、
緩めの検索ワードに抑えて、出てきた多数の検索結果を自分で辿り
答えを見つけようと努力すること。余り機械(プログラム)を信じない。
googleでさえも完璧じゃないので、他のサーチを併用するぐらいで丁度良い。
・日本語で見つからなければ、せめて英語のコンテンツにも検索を広げてみること。
・MLのアーカイブはGoogle検索に引っかからないものもあるので、
ML専用のアーカイブ検索も利用してみること。
・Webにあがってる情報というのは、情報の中の一部であることを念頭に置くこと。
(紙媒体に目をやれば、実は直に見つかったとか)
ということを全部やるのは大変だが、特殊なケースだと自分が先陣を切って
答えを見つけるしかないので、そういった能力を磨いていく必要がある。
(コンピュータ関連はWebある情報が膨大なので、まだマシ)
まあ、これで後進は2chのスレ検索でも答えが見つかるようになった訳だ。
0823NAME IS NULL
2005/06/23(木) 20:19:54ID:???・MySQL のソースコードを読む
が欠落しているよ。
これが全て。
0824NAME IS NULL
2005/06/23(木) 20:55:04ID:???そこまでボックス化が不完全な商品ではないよ>MySQL
0825NAME IS NULL
2005/06/23(木) 22:25:30ID:QrM5IyNbなんとか、Sleep状態のタイムアウトを設定したいのですが、どの変数を変えればよいのでしょうか?
MySQL 4.0.18を使用しています。
0826NAME IS NULL
2005/06/24(金) 00:05:20ID:w5PKWUDM有難うございます。努力しますです。
>>820
も一度、有難うございました。
0827NAME IS NULL
2005/06/24(金) 06:02:58ID:???Windows版で、scriptsにあるスクリプトを実行するにはどうしたら良いのでしょうか?
具体的には、dataディレクトリを別ドライブにしたいので、mysql_install_db を
実行したいのですが。(←なにか根本的に間違っていたらすいません)
元のdata/mysqlを新しいdataディレクトリにコピーすればOKでしたが、
scriptsにmysql_install_dbがあるならこれもやってみたいと思いまして。
http://dev.mysql.com/doc/mysql/ のマニュアルの記述箇所だけでも結構です。
WindowsXP、MySQL4.1.12、です。初歩的な質問で申し訳ないですがよろしくお願いします。
0828NAME IS NULL
2005/06/24(金) 10:09:24ID:/UUySs3PWindowsのバイナリ配布版にscriptsディレクトリ自体ないと思うが。
0829NAME IS NULL
2005/06/24(金) 10:14:52ID:/UUySs3PWindowsでdataディレクトリを別ドライブ上にする方法
http://dev.mysql.com/doc/mysql/ja/windows-symbolic-links.html
0830NAME IS NULL
2005/06/24(金) 14:37:17ID:QXFZJ7KtMySQLを選んだ理由はなんでしょうか?
MySQLの方がライセンス的には面倒な感じで
機能的には最近はあまり差がないように思います。
PHPの書籍だとたいていMySQLがセットで説明されるように
なってるのを見てちょっと疑問に思ったのです。
0831NAME IS NULL
2005/06/24(金) 14:50:32ID:RIYPr3zX日本企業からするとオープンソースと言いつつもサポートなしってのは採用しにくい。
そういう意味でPostgreSQLは今ひとつこれまで商用DBの代替としての押しが弱かった。
もちろん日本では以前からSRAがPowerGresっていうPostgreSQLの商用版、
最近は海外ではEnterpriseDBっていうPostgreSQLの商用版があるけどね。
MySQLは既に開発者が会社を立ち上げて有償サポートとかもやってる。
その辺の体制が評価されたのが1つ。
あと実は世界全体でのオープンソースRDBMSというとMySQLが最も古くからメジャー。
日本は言語の壁があったので普及が遅れていたのがMySQLが日本で出遅れた
理由の一つ。最近は書籍等も充実、日本語マニュアルもあり問題はなくなった。
最後に、いくつかの性能評価レポートを見ればわかるけど、
アプリケーションサーバからのアクセスなどのマルチスレッド環境では、
MySQLの方が圧倒的に限界スループットが高い。
つまりWEBシステムで高アクセスになった際により耐えれるのはMySQL。
そんなとこ。
0832NAME IS NULL
2005/06/24(金) 18:29:26ID:???・速い(最適化)
・従順(プロンプト)
・海豚 ;-D
0833NAME IS NULL
2005/06/24(金) 19:48:44ID:???4.0まではそうだったという感じ
4.1で日本語ボロボロにして離れたユーザー大量に見てきたよ
ちょうどPostgres8がWindows版発表したりパフォーマンスを大幅に改善したりして面白いことになったが
0834NAME IS NULL
2005/06/24(金) 20:07:22ID:???0835NAME IS NULL
2005/06/24(金) 22:16:43ID:???4.1のアレなんとかならんのかねえ……。
2ヶ月前くらいからDBが必要になって触り始めてるけど、
未だにどちらのバージョンを本番に使うか悩んでる。
0836NAME IS NULL
2005/06/24(金) 22:18:34ID:???個人的にはデータとかクライアントの互換性かな。
PostgreSQLはバージョンが0.1上がっただけで互換性がないのが続いたので、
(データもクライアントも)
うざかったのでやめた。
今はどうかしらないけどね。
まあ、MySQLも4.1でアレだったわけだが、
んでもPostgreSQLの時よりは
(個人的には)
手間がかからんかったのでそんなに問題とは思わなかった。
他にはDBエンジンが自由に選べるトコとか
(後付けは5.1からなのが残念だけど)
ソースが追いやすいとかかなぁ。
0837NAME IS NULL
2005/06/25(土) 00:43:54ID:???MS932のほうはこれがでてくるまでまったく対処できなかったからねぇ
MySQLはやっぱりWindows版もあって開発をWindowsでできたというのが大きなアドバンテージだったけど
今じゃPostgreSQLも大丈夫だし、むしろPostgreSQLのほうがMysqlより小さいんだよね
速度的なメリットもInnoDBとPostgreSQL8とじゃあんまかわらんし
MySQL4.1は改革しすぎてせっかくのサブクエリーやSQLで細かくバグもっていたり現場はめちゃくちゃ
混乱してるぞ
俺も3.xからずっとみてきたが、MySQL4.1とPostgreSQL8とどちらもはじめてさわるユーザーに
薦めるという場合PostgreSQLかなぁ
PGAdmin3とかJDBC等各種ドライバとか綺麗にはいってくれるので後出しの割りに
Windowsユーザーは触りやすいような気がする
MySQLも4.1からGUIツールつくといってたからどーなるかとおもったらとんでもねえぇものだったしなぁ
がっくし
0838831
2005/06/25(土) 01:05:56ID:5fXlIrGMMySQL 4.1.12 あるいは MySQL 5.0.3 で日本語問題なくなったじゃん。
パフォーマンス>>831については、MySQL 5.0.7とPostgreSQL8.0.3とかの最新版の情報でてるよ。
Linux上ではMySQLの圧勝。Windows上では低負荷時はPostgreSQLのがレスポンスが早い、
Windows上での高負荷時はやっぱりMySQL。
0839830
2005/06/25(土) 05:43:14ID:???ライセンスとかはあまり気にならないようですね
0840NAME IS NULL
2005/06/25(土) 06:36:18ID:lAVQPOOq企業ユーザ、特に大企業だと以前は商用ライセンスを買いたがる傾向があった。今もまだあるかな?
MySQL Networkっていう年間サブスクリプション型のサポートサービス(ライセンス権利含む)が
発表されてからは、こちらへ推移している。
MySQL ABによるマーケティングメッセージの決め文句は「TOCの削減」
大企業にとってはライセンス料金を0にできるかどうか、という話よりも
トータルコストの削減てことかねえ。
0841NAME IS NULL
2005/06/25(土) 06:45:23ID:lTBXpALrTCOじゃね?
0842NAME IS NULL
2005/06/25(土) 06:53:50ID:???部門内サーバのような用途なら、CMLの価格は全然気にならない。
GPLに使用という気は逆にないな。LGPL/BSDライセンスだったら...
多分そうであってもCMLを採用すると思う。
Web+DBの場合、ウチは自分ところのはCML使ってるけど
ISPのような会社だとGPL使ってるんじゃないかね。
別に不都合はないし。安く抑えることが優先でしょうからね。
ただ1人1本のような用途の場合は、ライセンス体系は
ネックにならないこともない。いやネックになる。
>>840
年間サブスクリプション型のサポートサービスで、
GPLのMySQLにサポート付いた奴があるでしょ。
CMLでなくて良いところは、あれを使うべきなのか...微妙。
0843840
2005/06/25(土) 07:22:20ID:lAVQPOOqtypoでした「TCO」・・・Total Cost of Ownershipと言いたかった。スマソ。
>>842
MySQL Networkはデフォルトは商用利用OKなGPLだけど、MySQL ABに言えば
CMLに変更してくれる。変更にお金はかからない。単に依頼するだけ。
あとね、海外の事例とかだと組み込み系で過去に大量ライセンス数採用とかあって、
そいういう時は「CMLだけど大幅値引き」とかもあったとか。
一応OracleとかDB2に比べてTCOが1/10になりますって謳っているわけだしね。
0844NAME IS NULL
2005/06/25(土) 09:15:31ID:???クエリキャッシュって期待ほどじゃなくて切ないです。
テーブルの少しだけでも変更されたら、今までのキャッシュが無効になるのね。
行レベルでキャッシュとかしてくれないかな〜
そしたらまじ愛してあげれるのに。
0845NAME IS NULL
2005/06/25(土) 12:04:58ID:???正直言って、Windows版使うってのが信じられんが。
0846827
2005/06/25(土) 12:12:14ID:???>>828
インストーラ無しのzip版でした。
こちらにはscriptsディレクトリとスクリプトファイルがありました。
>>829
シンボリックリンクという方法しかありませんか。
要はwindows\my.ini に
[mysqld]
datadir=D:/data
と記述してあるので、D:\data\mysqlにgrant tableというのを作りたいのですが。
先にも書いたように、元の(インストール先の)data\mysqlをD:\data\mysqlに
コピーすればMySQLサービスはエラーなく起動します。
Unix版の方はgrant tablesをmysql_install_dbスクリプトで作るみたいですね。
(そういえばVC++でソースからビルドした場合はgrant tableというのは
どうするんでしょうか。元のdata\mysqlは無いのではないんでしょうか)
まあ何故そんな事がしたいんだとお思いでしょうがもちろん実務ではなく自分の
趣味と言うか学習用途です。英語マニュアルを無理矢理読んでいるので
理解不足で根本的に勘違いをしてるかもしれません。よろしくお願いします。
0847NAME IS NULL
2005/06/25(土) 12:19:30ID:???共用レンタル鯖で使いたいのですが、データベースのアカウントが5つで内2つ使っているので、1アカウントに抑える必要が出てきました。
そこで、1テーブルで1つの板全部のスレをおさめる形になったのですが、(板の数は5、板にはスレが約30、レスが約500と過程して)鯖負荷的には大丈夫なのでしょうか?重すぎますか?
0848NAME IS NULL
2005/06/25(土) 12:26:19ID:???Windows上にApache+MySQL+Perlの開発環境を入れて、
晒すときはLinux/BSD、とかは良くやってた。
>>884
いやだってテーブル更新されたらWHEREで選択される結果が変わるだろ?
0849NAME IS NULL
2005/06/25(土) 12:28:56ID:5fXlIrGMおまいさんが結局何を知りたいのか、読んでいてわけがわからなくなったぞ。
確かに、mysqlはbasedirとかdatadirで位置の指定ができる。
Windowsでの擬似シンボリックは、バイナリログ(dataディレクトリに出力される)と
テーブルデータそのもの(普通はdataディレクトリ内)を別のディスクにおいて、
IOの分散を図ったり、1つのHDD障害でこうむる被害を小さくする、
といったために使われるものだ。
権限データベースであるmysqlデータベースはMyISAMを使っているので、
適当にコピペしてOKだ。
MyISAMストレージエンジンを使っているテーブルは、勝手に切り貼りしても
壊れないだけでなく、プラットフォーム非依存だからUNIXから持ってきた
MyISAMテーブルをWindows上にコピペしても動く。
おれが知っているのはこれくらいだ。
0850NAME IS NULL
2005/06/25(土) 12:37:01ID:5fXlIrGM>鯖負荷的には大丈夫なのでしょうか?重すぎますか?
俺に同じようなのを作った経験があればさらっと答えられそうだが、残念ながらそうではないので。
データ量は1テーブルでどれくらいになりそうなのか、主キーはint型でいけるのかvarcharにしようとしているのか。
カラムサイズはどれくらいなのか、1行はどれくらいのサイズなのか。
同時アクセス数はどれくらいを見込んでいるのか。鯖のマシンスペックはどれくらいなのか。
変数が多すぎて何とも言えない。もう少し具体的に。
0851827
2005/06/25(土) 12:49:17ID:???> Windowsでの擬似シンボリックは、バイナリログ(dataディレクトリに出力される)と
> テーブルデータそのもの(普通はdataディレクトリ内)を別のディスクにおいて、
> IOの分散を図ったり、1つのHDD障害でこうむる被害を小さくする、
> といったために使われるものだ。
なるほど、そういう事でしたか。
ドライブを分ける理由は・・・、自分は出来るだけプログラムやアプリ本体をC:に、
My Documentsを初めデータファイル類はD:に置いているのです。
デフラグを効果的にとの目的ですが、確かに他の人から見ると意味不明ですね・・・。
MySQLはもう少し勉強してから質問するようにします!
0852NAME IS NULL
2005/06/25(土) 13:05:48ID:5fXlIrGM>>850とは言うものの、ディスクを複数用意してバイナリログだけ別にする、
とかいうよりも一回り大きいアーキテクチャのところで、
レプリケーションが簡単なのでレプリケーションをバックアップ代わりに使いましょう
というのがMySQL。
ちなみにレプリケーションでマスタからスレーブへ渡されるのはバイナリログそのものと考えて良い。
まあ気軽に質問してよ。答えられないかもだけどw
0854847
2005/06/25(土) 16:06:59ID:???レスありがとうございます。
鯖はXREA広告免除(Athlon3100+、1GB Mem、PHP5.0.4&4.3.10、MySQL 4.0)、LoadAverage0.7
キーはintでAUTO INCREMENTです。
id(key)、スレ番号(int#10byte)、レス番号(int#4)、Name(varchar#50)、本文(varchar#2048)、専用番号(int#10)、host(varchar#192)
1000〜10000cols変動
最大で800アクセス/時、3000/日
今のBBSはこれで運用しています。
0855NAME IS NULL
2005/06/25(土) 17:33:49ID:???例えばwhere句を監視してて、where id=x のクエリの結果が、
insert .... (id) values (y) or update ..... where id=y が
元々の where id=x の結果に影響を及ぼさないと思うわけなんだけどさ、
表現が違うかもしれないけど、行レベルとはそんな感じを言いたかったの
0856NAME IS NULL
2005/06/25(土) 17:34:33ID:???汲み取っておくんなまし
0857NAME IS NULL
2005/06/25(土) 18:44:07ID:5fXlIrGM情報カキコどうも。
>1000〜10000cols変動
というのは行数のことですか?
共用マシンのようですね。とりあえず専用で使えた場合の限界スペックと予想を書きます。
今回のような場合、使用されるクエリ、テーブル構造はシンプルな部類だと思いますので、
基本性能に近いスループットが出るでしょう。
テーブルの使われ方としては、SELECTとINSERTしか基本的に発生しない、トランザクション不要で
あることからストレージエンジンはMyISAMを使うのが良いと思います。
PentiumM1.7GHzのマシンで単純なベンチマークテストを行った場合、10000クエリ/秒以上の
スループットがMyISAMの場合でています。
今回の行サイズから考えると、ベンチマークの結果の1/4くらいは悪くとも出そうです。
一方で、リクエストは800回/時間とのことですから、1回のリクエストで複数回のクエリを発行したとしても
平均すると1秒間に発行されるクエリ数は1未満。
だいたい2500倍以上の余裕がありますから、共用マシンで他のどのプロセスによる圧迫があるか
予想できないとはいえ、MySQLが現時点でボトルネックになることは無いでしょう。
ちゃんとインデックス張って下さいね。
0858847
2005/06/25(土) 21:06:00ID:???MySQLは非常に軽いのですね。これで行こうと思います。
MyISAMについても調べる良い機会になりました。
ありがとうございました。
0859NAME IS NULL
2005/06/25(土) 22:01:56ID:???それだけです、はい。
0860NAME IS NULL
2005/06/25(土) 23:12:26ID:???0861NAME IS NULL
2005/06/25(土) 23:49:32ID:???んなのいちいちチェックしてたらオーバーヘッドが大きくなって全体的な速度が落ちるっしょや。
何やりたいのかしらんが、アプリ側でのキャッシュも考えておけばいいんじゃね?
そもそもクエリキャッシュを気にする前に気にするべきことがいろいろある気がするし。
クエリキャッシュってINSERTやUPDATEが少なくてSELECTが多い、
例えばCMSで動的に生成してるページ向けのオマケ的な機能のような気がするんだけど。
0862NAME IS NULL
2005/06/26(日) 00:15:13ID:???mysqladmin.exe で、ルートのパスワード設定しようとしたらノートン君が反応。
どうやらDNS探しに外に出て行こうとしてるみたいです。
とりあえず遮断しときましたけど、スパイウェアの類が紛れてたりするのでしょうか・・・
ちなみにad-awareではmysql絡みの物は反応しませんでした。
ちょっと怖いです
0863NAME IS NULL
2005/06/26(日) 01:12:29ID:???ホスト名で権限付けれなくなるけど、問題ないっしょ。
0864NAME IS NULL
2005/06/26(日) 01:14:51ID:???ネットワーク越しの接続を必要とする設定になってる場合、
認証他で普通にDNSでの名前解決が必要(ということがマニュアルに書いてある)
またドメイン名でなくてIPアドレスのみで良いのなら、DNS引かせないような
設定も出来る(ということがマニュアルに書いてある)
怖い怖い言うなら、ちゃんとマニュアル読めば?
不明な得体の知らない怖さには"知る"ことが大事。
0865NAME IS NULL
2005/06/26(日) 08:16:37ID:???更新や削除、挿入のときのみのチェックだとしたら、
それほどのオーバーヘッドはないと思うんだけどなぁー
例えば
update ..... where id=x が実行されたときには、
クエリの文字列で id=xを持つもののみを古いキャッシュとして削除
みたいな
id=yを持つものは削除せずに維持てなかんじ。
ところでアプリ側のキャッシュをするとき、
データが更新されたことを複数サーバが知るのにいい作戦ある?
サーバ側でデータベースから読み込んだ時間を保持しておいて、
データが更新された時間を持つサーバから最終更新時間を取得して
アプリ側のほうが古い場合、リロードしに行くとか?
0866NAME IS NULL
2005/06/26(日) 11:54:39ID:???で、そのprimaryが更新したかどうかのためにそのprimary分のメモリも確保しなくちゃいけないわけで。
あまり効率がいい方法だとは思えないんだけど。
つか、出来ると思うんならソース書き換えればいいじゃん。
あるいは「こうすればいいんじゃね?」ってMLとかで提案するとかさ。
0867NAME IS NULL
2005/06/27(月) 01:30:30ID:d2SMieRB>> 速度的なメリットもInnoDBとPostgreSQL8とじゃあんまかわらんし
正確にはInnoDBはMyISAMよりスループットに優れているがINSERT,DELETEは
Archive Engineが一番早い
0868NAME IS NULL
2005/06/28(火) 01:21:38ID:???と100%等価なQueryはどのように書けば実現できるのでしょうか?
0869NAME IS NULL
2005/06/28(火) 01:40:20ID:IojFoIwUWindows版のMySQL4.0.23なのですが、ユーザの作成について。
--データベースとユーザを追加
mysql> CREATE DATABASE test;
mysql> GRANT ALL ON test.* TO testadmin IDENTIFIED BY 'admin';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
その後、DOSプロンプトより
mysql -u testdmin -p admin
と入力すると、
ERROR 1045: Access denied for user: 'testadmin@localhost' (Using password: YES)
というエラーメッセージがでてログインで来ません。
userテーブルをみると、それっぽいレコードはできていいるのですが・・・
何がいけないのでしょうか?
0870NAME IS NULL
2005/06/28(火) 08:34:36ID:???GRANT ALL ON test.* TO testadmin IDENTIFIED BY 'admin'
↓
GRANT ALL ON test.* TO testadmin@localhost IDENTIFIED BY 'admin'
0871NAME IS NULL
2005/06/28(火) 08:43:35ID:???GRANT ALL ON test.* TO testadmin@localhost IDENTIFIED BY 'admin';
だと思う。あと、アクセス拒否とは関係ないけど、パスワード指定
は --password=admin か、-padmin でしょ。
0872NAME IS NULL
2005/06/28(火) 09:02:54ID:???何をやりたいのかさっぱりわかんないけど、
SELECT last_insert_id()
でなんとかなるんじゃね?
0874NAME IS NULL
2005/06/28(火) 15:01:26ID:???初心者のくせにうちのサイト全部UTF-8仕様にしてやるぜ
とかいらんこと考えて即死亡。
人生の貴重な一日を無駄にしました。ありがとう4.1
0875NAME IS NULL
2005/06/28(火) 15:25:21ID:???0876NAME IS NULL
2005/06/28(火) 16:41:39ID:Hbs9ooet参考まで http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_32
0877NAME IS NULL
2005/06/28(火) 20:08:37ID:???あ〜お
か、が〜こ、ご
・・・・
のような感じでsqlで引っ掛けることって可能ですか?
0878NAME IS NULL
2005/06/28(火) 20:59:05ID:???文字コードが並んでる部分についてはバイナリーとみなして
範囲を指定できたと思う。
0879NAME IS NULL
2005/06/28(火) 21:38:04ID:???違うデータベースにある二つのテーブルを結合して検索するのと
速度の違いが結構ありですか?
0880NAME IS NULL
2005/06/28(火) 23:08:14ID:???そのくらい、自分でテストしてくり。
結果を公表したければ、話は読もう。
0881NAME IS NULL
2005/06/29(水) 01:32:25ID:PKUDSWFfその質問は、
use test;
select * from mysql.user;
use mysql;
select * from user;
この2つに速度の違いはあるのか?と聞いているのと同じと思われ。
違いは結構あるのか?と言われれば、はっきりいって全く違いなしといっていいくらい同じだろう。
0882NAME IS NULL
2005/06/29(水) 02:09:26ID:???あんがと。
0883NAME IS NULL
2005/07/01(金) 18:03:35ID:IHWB0YbsMySQL3.23系用に作り直さないといけなくなりました。
どんな点に注意すれば良いですか?
あとサブクエリを使っているので、これを3.23系用に書き直す方法を教えてください
よろしくお願いします
0884NAME IS NULL
2005/07/02(土) 02:34:04ID:kYLJnUX/そもそもダウングレードなんてするべきじゃない。
サブクエリに関しては、
CREATE TEMPORARY t1 ...
で代用。
あとchar(N)とかvarchar(N)の数え方が違うはず。
対応しているコネクタのバージョンもチェック。
この辺を手がかりに調べてみるべし。
0885883
2005/07/02(土) 12:48:00ID:Lpd4QfJSそうですよねー 自分も3.23じゃない方が良いと思うんですけどね
CREATE TEMPORARY t1 ...
↓
INSERT INTO t1 SELECT ....
↓
SELECT FROM t1
こんな感じですか?
char(n)とかにも注意してみます
0886NAME IS NULL
2005/07/03(日) 14:26:46ID:WcUY5ifWいまMYSQLを使用してデータベースをいじっているのですが、
昨日までデータの修正、変更等ができていたのに、
今朝から使用不可能になってしまいました。
具体的にどのようなことかというと、昨日まで存在していたデータベースが
なくなってしまって、データの操作ができない状態です。
自分が知らないうちに消したのかと思って、もう一度CREATE文で
データベースを作成しようとしたところ、
'1044(42000):access denied for user ''@'%' to database 'mysql''
というエラーメッセージが出て作成することが出来ません。
お分かりになる方、教えていただけないでしょうか?
0887NAME IS NULL
2005/07/03(日) 14:44:46ID:???エスパー募集は別板でやってくれ。
0888NAME IS NULL
2005/07/03(日) 14:51:56ID:???だけで、テーブル自体の削除等はしておりません。
それで、今日コマンドプロンプトからテーブルの中身を確認しようと
したところ、テーブルが、というより、データベース自体が
なくなっていたのです。データベースをもう一回作り直そうと
すると上記のようなエラーがでてしまい、作り直しもできません。
まったく見当がつかない状態です・゚・(ノД`)・゚・。
0889NAME IS NULL
2005/07/03(日) 15:31:52ID:???詳しく
0890NAME IS NULL
2005/07/03(日) 15:42:02ID:???文字がデータベースに登録されるような簡単なものです。
mysqlに入るときに、 -u root を使って、管理者権限で入っているのですが、
>>886にあるエラーメッセージの
access denied for user ''@'%' to database 'mysql''
が関係しているのではないかと思います。
この「user ''@'%'」が示すことって、rootで入っていない
っていうことですかね?
0891NAME IS NULL
2005/07/03(日) 16:03:53ID:???まぁ、確かにユーザ指定すれば@の前にユーザ名が入るよな。
でも、@の後ろのホスト名が%になってるけど、
普通に設定するとrootはlocalhostからしか繋がらないようになってるよな・・・
0892NAME IS NULL
2005/07/03(日) 18:09:17ID:+Ny1BKUArootでのログインもできなくなって中身の状態が分からなくなった場合には、
--skip-grant-tables
オプションをつけてサーバを一時的に権限チェック無しで起動。
とりあえず現状どうなっているのかをさぐれ。
0893NAME IS NULL
2005/07/03(日) 18:46:47ID:h2WJoq/G一体何に使われるのですか?
0894NAME IS NULL
2005/07/03(日) 20:58:42ID:???PHP経由でSQLインジェクションをくらったとか。
ひょっとしてアプリもrootで接続していたとかそういうことはないよね。
0895NAME IS NULL
2005/07/03(日) 22:48:16ID:???アドバイスアリガトウございました。
なんとか解決したみたいです。
っていうか、こんなことが原因だったとは・・・_| ̄|○
ありがとうございました・゚・(ノД`)・゚・。
0896NAME IS NULL
2005/07/04(月) 01:33:17ID:???WinMySQLAdmin(iはいらない)のためのデフォルトアカウントの設定。
WinMySQLAdmin以外のmysql/mysqldump等のクライアントユーティリティには関与しない。
>>895
他の人のために「こんなこと」を具体的に書いてくれ。
0897NAME IS NULL
2005/07/04(月) 01:58:19ID:???具体的に言うとmy.iniが存在しない場合(最初の起動時という訳ではない。起動前に
my.iniを手動で書いていれば出ない)に、システムディレクトリにmy.iniに雛形を作り、
その[WinMySQLadmin]セクションに
[WinMySQLadmin]
Server=mysqlをインストールしたpath/bin/mysqld-nt.exe(mysqldは違う種類の場合あり)
user=winmysqladminuser
password=winmysqladminpass
を作る。
実際にMySQLサーバに管理権限のあるMySQLユーザとして
winmysqladminuserというユーザが存在するかしないかは別問題。
勝手にwinmysqladminuserというユーザは作らない。インストール時に
勝手に作るのはrootという管理権限のあるユーザ(パスワードはなし)。
0898NAME IS NULL
2005/07/04(月) 04:08:44ID:???例えば3000ぐらいまで行ったのを200の戻したいです。。
宜しくお願いします。
0899NAME IS NULL
2005/07/04(月) 15:22:04ID:Vq1NTXNCmysql> show variables > "/tmp/hoge.txt";
という感じで、ファイルに出力する方法ってありますか?
0900NAME IS NULL
2005/07/04(月) 15:26:26ID:???mysql -uユーザー名 -pパスワード -e "show variables" > /tmp/hoge.txt
0901NAME IS NULL
2005/07/04(月) 15:44:55ID:???AUTO_INCREMENTカラムの値が200以上のレコードが
存在しない状態にしてから、以下を実行されたし。
alter table テーブル名 auto_increment=200;
0902NAME IS NULL
2005/07/04(月) 18:36:35ID:???ありがとうございます。
mysql> alter table test_table auto_increment=0;
Query OK, 30 rows affected (0.30 sec)
レコード数: 30 重複数: 0 Warnings: 0
ってするとリセットされました。
ただプロパティーのインクリメントカウンタはリセットされないんですね。。。
0903NAME IS NULL
2005/07/04(月) 18:43:41ID:???格納して管理している人にそのコツを伝授されたし
# やっぱりメタデータだけをDBにつっこむ方のがいいのかなぁ・・
0904NAME IS NULL
2005/07/04(月) 19:14:17ID:i+O5YFuY本日7月4日、下記スレを拠点に支那反日サイトへ一斉に
田代砲を発射し、 これを破壊します。参加者はいかのスレ
に参加してください。 野蛮なる支那人へ、日本の義憤を
見せつけましょう! 今夜8時に作戦会議がBARギコで開かれ
ますので、有志のみなさんは是非、お集まりください!
なお、BARギコの会議で決まったことについては、随時
このスレに書き込みます。
★拠点
【織姫と】中国バカーVS日本ビパー【彦星が呆れてる】part105
http://ex11.2ch.net/test/read.cgi/news4vip/1120396339/l50
★BARギコ
http://cgi36.plala.or.jp/bargiko/multithread/bargiko.cgi?roomID=1120318128674
★詳細情報のサイト(文字化けしているので、修正して見てください)
http://vvipper.e-city.tv/1.htm
★まとめサイト
http://vipmomizi.jog.buttobi.net/
0905NAME IS NULL
2005/07/04(月) 22:14:04ID:???0906NAME IS NULL
2005/07/05(火) 11:56:33ID:lemCV/LYその中からランダムに5件取得したいのですが、
SELECT * FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 30 ORDER BY RAND(), date_added desc LIMIT 15
こうすると、1ヶ月以内のデータをランダムしたものしかでてきません。。
逆に
SELECT * FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 30 ORDER BY date_added desc, RAND() LIMIT 15
こうすると、新しい物順に並び、同じ日付のものはランダムになってしまうだけのようです。
1つのクエリで上記の事はできないんでしょうか?
0907NAME IS NULL
2005/07/05(火) 22:34:45ID:veoPzi6O0908NAME IS NULL
2005/07/05(火) 22:52:45ID:???こんな感じでできると思う。未テスト。。。
SELECT table.* FROM table
INNER JOIN (SELECT date_added FROM test
WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) ORDER BY date_added DESC LIMIT 15)
AS x ON table.date_added = x.date_added
ORDER BY RAND() LIMIT 5;
0909NAME IS NULL
2005/07/06(水) 03:12:01ID:???ザクッと取得してプログラムでやったほうが良い希ガス。
何故そこまでSQLに拘るのか良く分かりませんが。。
0910NAME IS NULL
2005/07/06(水) 05:02:48ID:qLbhtRo3まあ無茶なSQL文1つになりそうだったら、"CREATE TEMPORARY TABLE..."構文を使って
複数回に分けた方がいいよ。
0911NAME IS NULL
2005/07/06(水) 10:39:19ID:???「一ヶ月以内」という条件で、取得行数をある程度絞り込んで取得して、
あとはプログラム的に処理した方がいい気がする。
ヘボいプログラムしか書けないならSQLの方が速いだろうけど。
0912NAME IS NULL
2005/07/06(水) 10:59:38ID:???例えば以下の SQL 文は 4.1 でしか出来ないんですけれども…
SELECT * FROM `labels` as B
join (
SELECT * FROM `users` WHERE `uid` = '10'
) as A
on (
A.users_label_id = B.label_id
);
こういう JOIN って 4.0 ではどうすればいいんですかね?
テーブル設計やり直し、は避けたいです。
0913912
2005/07/06(水) 11:19:17ID:???SELECT A.*, B.*
FROM `users` as A, `labels` as B
WHERE A.uid = 10
AND A.users_label_id = B.label_id
ですね。
0914NAME IS NULL
2005/07/06(水) 12:17:26ID:2Z06LCQ5$ ./mysql -u root -ppassword
ってするけど、このとき
-uの後ろとかにはスペースありでもなしでもいいのに
-pの後ろだけはスペース入れちゃいけない、
っていう仕様はなんか理由があるのかい?
なんかいつも気持ち悪い。
0915NAME IS NULL
2005/07/06(水) 12:57:38ID:b01Oo33D\Gではなくて、
これを
mysql> show status;
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
こんな感じにしたいです。
mysql> show status;
Variable_name Value
Aborted_clients 0
Aborted_connects 0
宜しくお願いします。
0916NAME IS NULL
2005/07/06(水) 15:09:52ID:BdQEHxskヒント:Usage: mysql [OPTIONS] [database]
0917NAME IS NULL
2005/07/06(水) 19:50:35ID:???マニュアルくらい嫁。
4.9.2. mysql(コマンドラインツール)
mysql は、以下のオプションをサポートします。
-B, --batch
結果をタブで区切り、各レコードが 1 行になるように出力する。ヒストリファイルでは使用しないこと。
0918NAME IS NULL
2005/07/06(水) 23:03:57ID:???必ず1からスタートしてますが、そこを0からのスタートにしたいです。
宜しくお願いします。
0919NAME IS NULL
2005/07/06(水) 23:28:04ID:???できません。どうしても必要なら SELECT した値から -1 してください。
0920NAME IS NULL
2005/07/07(木) 02:39:26ID:???了解!
ありがとうございます。
0921NAME IS NULL
2005/07/07(木) 14:57:03ID:???http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_38 の記述を今
になって知ったのですが、この、default-character-setって途中で変更しても
問題無いでしょうか?使用しているバージョンは
mysql-standard-4.0.21-sun-solaris2.9-sparc です。
0922NAME IS NULL
2005/07/07(木) 21:17:58ID:???既定値(default)が変わるだけなので、
変更後に作成するデータベースのキャラセットが変わる。
変更しただけでは問題ないが、
以前のデータベースはEUCでした。
ある時から、作成したデータベースはUTF-8です。
では、どこかで問題が生じるので、
よく考えてから、設定するべし。
0923NAME IS NULL
2005/07/07(木) 21:19:28ID:???書くセクションによって意味が違ってくるわけだが...
まあMySQL4.0.xなら、サーバやクライアントがエンコードの変換を
行う訳ではないので、途中で変えてデータが変な風になることはないよ。
0924NAME IS NULL
2005/07/08(金) 01:54:04ID:???どんな風に会話をすすめていけばよいでしょうか?
そこらへんのプロトコルもドキュメント化されていたりするんでしょうか?
それともソース嫁ということになるんでしょうか?
0925NAME IS NULL
2005/07/08(金) 02:39:37ID:56uVMvCRFebruary 2005 (MySQL 4.1.9)の時点の資料
http://www.redferni.uklinux.net/mysql/MySQL-Protocol.html
ver4.0までとver4.1からとでユーザ認証のプロトコルが違うので、この資料はver4.1以上が対象と見るのがよいかも。
0926NAME IS NULL
2005/07/08(金) 07:31:16ID:???http://www.pahoo.org/e-soul/privacy/atwork/atwork-012-01.shtm
0927NAME IS NULL
2005/07/08(金) 12:13:53ID:???公式のクライアントライブラリも勿論参考にしたけど、libmysqlcを使わない
PurePerlで実装されたNet::MySQLつうモジュールがあって、そのソースは大いに
参考にさせて貰った。Perlが余り読めなくても、読んでみる価値があるよ。
0928NAME IS NULL
2005/07/08(金) 13:41:02ID:xH8O0jATjdbcをつかってMySQLにアクセスしています。j-connectorは正常に機能して
いて、データベースへの接続はうまくいくのですが、select文を実行すると
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:659)
at com.mysql.jdbc.ResultSet.getNativeInt(ResultSet.java:3636)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2338)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2353)
at test.<init>(test.java:121)
at test.main(test.java:496)
というエラーが発生してしまいます。
どなたか解決方法ご教授願えないでしょうか?
0930NAME IS NULL
2005/07/08(金) 14:17:09ID:Ea/nAz46ヒント:java.sql.SQLException: Illegal operation on empty result set.
~~~~~~~~~~~~~~~~~~~~
↑
ここに注目!
0931NAME IS NULL
2005/07/08(金) 16:08:12ID:???0932930
2005/07/08(金) 16:55:41ID:Ea/nAz46いや単にSELECTの結果が0件なのにgetIntしちゃっているとか、
要するにnext()をちゃんと使えていないだけの話な希ガス
わざとそういうコード書いて走らせると同じエラーメッセージ、同じスタックトレースでるし。
0933929
2005/07/08(金) 17:10:29ID:BrFVObAD突き止めたのですよ。
rs = statement.executeQuery();
どうも上のステートメントでエラーが起こっているみたい。
rs.next();
そして、これは実行されていないみたい。
0934NAME IS NULL
2005/07/08(金) 18:02:58ID:???だから>>931の言うようにさらせよ。クエリ含めてな。
憶測言っててもしょうがないだろ?
0935NAME IS NULL
2005/07/08(金) 18:33:45ID:???ドライバも何を使ってるかさらしてないな
コネクターJだけでもいくつかあるし
0936929
2005/07/08(金) 18:50:02ID:kPMHhPk+ソースはかなり長いので一部抜粋。
ちなみにこのプログラム、別の環境では動作確認済みです。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.*;
import java.sql.*;
import java.util.*;
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost/RFID?useUnicode=true&characterEncoding=sjis";
String user = "hogehoge";
String pass = "hogehogehoge";
Connection con = DriverManager.getConnection(url,user,pass);
String get_test = "SELECT TEST FROM TEST_TABLE";
PreparedStatement statement = con.prepareStatement(get_test);
ResultSet rs = statement.executeQuery();
0937929
2005/07/08(金) 18:53:37ID:kPMHhPk+ここまででエラーが出てることがブレークポイントを使ってわかっています。
j-connectorのバージョンは今、ちょっとマシンが手元になくて申し訳ないで
すが調べられません。
0938NAME IS NULL
2005/07/08(金) 19:09:04ID:???PreparedStatementを使ってパラメータがないというあたりが疑問だけれども
ここなんか省いてるとかはない?
ドライバは古いタイプのほうを使っているね
でも、エラーメッセージは新しいほうになってるな
つーかあなたは本当に929なの?
0939929
2005/07/08(金) 21:11:43ID:rdoWizAO今投稿しているのは自宅なのでIDが変わってしまったみたいですが929です。
このあとにもこのPreparedStatement使いまわしているので、パラメータは
たまたまとっていません。
他の設定のマシンではこのプログラムは動いたので、憶測ですがMySQLの設定
がおかしいのではないかと思います。
以下はmy.iniの内容です。
0940929
2005/07/08(金) 21:13:19ID:rdoWizAOdefault-character-set=sjis
default-table-type=InnoDB
basedir=C:/mysql
#bind-address=192.168.0.4
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=root
password=hogehoge
0941NAME IS NULL
2005/07/09(土) 00:53:07ID:wvc0k73q929の人は928へ回答を試みようとしたコテハンの人だし。
0942NAME IS NULL
2005/07/09(土) 01:01:36ID:wvc0k73q文字コードの話は本件とは関係ないよ。
でもMySQL4.1.12以上ならConnector/J3.1.9以上と組み合わせて
WINDOWS-31Jを使った方が幸せになれるのは確か。
>>928>>933>>936>>936>>937>>940
なんでPreparedStatement.executeQueryでエラーが発生しているとか思ったん?
>>928のスタックトレースにはgetIntの呼び出しでエラーが発生していると示されているよ。
なんかもうぐちゃぐちゃになってない?
まずは落ち着いて整理して情報をだしてくれ〜。
0943929もとい928
2005/07/09(土) 01:45:21ID:oAtPXrFYお騒がせして申し訳ないです。
解決しました。
どうやら自分のあほなミスのせいでした。
理由はただ単に、カラのテーブルにselectをかけてそこにgetIntをかけて
いたようです。
といか、もろにerror文に書いてありますね。
返信くれた方々申し訳ない
首つってきます。orz
0944NAME IS NULL
2005/07/09(土) 02:18:16ID:Q7BBoWAaともあれ解決できてなにより。
一度首つってたらまた帰っておいでね〜。ノシ
0945929& ◆Ut.f.i5r3w
2005/07/09(土) 18:44:46ID:B2iYrnULサンクス
・゚・(ノД`)
0946NAME IS NULL
2005/07/11(月) 15:32:58ID:???>>930がすぐに答えてくれていたみたいだね。
まあ俺もそういうことがあったが、パニックの時はしかたないかもな。
ドンマイ。
0947924
2005/07/11(月) 16:39:28ID:???遅くなりましたが、ありがとうございました。目的を果たせました。
あとPerlのNet::Mysqlあたりがすごく参考になりました。
0948NAME IS NULL
2005/07/11(月) 21:02:59ID:???>>731
MySQLで差分パックアップができるんですか?
今までmysqldumpで全部ダンプしてました。
0949NAME IS NULL
2005/07/11(月) 22:17:02ID:???0950NAME IS NULL
2005/07/12(火) 01:34:32ID:6P02ZkBPmysqldumpはデータそのもののフルバックアップを行いときに使う。
バイナリログ(--binlog)は常時行う差分バックアップとして使う。
大規模ならレプリケーションもバックアップの手段の1つとして使うと良いよ。
0951NAME IS NULL
2005/07/12(火) 22:19:15ID:???レプリケーションって、バックアップという観点では、
ハードトラブルのための冗長化でないの?
バグとかのソフト系の障害では全滅と思うけど。
0952NAME IS NULL
2005/07/13(水) 01:16:23ID:aWcHVZvAMasterでInnoDBなテーブルをSlaveではMyISAMで保持したりとか、
レプリケーションのバックアップとしての利用は奥が深い。
ストレージエンジン固有の -例えばInnoDBHotBackupとか- バックアップツールというのも
あるわけだが、MySQLは全ての更新情報をbinlogとしてログを残すことができるというのが
大きな特徴でもある。
いわゆる「フルバックアップ+差分バックアップ」の考え方でいくと、単にbinlogを保存するだけだと
フルバックアップに相当するものがないけど、レプリケーションを使えば補える。
レプリケーションも、常時レプリケーションをさせるだけでなく、定期的にレプリケーションを
稼動させることで、「binlogという差分をフルバックアップに当てる」というようなやり方もできる。
MasterでInnoDBだったテーブルをSlaveでMyISAMにすることで、さらにそこから
バックアップを取ったりするのも容易になる。
↑ちょっとあまりまとまってないけれども、米国Yahoo!comとかのMySQLユーザ大手企業では
レプリケーションを中心に据えたバックアップ運用をしてるとか聞いた。
0953NAME IS NULL
2005/07/13(水) 08:05:30ID:lDu7Hvfyレプリケーションの最大の弱点は、Masterに対するDBAのオペレーティングミス。
間違えてTableをDropしちゃったりすると、もちろんそれがSlaveにも反映されてしまう。
そ、そ、そんなばかなー!!
0954NAME IS NULL
2005/07/13(水) 15:33:11ID:???0955NAME IS NULL
2005/07/13(水) 20:57:04ID:???俺も>>953のを想像したんだが、>>952の言う
間欠的にレプリケーションをさせるというのは、
俺的には新しい観点で、Masterの運用に影響もなく、
いいのかもしれないね。
0956NAME IS NULL
2005/07/13(水) 23:58:26ID:B1MsBXgZ0957NAME IS NULL
2005/07/14(木) 02:44:15ID:j1+loLddお前さんが使っているマシン(CPUアーキテクチャ)などによるのでそれだけじゃ何とも言えないね。
でもまあ、普通の32bit CPUにRedhat9.0入れているだけで、特に深い意味はない質問です、
というのなら、これなんてどうでしょう。
Linux (x86, glibc-2.2, static, gcc)
漏れ的にはRPM版よりもtar.gz版がお勧め。展開して/usr/loca/mysqlからシンボリックリンクを張れ。
0958957
2005/07/14(木) 05:38:43ID:j1+loLdd× /usr/loca/mysql
○ /usr/local/mysql
orz...
0959NAME IS NULL
2005/07/14(木) 06:12:13ID:???アップグレードはどうやるの?
0960957
2005/07/14(木) 10:31:59ID:j1+loLdd/usr/local/mysql-x-xx-xxxx
/usr/local/mysql-y-yy-yyyy
/usr/local/mysql-z-zz-zzzz
という風にバージョンごとに実体は置いておく。
今現在使いたいMySQLに対して /usr/local/mysql -> /usr/local/mysql-x-xx-xxxx という風にシンボリックリンクを張り、
基本的にはこのシンボリックリンクの切り替えだけで、どんなバージョン、あるいはどんなMySQLのセットも1発で切り替え。
PATHは/usr/local/mysql/binに通しておく。
my.cnfは/usr/local/mysql-x-xx-xxxx/dataそれぞれに書いておく。
/usr/local/mysql/data/my.cnfを読んでくれるバイナリならそれだけでOK。
/etc/my.cnfじゃないと駄目なバイナリ対策として、さらに /etc/my.cnf -> /usr/local/mysql/data/my.cnf へシンボリックリンク。
このやり方にしてから、まあ検証環境がメインだけどしょっちゅう稼動バージョン変更だとかそういうのも一発でできてるお。
この手のノウハウについては英語圏ではいろいろ本とか記事?とかでてるみたいよ。
0961NAME IS NULL
2005/07/14(木) 10:57:32ID:???で、データーベースの移行はどうやるの?
0962956
2005/07/14(木) 12:34:34ID:???どうもでありがとうです。
どこ見ても説明がみつからんもんで・・・。
CPUすんません。おっしゃるとおりで、Celeronです。
0963NAME IS NULL
2005/07/14(木) 13:54:35ID:???TBL1
+----+----+----+
|FLD1|FLD2|FLD3|
+----+----+----+
|1001|1AAA|1BBB|
|1002|2AAA|2BBB|
|1003|3AAA|3BBB|
TBL2
+----+----+----+
|FLD4|FLD5|FLD1|
+----+----+----+
|2001|1CCC|1001|
|2002|2CCC|1002|
|2003|3CCC|1002|
|2004|2CCC|1003|
|2005|3CCC|1003|
TBL2.FLD5 の 2CCC で検索した時に
Result
+----+----+----+----+----+
|FLD4|FLD5|FLD1|FLD2|FLD3|
+----+----+----+----+----+
|2002|2CCC|1002|2AAA|2BBB|
|2003|3CCC|1002|2AAA|2BBB|
|2004|2CCC|1003|3AAA|3BBB|
|2005|3CCC|1003|3AAA|3BBB|
のような感じでレコードを抽出したいんです
SELECT * FROM TBL1,TBL2
WHERE (TBL1.FLD1 = TBL2.FLD1)
AND
(TBL1.FLD1 = (SELECT FLD1 FROM TBL2 WHERE FLD5 LIKE "2CCC"))
と書いてみたんですが駄目でした
SQLをどのように書けばいいのでしょうか?
さくらのレンタルサーバー使用でMySQLのバージョンは4.0.20です
0964NAME IS NULL
2005/07/14(木) 14:30:31ID:???MySQL4.0.x系はサブクエリが使えないからツライね。
手元に4.0.x系がないので動くかどうか判らないけど、こんなもんでどうだろうか。
SELECT DISTINCT
tbl2.fld4, tbl2.fld5, tbl2.fld1, tbl1.fld2, tbl1.fld3
FROM tbl2
LEFT OUTER JOIN tbl1 ON tbl2.fld1 = tbl1.fld1
LEFT OUTER JOIN tbl2 AS t ON tbl2.fld1 = t.fld1
WHERE tbl2.fld5 = '2CCC' OR t.fld5 = '2CCC'
0965802
2005/07/14(木) 16:08:19ID:bLVhDXNBnot null を指定してても、insertなどでそのカラムを指定し忘れた場合でもエラーが出ません。
create table test(
i int not null,
c char(1) not null,
v varchar(10)
);
insert into test(v) value("a"); # エラーは出ない。
こういった場合にはエラーが出るようにテーブルを作るにはどのようにしたら良いのでしょうか?
0966NAME IS NULL
2005/07/14(木) 16:29:43ID:???え〜と思って調べてみたらその動作は正しいみたいだね。知らんかった。。。
MySQLのビルド時に指定しておかないとダメっぽいね。
この辺りを参照してみてくだされ。
http://dev.mysql.com/doc/mysql/ja/constraint-not-null.html
MySQL5.0.2以降はmysqldの起動パラメータで設定できるみたいだけど、
現状ではアプリケーション側で対処するしかないみたいだね。
0967NAME IS NULL
2005/07/14(木) 19:40:08ID:???これってつまり何をやってるん?
0968965
2005/07/14(木) 20:01:22ID:bLVhDXNB有難う御座います。そうなんですね...。
アプリ側で考えます。
0969963
2005/07/14(木) 20:06:38ID:???ありがとうございます
JOINを使って結合していくんですね
うまく抽出が出来ました
>>967さん
人事関係のデータベースで個人情報の部分のテーブルと取得資格のテーブルが分かれていて
○○の資格を持っている人の一覧だけなら取得資格のテーブルとの結合だけで良いんですが
○○の資格を持っている人は他にどんな資格を持っているかも表示を行いたかったんです
資格○○を持っている人の情報
<NAME>□□□</NAME><SKIL1>○○</SKIL1><SKIL2>▽▽</SKIL2>
<NAME>▲▲</NAME><SKIL1>○○</SKIL1>
こんな感じです(^-^;
0970NAME IS NULL
2005/07/14(木) 20:19:28ID:???どーでもよい話だが人事関係のDBをさくらのレンサバに預けるのも
ある意味凄いな。怖くないか?
0971NAME IS NULL
2005/07/14(木) 22:52:11ID:???本番データは、MySQL本体とは別の共通ディレクトリに
置けばいいじゃん。
0972NAME IS NULL
2005/07/15(金) 02:06:21ID:0pzFxJt7データとサーバのバージョンは分けて考える。>>971のいうように共通ディレクトリがいいのかも。
4.0系から4.1系にあげるときのようにファイルフォーマットが代わる場合には新しいディレクトリが必要。
(確か変わるよね?)
0973NAME IS NULL
2005/07/15(金) 09:19:06ID:???逆だとあんまり良くないけど。
0974NAME IS NULL
2005/07/15(金) 12:02:10ID:???0975NAME IS NULL
2005/07/15(金) 21:27:08ID:y8eO46wKカラムごとに作ってみたのですが、
create table csv(
_1 varchar(255),
_2 varchar(255),
_3 varchar(255),
・・・
);
と、どんどん増やして sql を発行したら以下のように怒られてしまいました。
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
まあ、そりゃそうだなという感じなのですが、csvを保存するのに何か良い案は無いでしょうか?
(mysql 4.1.11)
0976NAME IS NULL
2005/07/15(金) 22:04:56ID:???中古のテーブルタイプに、最大の列のサイズは65535です。 あなたはいくつかのコラムを
TEXTかBLOBsに変えなければなりません。
0977NAME IS NULL
2005/07/15(金) 22:31:21ID:???0978NAME IS NULL
2005/07/15(金) 22:42:50ID:???ん? 現に使ってますが。
ISAM形式の奴が残ってて、それだけは駄目だったけど。
(コンパイルオプションに入れなかったから)
ま、いまさらISAMなテーブルが残ってるほうが問題ですが。
0979NAME IS NULL
2005/07/15(金) 22:52:40ID:???野暮なツッコミで申し訳ないがcolumnをコラムと読もうがカラムと読もうがどっちでもいい。
DB界隈ではカラムと読む方が一般的だけど。
0980NAME IS NULL
2005/07/15(金) 23:13:58ID:???マルチバイトキャラクタがテーブル名や列名にはいると互換性なくなってなかったか?
0981NAME IS NULL
2005/07/15(金) 23:21:23ID:???読む場合はどっちでもいいけど、書くときはコラムだと嫌だな
0982NAME IS NULL
2005/07/16(土) 01:09:44ID:???■関連スレは
http://find.2ch.net/index.php?BBS=ALL&TYPE=TITLE&STR=MySQL&COUNT=50
で手抜きしていいんでないの
0983NAME IS NULL
2005/07/16(土) 03:21:45ID:???自動的に次のレコードを表示させる・・・ような関数って無い?
0984NAME IS NULL
2005/07/16(土) 09:39:37ID:???コーディングするとき面倒くさいから。
0985NAME IS NULL
2005/07/16(土) 14:23:36ID:???こう言う場合は primal key ってどうすればいいんでしょうか?
Oracle 使いに聞いたら、循環する int を使えと言われたんですが、
MySQL にそんなのありますか??
0986NAME IS NULL
2005/07/16(土) 16:18:24ID:GKvS+qiJauto_incrementを使う
0988NAME IS NULL
2005/07/16(土) 18:00:31ID:???0989NAME IS NULL
2005/07/16(土) 23:19:48ID:NbSXfESe登録したら、データが壊れて登録してしまいます。
どのようにデータを登録すればいいのでしょうか?
0990NAME IS NULL
2005/07/16(土) 23:23:47ID:???どのようなデータを登録すると、どのように壊れたデータが
登録されたのかを書きなはれ。世の中エスパーばかりでは
ないんで。
0991NAME IS NULL
2005/07/16(土) 23:31:06ID:???0992NAME IS NULL
2005/07/16(土) 23:32:32ID:???嘘つくな。
0993NAME IS NULL
2005/07/16(土) 23:33:07ID:???CREATE TABLE example (
date date not null,
uid int unsigned not null auto_increment,
unique (date, uid)
)
とかは?
0994989
2005/07/16(土) 23:35:02ID:???文字列(文字コードEUC-JP)
「東京都|大阪府|愛知県」
SELECTで表示させたデータ(文字コードEUC-JP)
「東??」
ブラウザで見ると、?と黒い菱形の中に?があるものが所々ある。
単純に文字コードがEUCではなくて、UTFとかで入っているのかと
思ったけど、そうではないみたい(色んな文字コードに変換してみたけど駄目だった)
0995NAME IS NULL
2005/07/17(日) 01:25:40ID:???0996990
2005/07/17(日) 06:08:59ID:???MySQLサーバーとクライアント間の文字コードが合っていないと
思われ。
PHPでMySQLに接続後、SET NAMES UJISを送る処理を追加すれば
直ると思うよ。
0997NAME IS NULL
2005/07/17(日) 09:46:26ID:???MySQL 総合 Part5
http://pc8.2ch.net/test/read.cgi/db/1121561160/
0998NAME IS NULL
2005/07/17(日) 12:34:49ID:???0999NAME IS NULL
2005/07/17(日) 12:42:18ID:k8NW5frL1000NAME IS NULL
2005/07/17(日) 12:42:55ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。