のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,646,063人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレMySQL 5.0

mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
301 : NAME IS - 2008/06/02(月) 21:44:48 ID:???.net (+57,+29,-50)
経過

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

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

しかし、ゴミになるってことはなに?ソースを追うしかないのか?
302 : NAME IS - 2008/06/02(月) 22:30:25 ID:???.net (+3,-29,-65)
自己れす 解決

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

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

そうなのか?
303 : NAME IS - 2008/06/07(土) 04:02:12 ID:???.net (+45,-30,-311)
質問させて下さい。

これまで、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
304 : 303 - 2008/06/07(土) 04:09:00 ID:???.net (+3,-30,-207)
続きです。

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


あと、追加で質問させて頂きたいのですが、コマンドラインからMySQLを再起動するには
何というコマンドを実行すればよいのでしょうか?ぐぐっても中々ヒットしませんでした。
因みに、GUIツールとして MySQL Query Browserを使用しているのですがここから再起動とかも出来る
のでしょうか?
305 : NAME IS - 2008/06/07(土) 06:46:22 ID:???.net (+17,-30,+0)
>>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 で。
306 : 305 - 2008/06/07(土) 06:46:57 ID:???.net (+13,-30,-242)
続き

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

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

ちなみにWin版のバイナリ版phpは、php_mysql.dllがlatin1でコンパイルされてるので、
上記のことをやってなお、接続時に全てのクエリの前に "set names cp932" 等の処置が必要。
又は、上記の設定ファイル中で書くやり方もある。
それでは、がんばってくれ。
307 : 306 - 2008/06/07(土) 06:54:54 ID:???.net (+3,-30,-43)
ごめん。一つうそついてしまった。
php_mysql.dllじゃなくて、正確にはmysqlに付属のlibmysql.dllが、
デフォルトコードLatin1でコンパイルされているの間違い。
(まあ、phpバンドルのlibmysql,dllも同じことなんだけど)
308 : 303 - 2008/06/07(土) 15:37:12 ID:???.net (+5,-30,+0)
>>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\

309 : 303 - 2008/06/07(土) 15:43:13 ID:???.net (+3,-30,-212)
続きです。

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 ]


310 : 303 - 2008/06/07(土) 17:57:02 ID:???.net (+67,+29,-11)
自己解決しました。

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

311 : NAME IS - 2008/06/08(日) 04:27:00 ID:???.net (+75,+29,-44)
>>310
どう解決したかを書かないと意味がないだろ。
自分がよければそれでいいのかい?

とりあえず文字コードを多重変換して嵌ってたんだろうと推測しとく。
312 : NAME IS - 2008/06/08(日) 15:15:06 ID:???.net (+68,+29,-1)
>>311
良いよ
だって自己解決したんだし。
313 : NAME IS - 2008/06/13(金) 12:07:29 ID:???.net (+3,-30,-124)
質問です。

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の順番通りに表示するには、どうすればよいでしょうか?
なにかいい案がある方、いらっしゃいましたらご教示下さい。
314 : NAME IS - 2008/06/13(金) 12:35:19 ID:???.net (+3,-30,-54)
select * from wp_posts order by (case ID when 30 then -3 when 190 then -2 when 170 then -1 else ID end) asc;
315 : NAME IS - 2008/06/21(土) 20:46:10 ID:???.net (-6,-29,-3)
union使えば?
316 : NAME IS - 2008/07/12(土) 01:40:35 ID:???.net (+14,-29,-87)
MySQLはXen上では使えないんですか?

