X



MySQL 5.0

0001シナイ山
垢版 |
04/04/13 10:02ID:???
このスレッドの執筆時には、まだバージョンもアルファ段階で正式リリースされる
まで程遠いが、これから新しい機能を試してみたいとかボラクルに取って代わり
低コストで次世代データベース開発のために利用したいエンジニアは今こいう時だから
こそver.5.0に着目したいところだ。

5系がまだアルファ段階だからといって敬遠するの良いが、テストマシン上で独自に開発を
して、テストマシン等で実運用するのも一つの道であろう。

開発の成果は、MySQLやOpenBSDに随時報告することが重要だ。
0283NAME IS NULL
垢版 |
2008/05/07(水) 20:05:47ID:NtT1LWDm
thx >>282

明日やってみるYO!!!
0284NAME IS NULL
垢版 |
2008/05/08(木) 01:32:56ID:???
shutdownして再び動かそうとしたら
プロセス残ってるよとか言う意味のエラーが出て起動できねえ糞
0285NAME IS NULL
垢版 |
2008/05/08(木) 01:58:43ID:???
>>284
pid ファイルが残ってるんじゃないの
0286NAME IS NULL
垢版 |
2008/05/08(木) 02:07:58ID:???
>>285
pidファイル探したが見つからなくて途方に暮れてる
0287286
垢版 |
2008/05/08(木) 02:08:34ID:???
リブートしたら治るかなあ
0289286
垢版 |
2008/05/08(木) 02:54:58ID:???
linuxです
MySQL3と4を共存させてます
0290NAME IS NULL
垢版 |
2008/05/08(木) 04:02:33ID:???
strace してみて、エラーメッセージ直前でどんなシステムコールを発行しているか
見てみると良いかもね。特に fstat とか open 辺りを中心に。pid ファイルなら
それで見つかると思う。

あとは普通に mysqld のエラーログを端から眺めてみるとか。
0291286
垢版 |
2008/05/08(木) 16:22:54ID:???
それっぽいpidファイル見つかったけど中身のプロセスidは
psで確認してみたら動いてるっぽいし…(すでにmysql3が動いてるのでそれの?)
0292286
垢版 |
2008/05/08(木) 16:26:43ID:???
言い忘れてましたがすでにMySQL3は動いています
起動できないのはMySQL4です
0293NAME IS NULL
垢版 |
2008/05/08(木) 17:00:06ID:???
>>292
新しいほう(v4)のcnfで、data_dir、pidの場所、mysql.sockの場所、bindするPort
全て異なる設定にする。
0294286
垢版 |
2008/05/08(木) 17:26:53ID:???
>/var/lib/mysql4/bin/mysqld_safe -u root -p -P3307 --defaults-file=/var/lib/mysql4/data/my.cnf --pid-file=/var/lib/mysql4/data/mysql4.pid --datadir=/var/lib/mysql4
>Starting mysqld daemon with databases from /var/lib/mysql4
>STOPPING server from pid file /var/lib/mysql4/data/mysql4.pid
>080508 17:25:20 mysqld ended
orz...
0295286
垢版 |
2008/05/08(木) 17:48:37ID:???
MySQL4はあきらめてで5を入れて試してみます。
回答してくれた方ありがとうございました。
0296NAME IS NULL
垢版 |
2008/05/08(木) 18:08:56ID:???
>>295
> /var/lib/mysql4/bin/mysqld_safe ・・・・
のところの、-u root いらない。(ってか、確かroot権限でmysqldは起動できないはず)

あと、--defaults-file= 指定するなら、その後ろ側にある各種コマンドラインオプションも.cnfに書いてしまえ。
もうひとつ、予想だけど、/var/lib/mysql4 はほんとにdatadirかな?/var/lib/mysql/dataではなくて?
0297286
垢版 |
2008/05/08(木) 19:30:41ID:???
>もうひとつ、予想だけど、/var/lib/mysql4?はほんとにdatadirかな?/var/lib/mysql/dataではなくて?
そのとおりでした。/var/lib/mysql4/dataでした
ただ、そのへんを直しても同じエラーでこけるっす・・・
0298NAME IS NULL
垢版 |
2008/05/08(木) 20:00:48ID:???
>>297
もう少しエスパーしてみる。

