X



MySQL 5.0

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

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

開発の成果は、MySQLやOpenBSDに随時報告することが重要だ。
0206NAME IS NULL
垢版 |
2006/12/21(木) 21:47:53ID:1hv/v4KN
>>204
Verを書けよ
0207sage
垢版 |
2006/12/22(金) 12:31:40ID:???
質問です。
MySQL5.0系をwin環境で使用しています。
DBの用途はMTブログのみです。

MySQLをインスコしてデフォルトのキャラクターセットで使用していましたが、phpmyadminで文字化けする為文字を2バイト文字の使用できるutfやeucに変更しようと頑張ってます。
もし変更出来たとして、変更前に書き込まれてるデータの文字は変換出来るのでしょうか?

変換されないとすれば、新たにデータベースをutfなどで作り、元のデータをインポートすれば表示されるものなのでしょうか?

何分MySQL初心者なものでして、ご教授願えれば幸いです(´・ω・`)
0208NAME IS NULL
垢版 |
2006/12/23(土) 21:51:45ID:???
自動的に変換されない
全部自分で直す
0209NAME IS NULL
垢版 |
2007/01/02(火) 13:43:54ID:???
>>204
つまり、rootでログインしてたら実行できるけど、ログインしていない状況では
エラーになる、ということで悩んでるの?それなら、MySQLは正常に動いてると思う。

逆に、その状態が異常だと何処で教わった?
0210NAME IS NULL
垢版 |
2007/01/02(火) 13:45:38ID:???
>>203
まず、ネットワーク経由でのアクセスを許可してるよね?
0211NAME IS NULL
垢版 |
2007/01/03(水) 00:35:03ID:???
>>208
たいした量じゃなかったんでMTのデータテキストで書き出し
新しいDBにしてから読み込みで解決です。

時間かかったwww

おかげで年越しです。
0213NAME IS NULL
垢版 |
2007/01/16(火) 01:54:07ID:???
VC7でMySQL 5.0.33がコンパイルできませぬ。
バイナリ配布してくれなくなったからorz.

sql_yacc.cc(13646): warning C4065: switch 文に 'default' はありますが 'case' ラベルがありません。
sql_yacc.cc(27193): warning C4102: 'yyerrorlab' : ラベルは 1 度も参照されません。
c:\mysql-5.0.33\libmysqld\sql_yacc.cc(13759): warning C4700: 値が割り当てられていないローカルな変数 'MYSQLlval' に対して参照が行われました。
C:\mysql-5.0.33\sql\sql_select.cpp(8953): warning C4291: 'void *Sql_alloc::operator new[](size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが '\mysql-5.0.33\sql\sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
C:\mysql-5.0.33\sql\sql_cursor.cpp(154): warning C4291: 'void *Sql_alloc::operator new(size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\sql_cursor.cpp(213): warning C4291: 'void *Sql_alloc::operator new(size_t,MEM_ROOT *)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C:\mysql-5.0.33\sql\net_serv.cpp(286): warning C4101: 'count' : ローカル変数は 1 度も使われていません。
C:\mysql-5.0.33\sql\net_serv.cpp(286): warning C4101: 'ready' : ローカル変数は 1 度も使われていません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(285): warning C4244: '=' : 'unsigned long' から 'char' に変換しました。データが失われているかもしれません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(829): warning C4244: '初期化中' : 'my_ulonglong' から 'uint' に変換しました。データが失われているかもしれません。
c:\mysql-5.0.33\libmysqld\lib_sql.cpp(1044): warning C4102: 'err' : ラベルは 1 度も参照されません。
C:\mysql-5.0.33\sql\item_cmpfunc.cpp(1795): warning C4101: 'buff' : ローカル変数は 1 度も使われていません。
C:\mysql-5.0.33\sql-common\client.c(1787): error C2373: 'cli_mysql_real_connect' : 再定義されています。異なる型修飾子です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
C:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが '\mysql-5.0.33\sql\sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C3209: '????' : Unicode 識別子は現在サポートされていません。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : '}' が、識別子 '????' の前に必要です。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): error C2146: 構文エラー : ';' が、識別子 '????' の前に必要です。
c:\mysql-5.0.33\sql\sql_locale.cpp(40): fatal error C1075: 左側 中カッコ '{' に対応するものが 'sql_locale.cpp(40)' で見つかる前に EOF が検出されました。
mysqlserver fatal error LNK1181: 入力ファイル '\mysql-5.0.33\mysqldemb\release\mysqldemb.lib' を開けません。
test_libmysqld fatal error LNK1181: 入力ファイル '\mysql-5.0.33\lib_release\libmysqld.lib' を開けません。
0214NAME IS NULL
垢版 |
2007/01/28(日) 23:28:51ID:???
>>213
mysql-5.0.33フォルダをデスクトップに置いてコンパイルした結果をもう一度
教えてくださいw
0217NAME IS NULL
垢版 |
2007/05/11(金) 01:34:05ID:hJ+hqO0q
ムーバブルタイプ、MySQLでやろうとしたらこんなん出ましたw
Data too long for column 'template_text' at row 1
0218NAME IS NULL
垢版 |
2007/05/14(月) 23:43:26ID:LAW+Ghic
ヴァージョン4と5の違いって何ですか?そんなに違うものですか??
0220NAME IS NULL
垢版 |
2007/05/25(金) 08:20:15ID:???
>>218
全然違う。
ネットで調べればすぐわかる。

つか、なんで今さらそんな話を。。。
0221NAME IS NULL
垢版 |
2007/05/25(金) 09:26:25ID:???
>>218
うちの嫁と隣の嫁ぐらいの違いがある
0222NAME IS NULL
垢版 |
2007/05/25(金) 21:44:21ID:???
そうですか!>>221さんは両方とも使ったことが
あるんですね! どっちがよかったですか?
0225NAME IS NULL
垢版 |
2007/05/28(月) 13:18:51ID:???
複数カラムのJOINって無理ですか?

id,flg,reason

id,koyo,kousei,kenkou

の二つを合体させたいんですが、
flgは無し、アリ、申請中で、reasonは理由です。
0226NAME IS NULL
垢版 |
2007/05/30(水) 21:38:43ID:???
>>225
>複数カラムのJOINって無理ですか?
なにを聞きたいのか、全然わからん。
わからんが、とりあえず答をぶっぱなしてやる。

つ LEFT OUTER JOIN
0227NAME IS NULL
垢版 |
2007/06/12(火) 02:31:24ID:???
5.0.41にしたらアプリケーションがことごとく動かなくなった。
いろいろ試してみたら5.0.27より後のバージョンでNGになってる。
大幅な仕様変更があったんでしょうか。
0228NAME IS NULL
垢版 |
2007/06/13(水) 20:32:35ID:xGJFXDYi
>>222
隣の芝生は青く見える。
0229NAME IS NULL
垢版 |
2007/06/13(水) 20:45:56ID:xGJFXDYi
スレ違いかもしれんが、10年以上前に秋葉原で購入した
マハーポーシャのパソコンにNetBSDインストールして
MySQL5.2を入れて見ようと考えてます。バージョンが安定してないのと
ハードのスペックが余りにも古いのでデータベースがきちんと
動いてくれるのか不安です。


用途は、8000人分の個人情報を管理することです。
0230NAME IS NULL
垢版 |
2007/06/14(木) 00:58:03ID:???
>>229
スペックで考える前に
8000人分の個人情報を預かる責任として考えろ
0231NAME IS NULL
垢版 |
2007/06/17(日) 18:01:16ID:???
>>229
警察から連絡があったでしょ?OSが不正コピーかどうかの確認。
0232NAME IS NULL
垢版 |
2007/06/25(月) 02:34:50ID:???
マハーポージャってなに?
オウムのやつ?
0233NAME IS NULL
垢版 |
2007/06/29(金) 22:17:20ID:tyr8Qbwe
すみません。
MySQL 5.0.41 をインストールしたのですが、
my.ini を編集しようとして、開こうとしても、他のプロセスによって書き込みが禁止されていますといわれて、編集できません。

mysqladmin -uroot -p**** shutdown
で、シャットダウンを済ませたのですが、それでも書き込みが禁止されています。
my.ini はどうやって編集するのでしょうか。
0234233
垢版 |
2007/06/29(金) 23:14:10ID:???
自己解決しました。
Vistaの変なセキュリティ機能の所為でした。
ファイルの上書きでなんとか書き換えました。
0235NAME IS NULL
垢版 |
2007/07/25(水) 11:21:25ID:???
MySQLに接続するために
日本語サーバー対応版 libmysql.dll
を探しているのですがSoft Agencyのサイトからは
ダウンロードできなくなってるみたいです。。

どこか別のサイトでダウンロードできるところはないでしょうか?
0236NAME IS NULL
垢版 |
2007/07/29(日) 22:56:25ID:???
公式の奴はあかんの?
0238NAME IS NULL
垢版 |
2007/09/21(金) 20:48:56ID:???
すいません、教えてください。
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
e:\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.37, for Win64 (unknown)
です。

以下のような簡単なプログラムを書いてコンパイルしたところ
undefined reference to`_mysq_init'といわれてしまいました。
何が足りないのでしょうか。
====================ソース=========================
#include<stdio.h>
#include"mysql.h"

int main()
{
MYSQL *mysql;

if(mysql_init(mysql)==NULL)
{
fprintf(stderr,"Cannot init MySQL");
return 1;
}
return 0;
}

==================コンパイルオプション==================
gcc -Ie:/MySQL/include \
-Le:/MySQL/include \

-Le:/MySQL/lib/opt \

-lmysqlclient \

-llibmysql \

test.c

0239238
垢版 |
2007/09/21(金) 20:52:29ID:???
すいません。
コンパイルオプションに変な改行が入ってますが、
無いものとして考えてください。
0241NAME IS NULL
垢版 |
2007/09/29(土) 13:55:54ID:???
test.cよりあとに、-lつける
-lの順番と位置には意味があるので
0242238
垢版 |
2007/09/29(土) 19:28:09ID:???
>>240-241
レスありがとうございます。
test.cよりあとに-lをつけたのですが駄目でした。
ライブラリの順番もいろいろ入れ替えてみたのですが。

ところでstringsでmysqlclient.libをみてみたら
以下のようになったのですが、_mysql_init@4の@4とは何なのでしょう?

bash-3.1$ strings mysqlclient.lib | grep mysql_init
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init_character_set
_mysql_init@4
_mysql_init@4
_mysql_init_character_set
0243NAME IS NULL
垢版 |
2007/09/30(日) 00:42:51ID:???
_関数名@数字なら、stdcallの関数で、数字は引数のバイト数
stdcallの関数って教えないと駄目じゃないかな。
0244238
垢版 |
2007/09/30(日) 20:29:21ID:???
>>243
レスありがとうございます。
mysql.hを覗いてみたところ以下のようになっていました。

#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
#undef WIN
#undef _WIN
#undef _WIN32
#undef _WIN64
#undef __WIN__
#endif

#if !defined(__WIN__)
#define STDCALL
#else
#define STDCALL __stdcall
#endif

実はCygwinでやっているのですが、Cygwinだと__stdcallが取り除かれるようです。
リンクするライブラリを間違えているということでしょうか。
ためしに無理やり__stdcallを付けてみたら山のようにリンクエラーがでました。
0245238
垢版 |
2007/10/02(火) 07:12:07ID:???
環境をCygwin&gccからコマンドプロンプト&VCに変えたら
上手くいったのでとりあえずこれでやることにします。
レスありがとうございました。
0246NAME IS NULL
垢版 |
2007/10/10(水) 02:46:28ID:???
mysql-test-run 及び make testは失敗するのがデフォルトですか?

CentOSのmysql-5.0.48.src.rpmからrpmbuildでrebuildしたんですが、make testの段でエラーになります。
specの中身は、
CFLAGS="-O2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv"
CXXFLAGS="$CFLAGS -fno-rtti -fno-exceptions"
CC=gcc(ver3.4.6-8) CXX=g++(ver3.4.6.8)
./configure --with-readline --with-openssl --without-debug --enable-shared --with-bench --localstatedir=/var/lib/mysql \
--with-unix-socket-path=/var/lib/mysql/mysql.sock --with-mysqld-user="mysql" --with-extra-charsets=all \
--with-innodb --with-ndbcluster --with-berkeley-db --enable-local-infile --enable-largefile --enable-thread-safe-client \
--disable-dependency-tracking --with-named-thread-libs="-lpthread"
とこうなってます。
で、%build(make)セクションは問題なく進んでいるようですが、make testに入ってから、
Logging: mysql-test-run.pl
MySQL Version 5.0.48
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT = 9306
Using MASTER_MYPORT1 = 9307
Using SLAVE_MYPORT = 9308
Using SLAVE_MYPORT1 = 9309
Using SLAVE_MYPORT2 = 9310
Using IM_PORT = 9312
Using IM_MYSQLD1_PORT = 9313
Using IM_MYSQLD2_PORT = 9314
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Installing Master Database
Installing Master Database
Installing Slave1 Database
mysql-test-run: WARNING: running this script as _root_ will cause some tests to be skipped
=======================================================
Starting Tests in the 'main' suite

TEST RESULT TIME (ms)
-------------------------------------------------------

mysql-test-run: WARNING: Process 8991 died
alias [ fail ]

ERROR: Failed to start master mysqld 0

Aborting: alias failed in default mode. To continue, re-run with '--force'.
Stopping All Servers
mysql-test-run: WARNING: caught exit of unknown child -1
mysql-test-run: WARNING: Forcing kill of process 8991
と出て、いきなりFaild出ています。
0247246
垢版 |
2007/10/10(水) 02:46:59ID:???
そこで、src.rpm中のtar.gzを、自分で展開して、

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
(mysql4.1マニュアルにあったまんま)から、makeしてみたんですが、

・item_cmpfunc.cc:861: 警告: converting of negative value `-0x000000001' to `ulonglong'
・sql_show.cc:1467: 警告: キャストによってポインタから異なるサイズの整数となります。
上の二件警告がでて、コンパイル自体は通るんですが、で、make testとしたら、上と全く同じエラーがでます。

とりあえずmake installして、./script/mysql_install_dbしてから、./bin/mysqld_safe & で起動して、
./bin/mysql -u root で入って、select,create table,insert,delete 等は一応動いてるようです。
でもそこで mysql-test/mysql-test-runしてみるとやはり上記のエラーが・・・。
途中でこけるんではなくて、いきなり一発目のテストからこけてる。

ちなみに --force オプションつきでやってみると、ものの見事に全てのテストが Faildします。
その時、別のターミナルからtopでプロセス監視してると、mysqld<defunct>が二個くらい出てきては
数秒したら消えるの繰り返しでした。

’Failed to start master mysqld 0’とあるので、テスト用のmysqldが正常に起動できてない(ゾンビプロセス化)
ような気がしますが、mysql-ABや、MLで’Failed to start master mysqld 0’とか’mysql-test-run’とかで
検索かけても、マニュアルには「全てのテストは通ります。」としか書かれてないし、
ggったところ一件だけ同じ症状(ver5.0.41だけど)があったんですが、
そこにも「通る気配がないので、make installして起動さしますた。」ってことになってます。

こちらの皆さんは、ソースからmakeしてmake testとか、script/mysql-test-runとかちゃんと通りますか?

あと、rpmからの時は、起動してるとき ps -A | grep mysql で mysqld_safe と mysqld の二つしか
プロセスHitしないのに、ソースからmake install して ./bin/mysqld_safe した時は、mysqldプロセスが
八匹くらい常駐してるんですが、これも正常なんですか??
0248NAME IS NULL
垢版 |
2007/10/11(木) 07:49:24ID:???
rpmbuildでのtest全失敗はやったことある。

> mysqld<defunct>が二個くらい出てきては
> 数秒したら消えるの繰り返しでした。

いっしょいっしょ。
iptablesで塞いでるからかなーとか考えて
そのときは深く追求しないで寝てしまった。

あと
関係ないけど5.0.48は大バグがあるから使っちゃだめ。

| MySQL Enterprise 5.0.48 Binaries Withdrawn
| After the recently released MySQL Enterprise 5.0.48 binaries
| were made available for download, it was discovered that they
| are affected by Bug #31001.
|
| Because of this, it was decided that MySQL Enterprise 5.0.48
| binaries should be withdrawn from the MySQL Enterprise Server
| download page, and they have now been removed. The previously
| released MRU, MySQL 5.0.46, has been made available in its place.
0249NAME IS NULL
垢版 |
2007/10/11(木) 11:09:38ID:???
お返事ありがとうございます。

そうですか。
本スレ?でも書いたんですが、5.0.48.src.rpmからではなくて、本家の5.0.45.tar.gzからmakeしても、全く同じ症状がでてます。
ちなみにtop監視してて気づいたこと、mysqld<defunct>以外にndb-なんちゃらってのが出てきては消えを繰り返してたので、
クラスターエンジン(?)がらみかなーとかとも考えてみたんですが、よくわかりません。

> あと
> 関係ないけど5.0.48は大バグがあるから使っちゃだめ。

うはー、さっきBug#31001をチラッと見に行きましたが、かなり重大っぽいですね。
CentOSのrpmにはいくつかPatchがあたってるようなので、ちょっと調べてみます。
0250248
垢版 |
2007/10/12(金) 02:23:20ID:???
--with-mysqld-ldflags=-all-static
これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
なのでtopとかでスレッド数のぶんプロセスがあがってしまう。

mysql-test-run.plは調べ中だけどrootでやると確実に失敗する模様。
元々mysqldはセキュリティ上root権限ではあがらないため。
明示的に--user=rootとすればあがるのでmysql-test-run.plに
パッチをあてて実験中。

SRPMのリビルドの過程ではmake testはしないのが普通なのかなあ。
あらかじめ
| export MYSQL_RPMBUILD_TEST=no
するとmake testを飛ばすみたいね。
0251248
垢版 |
2007/10/12(金) 03:19:03ID:???
> 明示的に--user=rootとすればあがるのでmysql-test-run.plに
> パッチをあてて実験中。

test通った。ので原因確定。

結論として、
MySQLのSRPMはrootでなくて一般ユーザでrpmbuildすべし。
一般ユーザでrpmbuildしたらパッチなくてもtest通った。

参考 http://memo.blogdns.net/rpmbuild.html

ねる
0252290
垢版 |
2007/10/12(金) 04:30:42ID:obmx5Aip
>>250,251
わざわざ検証ありがとうございます。
実はこっちでもちょっと前に、一般ユーザーでテスト通りました。

mysql-test/var/log/master.errに
’Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!’
ってあったんで、マニュアルの"Security"部分眺めながら、--user=rootでやっみたんですが、それでもFailedになったんで、
sudo -u mysqlでやって、今までとは違うエラー内容(mysql-test/var/以下にファイル作れません)でたので、
chmod 775 -R mysql-test/でやってみてテスト進みました。

ぬわんてこった〜〜!!って真剣思った。
rpmbuildかける時はずっとrootでやってたんで、まさに灯台本暗しとゆうかなんとゆうか・・・。

> --with-mysqld-ldflags=-all-static
> これがついてるとNPTLじゃなくてLinuxThreadになるらしい。
> なのでtopとかでスレッド数のぶんプロセスがあがってしまう。

これは知らなかった。これもサンクスです。

あと、Centの5.0.48には、当該のPatch当たってなかった。
さすがにorder by desc と asc で並びが同じ(w)ってのはまずいですね。(myisamはちゃんとなるみたいだけど)

これから一般ユーザーでrpmbuild試してみようと思いましたが、眠いので明日にします。
0253246
垢版 |
2007/10/12(金) 04:34:39ID:???
すいません。>>252は246の間違いです。
しかもあげてしまった・・・orz。
0254NAME IS NULL
垢版 |
2007/10/15(月) 23:16:50ID:???
mysqlの文字列の型で、charとvarcharとtextとありますが、
それぞれ、どのような文字列の場合に使用するものなのでしょうか?

たとえば、高速化をはかりたい場合はcharで、ディスクの容量を節約したい場合は、varcharで
といった具体に目的に応じて、使用する型を選ぶと思うのですが、
その判断方法を教えていただきたく、ごきょうじゅお願い致します。
0255NAME IS NULL
垢版 |
2007/10/16(火) 00:49:25ID:???
固定長・・・・・・・・CHAR
可変長・・・・・・・・VARCHAR
256文字以上・・・TEXT

でいいんじゃね?
0256NAME IS NULL
垢版 |
2007/10/16(火) 01:08:26ID:???
MySQLのVARCHARは64KB入るよ。

CHARは余った末尾は空白埋めされる。
VARCHRは空白埋めされない、末尾に空白を入れても削られる。
TEXTは空白埋めされないけど、末尾に入れた空白はそのまま残る。

なので

CHAR:何か固定桁のIDを入れる
VARCHAR:何かの名前を入れる(末尾の空白はいらない!)
TEXT:文章を入れる(末尾に空白を残したい人がいるかもしれない!)

っていうのがお作法じゃね?
性能差はたぶん測定不可能だと思う。
0257NAME IS NULL
垢版 |
2007/10/16(火) 02:18:07ID:???
>>256
5.0からvarcharの末尾空白は削られなくなったというような話をどっかで聞いたような気がする。
0258NAME IS NULL
垢版 |
2007/10/16(火) 02:44:26ID:???
ほんとだorz
しらんかった
0259>>254
垢版 |
2007/10/16(火) 23:55:06ID:???
ありがとうございます。
結局、varcharとtextはでもどっちでもよいという話ですね。
0260NAME IS NULL
垢版 |
2007/10/17(水) 00:40:12ID:???
MySQLって、primary keyをselectすると、
そのレコードの全てのカラムのデータをひっぱってくるという話を
聞いたことがあるのですが、これは事実でしょうか?

事実とした場合、4000文字程度のデータが入るカラムをtext型として
データベースに追加することを考えた場合、
既存のテーブルに追加すると性能が落ちる気がするので、
同じprimaryキーの別のテーブルを新しく作成して、
そこにtextのカラムを追加したほうがいいのかなと考えたのですが、
この考え方はあっていますでしょうか?

よろしくごきょうじゅお願いします。
0262NAME IS NULL
垢版 |
2007/10/17(水) 14:38:27ID:???
>>260
たぶんいろいろ勘違いしてると思われ。
0263>>260
垢版 |
2007/10/18(木) 00:48:15ID:???
>>261
ありがとうございます。読んでみますm(_ _)m
0264ビューについて質問
垢版 |
2007/11/01(木) 03:08:57ID:???
変則的な使い方だと思うのですが、ビューについて質問させてください。

<条件>
共通のカラムをもった別のテーブルを2つ以上用意する。
(カラムは共通のもの以外にもある可能性がある。例として共通カラム:ID,NAME)

<質問1>
これらのビューを作成するときには、

create or replace view view_name as select ID,NAME from * where 条件式;

で作成可能でしょうか?

<質問2>
上記SQL文でビューに組み込まれるテーブルは少なくともID,NAMEカラムを持っていることが条件となり、

ID,NAMEカラムの片方だけを持つテーブル→ビューには組み込まれない。
ID,NAMEカラム以外にもカラムを持つテーブル→ビューに組み込まれる。

となるのでしょうか?

<質問3>
元のテーブルのデータがUPDATE,INSERT等で更新し、ビューを意図的に更新しない時ビ
MySQLではビューの検索ではどのような挙動になるのでしょうか?

具体的には、
NAMEフィールドが更新された→検索に引っかかるのは更新前の文字列か更新後の文字列か?
レコードが削除された→検索には削除されたレコードも引っかかるのか?

以上です。
よろしくお願いします
0272NAME IS NULL
垢版 |
2008/02/13(水) 21:21:47ID:???
5がいかに人気が無いか分かるな
0273NAME IS NULL
垢版 |
2008/02/14(木) 01:10:13ID:???
MySQL5系からトリガという機能が追加されたらしいのですが、

このトリガって具体的にどのようなシチュエーションで利用されるものなのでしょうか?
(#トリガの説明聞いただけでは、いまいち何の役にたつのかわからないのです。。)
0276NAME IS NULL
垢版 |
2008/02/14(木) 10:49:17ID:???
QueryBrowserで、右側のテーブル名ダブルクリックすると、上のクエリ窓に
SELECT * FROM [テーブル名] [テーブル名のイニシャル]
が出ますよね?
それで、ある一部のテーブル名だけ
SELECT * FROM '[テーブル名]' [テーブル名のイニシャル]
とシングルクオートで囲まれて出てきます。
このせいでアプリケーションでの検索ができません。
何が原因でしょうか?テーブル作成時もほかのテーブルと同じように作ったのですが・・・
0280NAME IS NULL
垢版 |
2008/04/01(火) 02:32:51ID:S2Hxl9dE
DELETE FROM userlist;してしまった…。バックアップが見つからないorz
0281NAME IS NULL
垢版 |
2008/05/07(水) 15:09:18ID:lgbIt4VH
自宅のパソコンでPHPやJavaを勉強してるんだけど。

MySQLにPHPやJavaから接続したいんだけど、
PHP用のデータベースはEUC-JP、Java用のデータベースはWindows-31Jにしたいんだけど
データベース作成のときのCREATE DATABASE構文でCHARACTER SET CP932 とかUJISとかに
すればひとつのMySQLの中で別々の文字コードを持ったデータベースってできるの?

教えてえろい人。
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" 等の処置が必要。
又は、上記の設定ファイル中で書くやり方もある。
それでは、がんばってくれ。
レスを投稿する


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