CentOSのDomU上でMySQL5を使っておりますが、
Buffer I/O error とやらが大量に出てきて、ファイルシステムが落ちます。
再現するのはMySQLが動いている時だけなので、MySQLが原因とみて間違いないと思います。
ディスクもディスクイメージも壊れていませんが。。。メソメソ
317 : NAME IS - 2008/07/13(日) 22:11:33 ID:???.net (+6,-29,-16)
>>316
configureのときに--skip-bdbだったかな。
318 : 316 - 2008/07/14(月) 00:34:32 ID:???.net (+54,+25,+0)
>>317
ありがとう。試してみる。
319 : NAME IS - 2008/07/14(月) 20:39:43 ID:???.net (+4,-30,-82)
PAM-MySQL の導入を検討しているのですが、
(see:http://pam-mysql.sourceforge.net/Documentation/package-readme.php)
crypt の値として平文、crypt(3)、PASSWORD()、MD5() を選択できるのですが、
平文は論外として、どの選択がよりセキュアなのでしょうか?
320 : NAME IS - 2008/07/15(火) 22:00:56 ID:???.net (+3,-30,-68)
>>319です。自分でも調べてみようかと思いソースを覗いてみたら crypt=4 (or "sha1") で
SHA1 が使えたみたいなのでこれを使ってみることにします。

# と思ったら Web に書いてないだけで README に書いてあったorz
321 : NAME IS - 2008/08/02(土) 18:51:16 ID:ag3OZJze.net (-11,-4,+0)
4に戻したいですぅ
322 : NAME IS - 2008/09/06(土) 16:57:02 ID:???.net (+3,-30,+0)
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


どなたかおわかりの方、情報をお願いできませんでしょうか。
よろしくお願いいたします。
323 : NAME IS - 2008/09/06(土) 17:47:53 ID:???.net (+3,-30,-38)
1024未満のポートを使うにはroot権限が必要だから
どうしても80番を使いたければ
iptablesのNAT機能を使って80から3306へ変換しなさい
80番を使う動機を推測すると、たぶん外に公開したいのだろうから
stunnelやstoneなどのSSLプロキシを使うと更によいと思う
324 : NAME IS - 2008/09/06(土) 17:50:16 ID:???.net (+11,-16,-13)
rootじゃないと80番は使えないんじゃ
328 : NAME IS - 2009/03/28(土) 15:52:58 ID:???.net (+4,-30,-52)
MySQL初心者です。

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

ALTER TABLE test_table RENAME TO TEST_TABLE
329 : NAME IS - 2009/03/28(土) 16:41:02 ID:???.net (+14,-30,-277)
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」に置き換えました。
330 : NAME IS - 2009/03/28(土) 22:05:16 ID:???.net (+0,-29,-32)
>>328
OSはlinux? MySQLのテーブル名はそのままファイル名になるから
Windowsみたいにファイル名が大文字小文字区別しない環境だと
MySQLからも区別できないよ
331 : NAME IS - 2009/03/28(土) 22:10:47 ID:???.net (+4,-30,-151)
>>329
PHPは使ってないけど、PHPのMySQLライブラリは my.cnf 参照してないって
聞いたことがある。デフォルトの laten1になるはず。
サーバの設定変更していいなら [mysqld] に skip-character-set-client-handshake を書くか
クライアントでなんとかしたいなら接続語に set names cp932 を投げたらいい。
ちなみに sjis は 4.1 以降では使わないほうがいいよ。 より広い cp932 で。
332 : 329 - 2009/03/28(土) 22:55:14 ID:???.net (+3,-29,-77)
>>330 >>331
レスありがとうございます。結論から言うと正常に日本語も登録されていました。
しかしCSEでのぞいていた為に文字化けしている様に見えただけでした。
odbcの文字コードの設定を sjis にしたら無事CSEからでも文字化けせずに見る
事が出来る様になりました。
333 : NAME IS - 2009/03/29(日) 19:39:13 ID:???.net (+16,-30,-31)
TimeStamp型で定義したテーブルからデータを取得し、取得したデータを
として取得するにはどうすれば良いでしょうか?

2009-03-25 14:06:15
 ↓
2009年03月25日 14時06分15秒
334 : NAME IS - 2009/03/29(日) 22:40:01 ID:???.net (+24,+6,+0)
日本語でおk
335 : NAME IS - 2009/03/29(日) 23:36:13 ID:???.net (+21,-16,-2)
>>333
そういう処理はSQLでやるべきでない。
336 : NAME IS - 2009/03/30(月) 00:23:52 ID:???.net (+78,+29,-21)
>>335
いやPHPでやる位ならSQLで一発でやりたいのです。
何か方法はありませんか?

337 : NAME IS - 2009/03/30(月) 00:42:31 ID:???.net (+67,+29,-1)
>>336
おまえみたいな人間は生きているべきでない。
338 : NAME IS - 2009/03/30(月) 01:06:23 ID:???.net (+68,+29,-19)
>>336
手荷物預かり所で「あのう、このカバンの色を変えたいのですが」と言ってるのと同レベル
339 : 333 - 2009/03/30(月) 01:13:56 ID:???.net (+52,+29,-6)
で結局やる方法は無いの?
340 : NAME IS - 2009/03/30(月) 02:18:03 ID:???.net (+8,-30,-101)
やる方法はある
でも多分PHPで書くより遅い

mysql> select concat(year(c1),'年') from (select now() c1) v;
+------------------------+
| concat(year(c1),'年') |
+------------------------+
| 2009年 |
+------------------------+
1 row in set (0.00 sec)
341 : NAME IS - 2009/03/30(月) 02:20:30 ID:???.net (+5,-29,-13)
>>333
date_format() つかえ。
342 : NAME IS - 2009/03/30(月) 02:43:09 ID:???.net (+58,+29,-46)
>>340
???
てっきりSQLでやった方が速いと思ってたのですがPHPの方が速いのですか?
それはなぜなのでしょうか?
あと、SQLサンクスです。


>>341
ちょっとリファレンスを見てみます。
343 : NAME IS - 2009/04/13(月) 16:46:07 ID:H6WHEd1c.net (+26,+29,-15)
オートインクリメント有りのテーブルにレコードを入れた直後に
それが何番に入ったかを知る方法ある?
344 : NAME IS - 2009/04/13(月) 17:14:42 ID:???.net (+52,+29,+0)

口の聞き方に気をつけろ
346 : NAME IS - 2009/04/14(火) 11:18:19 ID:???.net (+44,+26,+0)
ぐぐれかす
347 : NAME IS - 2009/04/14(火) 22:04:20 ID:???.net (+1,-29,-3)
>>343
SELECT LAST_INSERT_ID();
349 : NAME IS - 2009/04/21(火) 23:49:08 ID:???.net (+47,+24,+0)
買収されてしまいました
350 : NAME IS - 2009/04/22(水) 00:03:09 ID:???.net (+57,+29,-1)
どうなるんだろうね
つぶされちゃうのかな
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について