そのPathからして、多分ソースから、--prefix=/var/lib/mysql4 としてコンパイル&インストールしたんだと思われるけど、
まず、動いてるほうのmysql3を止めてから、4のほうを起動出来るか試してみる。(cnfは二つ目起動させる設定で)

それで起動出来なければ、単独とか2つ同時起動とか関係ない。そもそも起動の仕方が間違ってる。
で、予想としては、mysql権限テーブルが作成されていないとか、datadir以下のパーミッション絡みかな。
ここら辺は詳しくは、本家のmanualなりdocument見てくれ。
ここいらがわかってないと、5.0入れても多分起動できない。

逆に、上の段階で起動出来てしまったら、原因ようわからん。(オレではお手上げ)

ちなみに、ウチの環境で、>>293の通り即席でやってみたら、2つ同時起動はできた。(v4とv5でだけど)
ちゃんと別々に動作してるのも、ps と それぞれにconsolから接続して確認した。
0299286
垢版 |
2008/05/08(木) 22:11:46ID:???
すみません、上司と相談した結果MySQL4をアンインストしてMySQL5を入れることになりました
それでmysqld_safeで無事起動できました
結局大本の問題は解決できませんでしたが色々相談に乗ってくださってありがとうございました
0300NAME IS NULL
垢版 |
2008/06/02(月) 21:37:17ID:???
エスパーですまん。
なにがなんだかわからん。


同じテーブルをアクセスしているが
PHP経由は大丈夫で
突然、JDBC でおかしくなった。

昨日までOKだった。

OS再起動までした。

以下、mysql.log


080602 21:23:40 5 Connect root@localhost on
5 Query SET NAMES ujis
5 Init DB test
5 Query select * from tab1 order by number
5 Quit
--------------------------------------------------------------------↑ PHP で接続
--------------------------------------------------------------------↓ JDBC
080602 21:29:04 6 Connect root@localhost on test
6 Query 闃爿931,蹌/..%#4/2蹣!6!逡鉐鉚琥爛6)3)/.篁36.逎6)3)/.=珸 閠
玻!2)!",%.!-%瓔膃!.'5!'%艢燹2)!",%.!-%瓔瑯.%472)4%4)-%/54艢燹2)!",%.!-%瓔瑯).4%2!#4)6%4)-%/54艢燹2)!"
,%.!-%瓔瑯7!)44)-%/54艢燹2)!",%.!-%瓔瑯#(!2!#4%23%4#,)%.4艢燹2)!",%.!-%瓔瑯#(!2!#4%23%4#/..%#4)/.艢燹2)!"
,%.!-%瓔瑯#(!2!#4%23%4艢燹2)!",%.!-%瓔瑯#(!2!#4%23%43%26%2艢燹2)!",%.!-%瓔瑯48)3/,!4)/.艢燹2)!",%.!-%瓔瑯42!.3!#4)/.)3/,!4)/
以下 カット

なにか ヒントでいいからお願い。
0301NAME IS NULL
垢版 |
2008/06/02(月) 21:44:48ID:???
経過

他のJDBC アプリでログが出力されていたので

アプリのソースってことがわかりました。

しかし、ゴミになるってことはなに?ソースを追うしかないのか?
0302NAME IS NULL
垢版 |
2008/06/02(月) 22:30:25ID:???
自己れす 解決

connect まではログにでているので、select 文を べた書きにしてうまく流れたので
元に戻して 確認。

jdbc のバージョンがでるところからおかしくなっていたのでJDBCなのか?

そうなのか?
0303NAME IS NULL
垢版 |
2008/06/07(土) 04:02:12ID:???
質問させて下さい。

これまで、Linux上で動作させていたphpスクリプトをWindowsに以降しようとしているのですが
phpからMySQLにINSERT文を行ったのですが、文字化けしてしまいます。
どうすれば直りますでしょうか?

・WindowsXP(Pro)
・php-5.2.5-Win32.zip
・mysql-5.0.45-win32

1※
mysql> SET CHARACTER SET SJIS;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'character_set%';

| Variable_name | Value
| character_set_client | sjis
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\c
0304303
垢版 |
2008/06/07(土) 04:09:00ID:???
続きです。

2※phpスクリプト内部でINSERT文を実行する前に次のコードも入れています。
  mysql_query('set character set sjis',$dbHandle)
3※組み立てられたSQLを画面上に print(""); で確認すると正常に日本語が入力されています。
4※MySQLのデータ操作を行う際にCSEも使っているのですが、CSEよりテーブルを開き直接日本語
 を登録すると、その値は正常に日本語で登録されています。しかし、phpにて一覧出力すると ??? という
 具合に文字化けしてしまいます。


あと、追加で質問させて頂きたいのですが、コマンドラインからMySQLを再起動するには
何というコマンドを実行すればよいのでしょうか?ぐぐっても中々ヒットしませんでした。
因みに、GUIツールとして MySQL Query Browserを使用しているのですがここから再起動とかも出来る
のでしょうか?
0305NAME IS NULL
垢版 |
2008/06/07(土) 06:46:22ID:???
>>303,304
まず、my.iniの設定から見直してみよう。
その show variables の結果から、サーバがLatin1で起動されてるのが分かる。
create databaseやcreate table時の指定が分からんからなんともだが、そのまま作成したとしたなら、
仮に、"set names cp932"したところで、変更されるのは"connection"と"client"のみ。
なので、mysqldがデータを受け取った時に、内部の保存コードである"latin1"に変換をかけてしまう。
そこで、当然cp932(ms-sjis)はlatin1にマップ出来ないので文字列が壊れる。
回避策は、以下の件とも絡むので後述。

> コマンドラインからMySQLを再起動するには
の件だけど、恐らく、>>303のpathから見て、インストーラでデフォルト設定でinstallしたんだろうけど、
それだと多分、Windowsのサービスに登録されてるはず。その場合はDos窓から、
nat start mysql (mysql5かも?) で起動、
net stop mysql (同上) で停止。
多分自動起動になってると思われるから、Winを立ち上げると同時に起動してるはず。
コントロールパネル→管理ツール→サービスからでも起動、停止が行える。
(QueryBrowser等GUIツールは使ったことないんで、ようわからん。すまん)

起動だけなら、install_pathのmysqld-nt.exeをダブルクリックか、Dos窓から、直接そのmysqd-nt.exeを叩けばよい。
停止は、install_path/bin/mysqladmin shutdown で。
0306305
垢版 |
2008/06/07(土) 06:46:57ID:???
続き

で、その起動時にオプションで、設定ファイル(my.ini)を読み込ませたり、charset他各種設定オプションを渡したりできる。
サービス登録の場合も、上記の「管理ツール」→「サービス」から、起動時のコマンドラインオプションを設定できる。

なので、charset等適切に編集したmy.iniを読み込ますように起動させればよい。
具体的な設定方法などは、本家のManual等を参照してくれ。

ちなみにWin版のバイナリ版phpは、php_mysql.dllがlatin1でコンパイルされてるので、
上記のことをやってなお、接続時に全てのクエリの前に "set names cp932" 等の処置が必要。
又は、上記の設定ファイル中で書くやり方もある。
それでは、がんばってくれ。
0307306
垢版 |
2008/06/07(土) 06:54:54ID:???
ごめん。一つうそついてしまった。
php_mysql.dllじゃなくて、正確にはmysqlに付属のlibmysql.dllが、
デフォルトコードLatin1でコンパイルされているの間違い。
(まあ、phpバンドルのlibmysql,dllも同じことなんだけど)
0308303
垢版 |
2008/06/07(土) 15:37:12ID:???
>>305さん
ご丁寧にレスありがとございます。
色々とお教え頂いた様に試してみたのですが相変わらず、文字化けしてしまします。


1.my.ini
[client]
default-character-set=sjis

[mysql]
default-character-set=sjis

[mysqld]
default-character-set=sjis
skip-character-set-client-handshake


2.文字コード
mysql> SHOW VARIABLES LIKE 'char%';
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\

0309303
垢版 |
2008/06/07(土) 15:43:13ID:???
続きです。

3.php内部での文字コードの設定部分
mysql_query("SET NAMES sjis");

4.phpでテーブルより取得した値をsjisに変換した上で画面に出力
while($row = mysql_fetch_array($rs))
{

  /* 内部文字エンコーディングからSJISに変換 */
  $str = $row["NAME"];
  print("文字チェック1:[ ".$str." ] <br/>");
  $str = mb_convert_encoding($str, "SJIS");
  print("文字チェック2:[ ".$str." ] <br/>");

↓出力結果
文字チェック1:[ ?????l ]
文字チェック2:[ ?????l ]


0310303
垢版 |
2008/06/07(土) 17:57:02ID:???
自己解決しました。

・・・MySQLってなかなか一癖ありますね。。。
思わぬ落とし穴がありました。

0311NAME IS NULL
垢版 |
2008/06/08(日) 04:27:00ID:???
>>310
どう解決したかを書かないと意味がないだろ。
自分がよければそれでいいのかい?

とりあえず文字コードを多重変換して嵌ってたんだろうと推測しとく。
0312NAME IS NULL
垢版 |
2008/06/08(日) 15:15:06ID:???
>>311
良いよ
だって自己解決したんだし。
0313NAME IS NULL
垢版 |
2008/06/13(金) 12:07:29ID:???
質問です。

PHPとMySQLの連携を考えており、DBに接続して
PHPから表示させることは出来ました。
SELECT文についての質問ですが、今現在以下の通りになっています。

SELECT * FROM wp_posts WHERE ID = 30 OR ID = 190 OR ID = 170 ORDER BY ID DESC

これをPHPでwhileを使って縦に順番に表示すると、
ID=190、ID=170、ID=30の順番で書き出されました。

この表示する順番を、一番上からID=30、ID=190、ID=170と、
SELECT文に記述されたIDの順番通りに表示するには、どうすればよいでしょうか?
なにかいい案がある方、いらっしゃいましたらご教示下さい。
0314NAME IS NULL
垢版 |
2008/06/13(金) 12:35:19ID:???
select * from wp_posts order by (case ID when 30 then -3 when 190 then -2 when 170 then -1 else ID end) asc;
0316NAME IS NULL
垢版 |
2008/07/12(土) 01:40:35ID:???
MySQLはXen上では使えないんですか?

CentOSのDomU上でMySQL5を使っておりますが、
Buffer I/O error とやらが大量に出てきて、ファイルシステムが落ちます。
再現するのはMySQLが動いている時だけなので、MySQLが原因とみて間違いないと思います。
ディスクもディスクイメージも壊れていませんが。。。メソメソ
0317NAME IS NULL
垢版 |
2008/07/13(日) 22:11:33ID:???
>>316
configureのときに--skip-bdbだったかな。
0318316
垢版 |
2008/07/14(月) 00:34:32ID:???
>>317
ありがとう。試してみる。
0320NAME IS NULL
垢版 |
2008/07/15(火) 22:00:56ID:???
>>319です。自分でも調べてみようかと思いソースを覗いてみたら crypt=4 (or "sha1") で
SHA1 が使えたみたいなのでこれを使ってみることにします。

# と思ったら Web に書いてないだけで README に書いてあったorz
0321NAME IS NULL
垢版 |
2008/08/02(土) 18:51:16ID:ag3OZJze
4に戻したいですぅ
0322NAME IS NULL
垢版 |
2008/09/06(土) 16:57:02ID:???
gooでも質問したのですがこちらでも質問させてください。

CentOS 4.6 に MySQL 5.0系をインストールして
port 80番で運用したいと考えています。

ところが、ポート80を指定して起動させると
以下のエラーになり、起動できませんでした。

mysqld started
InnoDB: Started; log sequence number 0 43655
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied
[ERROR] Do you already have another mysqld server running on port: 80 ?
[ERROR] Aborting

80番を使用する http は停止させており、
iptables を停止させてもダメでした。

別のシステムで CentOS をインストールした直後のものに
MySQL をインストールしても同じ状態でした。

ちなみにMySQL 4.1 系では同じ条件下の環境で
my.cnf の[mysqld] で「 port = 80 」を
指定するだけで起動できました。

MySQL は CentOS のサイトからSRPMパッケージを取得し、
i686オプションを指定してリビルドしたものを使用しています。


今まで行ったのは次の通りです。
・コンフィギュアオプションをデフォルトでインストール。
my.cnf の[mysqld] で「 port = 80 」を指定。
・specファイルのコンフィギュアオプションに
「--with-tcp-port=80」を指定してリビルド。


サーバの環境は以下の通りです。

CentOS 4.6
MySQL 5.0.54(SRPM から RPM を作成してインストール)
インストールしたパッケージ
mysql-libs-5.0.54-1.el4.centos
mysql-5.0.54-1.el4.centos
mysql-devel-5.0.54-1.el4.centos
mysql-server-5.0.54-1.el4.centos


どなたかおわかりの方、情報をお願いできませんでしょうか。
よろしくお願いいたします。
0323NAME IS NULL
垢版 |
2008/09/06(土) 17:47:53ID:???
1024未満のポートを使うにはroot権限が必要だから
どうしても80番を使いたければ
iptablesのNAT機能を使って80から3306へ変換しなさい
80番を使う動機を推測すると、たぶん外に公開したいのだろうから
stunnelやstoneなどのSSLプロキシを使うと更によいと思う
0324NAME IS NULL
垢版 |
2008/09/06(土) 17:50:16ID:???
rootじゃないと80番は使えないんじゃ
0325NAME IS NULL
垢版 |
2008/11/10(月) 23:47:11ID:4lZdswNB
DBから値が取得できません。下記の設定のどこがまずいのでしょうか?
エラーにもなりません。教えてください。
【web.xml】
<web-app>
<resource-ref>
<res-ref-name>aiueo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
【server.xml】
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/testtest" docBase="testtest" >
<Resource name="aiueo" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="aiueo">
<parameter>
<name>username</name>
<value>myusername</value>
</parameter>
<parameter>
<name>password</name>
<value>mypassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql//localhost/testdb?autoReconnect=true&characterEncoding=ujis</value>
</parameter>
</ResourceParams>
</Context>
</Host>
0326NAME IS NULL
垢版 |
2008/12/03(水) 07:14:35ID:Tn2R8xLf
configureコマンドで、with-mit-threadを指定する場合と指定しない場合で何が違うのでしょうか?

自分の理解としては、with-mit-threadを指定するとOSが提供しているスレッドを使って、
with-mit-threadを指定しない場合は、MySQLが提供しているスレッドの仕組みを使うという認識なのですが、あってますでしょうか?

ちなみにOSは、FreeBSD5系なのですが、どっちにしたほうがいいとかありますでしょうか?


0327NAME IS NULL
垢版 |
2009/02/21(土) 15:56:28ID:fHAIG+ux
>MySQLが提供しているスレッドの仕組みを使うという認識
ちがうよ。
0328NAME IS NULL
垢版 |
2009/03/28(土) 15:52:58ID:???
MySQL初心者です。

テーブル名が(なぜか)小文字で作成されてしまった様なので
テーブル名を大文字に変更しようと思い、次のクエリを実行したのですが
一向に大文字になりません。一体何が原因なのでしょうか?

ALTER TABLE test_table RENAME TO TEST_TABLE
0329NAME IS NULL
垢版 |
2009/03/28(土) 16:41:02ID:???
PHP5 / MySQL5.0を使用して簡単なデータベース登録
システムを作っているのですがどうやっても
日本語を登録すると文字化けして困っています。
どうすれば日本語が登録出来ますか?
※WindowsXP Pro

【C:\my.cnf】
[client]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[mysqld]
default-character-set=sjis

【C:\Program Files\MySQL\MySQL Server 5.0\my.ini】
default-character-set=sjis
[mysqld]
default-character-set=sjis
※基本このファイルの中にある「utf8」は全て
「sjis」に置き換えました。
0330NAME IS NULL
垢版 |
2009/03/28(土) 22:05:16ID:???
>>328
OSはlinux? MySQLのテーブル名はそのままファイル名になるから
Windowsみたいにファイル名が大文字小文字区別しない環境だと
MySQLからも区別できないよ
0331NAME IS NULL
垢版 |
2009/03/28(土) 22:10:47ID:???
>>329
PHPは使ってないけど、PHPのMySQLライブラリは my.cnf 参照してないって
聞いたことがある。デフォルトの laten1になるはず。
サーバの設定変更していいなら [mysqld] に skip-character-set-client-handshake を書くか
クライアントでなんとかしたいなら接続語に set names cp932 を投げたらいい。
ちなみに sjis は 4.1 以降では使わないほうがいいよ。 より広い cp932 で。
0332329
垢版 |
2009/03/28(土) 22:55:14ID:???
>>330 >>331
レスありがとうございます。結論から言うと正常に日本語も登録されていました。
しかしCSEでのぞいていた為に文字化けしている様に見えただけでした。
odbcの文字コードの設定を sjis にしたら無事CSEからでも文字化けせずに見る
事が出来る様になりました。
0333NAME IS NULL
垢版 |
2009/03/29(日) 19:39:13ID:???
TimeStamp型で定義したテーブルからデータを取得し、取得したデータを
として取得するにはどうすれば良いでしょうか?

2009-03-25 14:06:15
 ↓
2009年03月25日 14時06分15秒
0335NAME IS NULL
垢版 |
2009/03/29(日) 23:36:13ID:???
>>333
そういう処理はSQLでやるべきでない。
0336NAME IS NULL
垢版 |
2009/03/30(月) 00:23:52ID:???
>>335
いやPHPでやる位ならSQLで一発でやりたいのです。
何か方法はありませんか?

0337NAME IS NULL
垢版 |
2009/03/30(月) 00:42:31ID:???
>>336
おまえみたいな人間は生きているべきでない。
0338NAME IS NULL
垢版 |
2009/03/30(月) 01:06:23ID:???
>>336
手荷物預かり所で「あのう、このカバンの色を変えたいのですが」と言ってるのと同レベル
0339333
垢版 |
2009/03/30(月) 01:13:56ID:???
で結局やる方法は無いの?
0340NAME IS NULL
垢版 |
2009/03/30(月) 02:18:03ID:???
やる方法はある
でも多分PHPで書くより遅い

mysql> select concat(year(c1),'年') from (select now() c1) v;
+------------------------+
| concat(year(c1),'年') |
+------------------------+
| 2009年 |
+------------------------+
1 row in set (0.00 sec)
0342NAME IS NULL
垢版 |
2009/03/30(月) 02:43:09ID:???
>>340
???
てっきりSQLでやった方が速いと思ってたのですがPHPの方が速いのですか?
それはなぜなのでしょうか?
あと、SQLサンクスです。


>>341
ちょっとリファレンスを見てみます。
0343NAME IS NULL
垢版 |
2009/04/13(月) 16:46:07ID:H6WHEd1c
オートインクリメント有りのテーブルにレコードを入れた直後に
それが何番に入ったかを知る方法ある?
0344NAME IS NULL
垢版 |
2009/04/13(月) 17:14:42ID:???

口の聞き方に気をつけろ
0345NAME IS NULL
垢版 |
2009/04/14(火) 11:11:22ID:9P4yOkB6
質問させてください。
id(ユニーク)とcount の二つのカラムがあるテーブルがあったとして、
このテーブルに入っているレコードをcountでorder by したあと、特定のid、例えばid=10 の前後5個分のレコード(つまり、id=10を入れて11個のレコード)を取得したいとき、どのようなSQLを発行すればよいでしょうか??
ご教示頂けると幸いです。
0348NAME IS NULL
垢版 |
2009/04/21(火) 22:28:27ID:SBmgavX0
SELECT LAST_INSERT_ID();
0349NAME IS NULL
垢版 |
2009/04/21(火) 23:49:08ID:???
買収されてしまいました
0350NAME IS NULL
垢版 |
2009/04/22(水) 00:03:09ID:???
どうなるんだろうね
つぶされちゃうのかな
0351NAME IS NULL
垢版 |
2009/04/22(水) 01:34:01ID:???
今更潰すは、さすがに考えにくいんじゃないの。
ポスグレに持っていかれるくらいなら、撒き餌として残すだろ。。たぶん。
0352NAME IS NULL
垢版 |
2009/04/22(水) 17:41:38ID:???
mysqlはoracleの下位バージョンとして開発し
その上位バージョンとしてoracleを持ってくることで
フリーと商用のシェア拡大を目指す
0353NAME IS NULL
垢版 |
2009/04/22(水) 23:11:23ID:???
MySQLの次期バージョンを出したり将来のビジョンを提示したりして
今後も発展するんだ、安心だ、と思わせといて飼い殺す。
0354NAME IS NULL
垢版 |
2009/04/23(木) 05:37:34ID:???
oracleもタダで使う方法もあるしな
0355NAME IS NULL
垢版 |
2009/04/23(木) 10:48:53ID:???
win版の5.0.77-community-ntですがCSVエンジンを利用するにはどうすれば良いですか?
show enginesでNOになってます。
0356NAME IS NULL
垢版 |
2009/04/28(火) 01:22:42ID:+/FWF+FK
MySQLのオラクルマスターを作ればMySQLに力を入れる
MySQLのオラクルマスターを作らないならMySQLに力を入れない
0357NAME IS NULL
垢版 |
2009/04/28(火) 08:46:32ID:aHnBfSXl
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
にして、mysqlを二個立ち上げて、両方から
BEGIN;
して、片方で適当にINSERTしてコミットしてないのに、もう片方からは
SELECTするともう見えてるんだけど、これでいいのでしょうか?
テーブルはInnoDBで作ったけど。

0358NAME IS NULL
垢版 |
2009/04/28(火) 08:58:40ID:???
よくないよ
どこか間違ってるよ
0359NAME IS NULL
垢版 |
2009/04/28(火) 09:00:39ID:aHnBfSXl
>>358
最初に両方からSelectをやっとくと、その後片方がINSERTしたのがもう片方からすぐに
見えるんだけど、なにか間違ってるんでしょうか?
0360NAME IS NULL
垢版 |
2009/04/28(火) 15:24:24ID:???
■セッション1
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
Empty set (0.00 sec)

■セッション2
mysql> set transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
Empty set (0.00 sec)

■セッション1
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test values (1);
Query OK, 1 row affected (0.00 sec)

■セッション2
mysql> select * from test;
Empty set (0.00 sec)

みえないよ?
0361NAME IS NULL
垢版 |
2009/04/28(火) 22:31:31ID:???
>>359
テーブルが InnoDB じゃなくて MyISAM になってるとか。
0362NAME IS NULL
垢版 |
2009/05/01(金) 01:09:50ID:vXvzRfg3
すいません質問させてください。

http://q.hatena.ne.jp/1179443422
このページと同じ質問なのですが、やはり3番のsqlがベストなのでしょうか??
「特定のカラムの値がそのテーブルの特定の条件のもとで最大値を有しているレコードをselectする」というのが割と簡単にできるのではないかと思っていたのですが、
ここの回答のように副問い合わせするのが一番無難な感じなのでしょうか?
order by xx desc limit 0, 1
も試してみましたが、全レコードをsortするためか、副問い合わせを使ったものよりレスポンスが遅めでした。(レコードが10万件くらいある。。)
アドバイス頂けると幸いですm(_ _)m
0363NAME IS NULL
垢版 |
2009/05/01(金) 03:24:22ID:???
>>362
Table構成がそのはてなの質問と同じとして、id及びgoods_idに
複合インデックスが貼ってあり、それがユニークか、Hit率がテーブル全体のレコード数より
十分少なければ、order by descが早いんでないかな。
もっと言うと、INDEX(id,goods_id,date)で複合インデックスがあればなおよし。

でなくて、idとgoods_idの値が、レコード全体の多くにHitしてしまう場合は、
そこにあるようにサブクエった方が早そうな感じ(もちろんdateにインデックスが貼ってあるとして)。
0364NAME IS NULL
垢版 |
2009/05/01(金) 17:12:12ID:???
質問ですが、

以下の感じでやろうとしてます


select 学生id ,出席日数,出席率 from 学生名簿
left join 
(select sum(出席) as 出席日数 , sum(round(出席数/365,2)) as 出席率 ,学生id from 出席簿
 where 学生id in ( select 学生id from 学生名簿 order by 学生名 limit 0,50) group by 学生id) as 出席データ on 出席データ.学生id=学生名簿.学生id
order by 学生名 limit 0,50

学生名簿(カラム):学生id(primarykey),学生名
出席簿(カラム):学生id,日付,出席(enum(1,0))

limitができれば高速になるんですが、ないとusingfilesortになります。
mysqlでサブクエリにlimit発行できないので、なにかいい方法があればご教授願います。
0365NAME IS NULL
垢版 |
2009/05/01(金) 19:05:41ID:???
俺なら、状況に応じて以下のどれかで対応する。

・クエリキャッシュをアテにする
・バッチで予め計算しちゃう
・クエリを分割する
・テーブル分割をやめる
・全部抜いてから計算する
・そもそも高速化する必要があるか考える
0366NAME IS NULL
垢版 |
2009/05/02(土) 00:09:29ID:???
なあ、ちょっと真剣にマジで教えてほしい
あるデータベースのプライマリキーをキャラクタ属性で設定することのデメリットって何だと思う?
キーはINTにすんのが検索も早そうだし、多分そうなのかも知れんが納得できる理由がはっきりしない
まあCHARだとコレーションで正しくソートされない可能性があったりCOUNTが正しくされないのかも知れないけど
現場レベルでは盲目的に数値型にしてるような気もすんだよね
何か論理的な理由を聞かせてもらえないか?
0367NAME IS NULL
垢版 |
2009/05/02(土) 00:12:02ID:???
>>366

あんたの現場がすべてではないよ。

単にDB設計をさぼってるだけで、
安易に一意になるものということで連番振ってるだけでしょ。

0369NAME IS NULL
垢版 |
2009/05/02(土) 00:36:49ID:???
>>364
>( select 学生id from 学生名簿 order by 学生名 limit 0,50)
一見するとこれいらないと思うんだが。
0370NAME IS NULL
垢版 |
2009/05/02(土) 23:21:14ID:iDaEn/bV
3つのテーブルをjoinするときに、

A left join B on A.id=B.id left join C on B.id=C.id

というふうにするのと、

(A left join B on A.id=B.id ) left join C on B.id=C.id

というふうに括弧で囲むのとって、どちらのやりかたが適切とかありますか?
0371NAME IS NULL
垢版 |
2009/05/03(日) 09:13:50ID:???
変に括弧とかかかないで
最適化はMySQLに任せてしまったほうがいい・・・はず
0372NAME IS NULL
垢版 |
2009/05/03(日) 22:18:47ID:EMVU4nk/
すみません。今日はじめてXAMPPからMySQLをインストールしたんですが
デフォルトでパスワードが無い状態なので、掛けようと思うのですが、
掛け方はいろいろ書いてあるのですが、みんなどこに書いているのかが分かりません。
コマンドプロンプトかと思って入力しても、エラーがおこるのですが
どこに入力したらよろしいのか教えてください
0373NAME IS NULL
垢版 |
2009/05/04(月) 00:04:54ID:???
>>370
絶対に括弧で囲まないとだめ。
joinするときの結合キーがそのテーブルのprimary keyなら結果は同じなんだけど、
そうでない場合、括弧で囲む場合と、そうでない場合で結果がかわる。

なぜかというと、括弧なしの場合、AとBをjoinした結果フェッチする行数が存在しない場合でも、
BとCのleft joinを行うからだ。

0374NAME IS NULL
垢版 |
2009/05/04(月) 06:11:39ID:pQt/LC0v
質問です。

バイナリログがうまく書き込めないんです。
以下のようなログが出てます
----------------------------------------------
/home/mysql/data$ mysqlbinlog mysql-bin.000008
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
mysqlbinlog: File 'mysql-bin.000008' not found (Errcode: 13)
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
----------------------------------------------

何か原因として考えられることはありますか?
0375NAME IS NULL
垢版 |
2009/05/04(月) 09:26:12ID:???
>>374
mysql-bin.000008 かそれが置いてあるディレクトリにパーミッションがない。
0376NAME IS NULL
垢版 |
2009/05/05(火) 19:52:00ID:+Yc0J8ac
バイナリログに、いつもファイルの最後にこんなのがでるんだけど。
ROLLBACK /* added by mysqlbinlog */;

これ、何かわかる人いますか?

0377NAME IS NULL
垢版 |
2009/05/05(火) 21:41:38ID:???
読んでそのままでは?
0378NAME IS NULL
垢版 |
2009/05/05(火) 22:20:56ID:+Yc0J8ac
>>377
コメントを訳すと、mysqlbinlogによって追加されました、となるけど、
なんで追加するのかなーと。なんでROLLBACKする必要があるのかと。
0379NAME IS NULL
垢版 |
2009/05/06(水) 15:32:14ID:???
>>370
A left join ( B left join C on B.id=C.id ) on A.id=B.id
0381NAME IS NULL
垢版 |
2009/05/11(月) 12:33:48ID:gPGRNLrz
ネットワーク越しに接続させたいので、ユーザXXXに10.1.1.1から接続できるように設定したいと思ってます。
userテーブルにはXXXがlocalhostから接続できるという設定の行があるので、それを流用したいとおもっている
のですが、そんなこと可能でしょうか?
自分でINSERT文を書くのはできれば避けたい('Y'とか'N'が多すぎるし)のですが、普通は自分でINSERT文を
書くべきなのでしょうか?
よろしくお願いします。
0382NAME IS NULL
垢版 |
2009/05/11(月) 13:00:22ID:gPGRNLrz
例えば、ストアドプロシージャを書いて、その中でSELECTの結果を保存して、
一部を書き換えて、INSERTの引数として使うこととかってできますか?
レスを投稿する


ニューススポーツなんでも実況