日本語対応のMySQLの使い方と解決方法

このQ&Aのポイント
  • SQLの初心者が日本語対応のMySQLを使用する方法についての質問です。WindowsXP Proffesionalを使用しており、最新のバージョンであるMySQL 5.1.30をダウンロードしていますが、テーブル名やカラム名、挿入データが日本語である場合に文字化けやエラーが発生してしまいます。
  • 日本語対応のMySQLを上手く使用するためのウェブページや解決方法についての情報を探している初心者ですが、なかなか見つからず困っています。
  • 教えてGooなどの検索エンジンを使用しても解決策が見つからず、質問を投稿して助けを求めています。日本語対応のMySQLを使う方法やエラーの対処方法について教えていただけると助かります。
回答を見る
  • ベストアンサー

2008年12月現在の日本語対応のMySQLについて

SQLの勉強を始めたばかりの初心者です。 現在WindowsXP Proffesionalを使用しています。 MySQLをHPからダウンロードして勉強のために使用しようと考えています。 現在手持ちのテキストのバージョンが4.0.16で現在ダウンロードできない状態でしたので、最新バージョンの5.1.30をダウンロードして使用しています。 テキストが、テーブル名や、カラム名、挿入しているデータがすべて日本語になっていますが、そのとおり使用すると、作ったテーブル名が文字化けしていたり、レコードの追加時にエラーになり追加ができません。 現在ダウンロードできるバージョンで、上記の様な日本語での使用ができるようにする説明が記入しているウェブペ-ジはございませんでしょうか? 教えてGooで検索等もしているのですが、4時間ほどたってもうまくいっていません。 ぜひご教授よろしくおねがいします。

  • MySQL
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

回答した通り各命令の最初に「SET NAMES 'SJIS';」はつけましたか? 以下のように実行してその結果をお知らせください。 SET NAMES 'SJIS'; insert into meibo(name1,name2,yubin,ken,shi,tyou,apart,tel,birth,family) values ('宮崎','一郎','880-0000','宮崎県','宮崎市','テスト町','101号室','090-0000-0000','2000/12/07',5); SET NAMES 'SJIS'; select * from meibo;

その他の回答 (1)

回答No.1

MySQLの最新バージョンでは命令の最初に「SET NAMES 'SJIS';」等で 文字コードを明示しておかないとマルチバイトの処理に窮するようです。 使用している文字コードがUTF-8の場合には「SET NAMES 'UTF8';」 EUC-JPの場合には「SET NAMES 'UJIS';」 Shift-JISの場合は「SET NAMES 'SJIS';」を 実行するようにしてみてください。 >テキストが、テーブル名や、カラム名、挿入しているデータがすべて日本語になっていますが、 これは解説書のテキストでしょうか? 挿入しているデータはともかくテーブル名とカラム名を日本語で 設定するように解説してるテキストというのものは あまり見たことがありませんが。 ただし日本語のテーブル名やカラム名での運用もそれなりの苦労が伴いますが可能です。 今はカラムごとにコメントがつけられるますので日本語名称の意義はそこまで無いような気もします。

beatclap
質問者

お礼

あれから書店へ行き5.1.30のインスタンスコンフィグウィザードを実行し、文字コードをsjisに変更しました。 status; を実行すると C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe Ver 14.14 Distrib 5.1.30, for Win32 (ia32) Connection id: 3 Current database: test Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 5.1.30-community MySQL Community Server (GPL) Protocol version: 10 Connection: localhost via TCP/IP Server characterset: sjis Db characterset: sjis Client characterset: sjis Conn. characterset: sjis TCP port: 3306 Uptime: 53 min 15 sec Threads: 1 Questions: 74 Slow queries: 0 Opens: 22 Flush tables: 1 Open tab les: 1 Queries per second avg: 0.23 -------------- となります。 create table meibo( name1 varchar(12), name2 varchar(12), yubin char(8), ken varchar(8), shi varchar(40), tyou varchar(120), apart varchar(80), tel varchar(20), birth date, family integer); を実行し、テーブル名やカラム名は半角英数にして、 レコードの挿入を >insert into meibo(name1,name2,yubin,ken,shi,tyou,apart,tel,birth,family) >values ('宮崎','一郎','880-0000','宮崎県','宮崎市','テスト町','101号室','090-0000-0000','2000/12/07',5); とし、レコードを作成しました。 その後に >select * from meibo; を実行すると、 日本語の部分が全部文字化けしています。 これは対処法があるのでしょうか? >これは解説書のテキストでしょうか? はい。インプレスという会社が発刊している基礎SQLっていう解説書です。 少し古い本だからでしょうか? 会社から借りています。

関連するQ&A

  • MYSQLの日本語テーブルはまずい?

    こんにちは。Accessをいままで利用していましたが、ファイルサイズが重くなってきたために、MYSQLを勉強しようと思っています。 Accessの時はテーブル名やフィールド名に普通に日本語を使っていました。MYSQLなどでも日本語のテーブル名やフィールド名を作ることができました。しかし、日本語でAccess感覚でつけるのはまずいのかな?と思いだしましたが(なんとなく)、日本語で続けると将来的にまずいことなどはおこらないでしょうか? MYSQLはWin XP SP3にインストールしています。レベルとしてはVBAを少しかけるくらいで本格的なDBMSは使ったことがありません。 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLで日本語カラム名を使いたいのですが

    当方の質問に興味をもっていただいてありがとうございますm(__)m 当方未熟ながらJAVAプログラマーを職業にさせていただいておりまが、この度MySQLを使用した日記WEBサイトを構築することになりました。しかし、日本語カラム名を使用したく困っております。 環境はTomcat5.5、MySQL5.1(ベータ)、JDBCは5.1、Eclipseは3.2です。 カラム名を英数字にすれば至らぬ私の技量でも問題ない案件なのですが、オラクルしか使用したことのない私には未知の領域です。 日本MySQL協会の「徹底入門」、DBの「現場で使えるMySQL]等の書籍は網羅したつもりですが、どうにも問題解決策を見つけることができませんでした。 もし解決策をご存知の方がいらっしゃりましたらば、お手数ではありますがその方法を教えていただけないでしょうか? 私が悩んでいるのは「WEBアプリからDBにSQLを投げた際、SELECT 日本語 From テーブル とし、JAVA側で「getString(”日本語”)」が使えないことです。 JDBCそのものの問題なのでしょうか?? よろしくお願いいたします。

  • MySQLで日本語検索

    MySQL初心者のものです。 今PHPとMySQLを利用して検索システムを作っています。 しかし日本語検索がどうしてもうまくいきません。 一応「教えてgoo」でも探してみたのですが、解決しませんでした。 MySQLで、 テーブル名 table フィールド名 field とすると、 select * from table where field like '%キーワード%'; のように検索してみたのですが、思うような結果が返ってきません。 ネットで検索すると「senna」をインストールと書かれていましたが、 そういったものをインストールしなければMySQLで日本語検索は出来ないものなのでしょうか? ちなみに MySQL5.0 PHP5.2.1 を利用しています。

  • MySQLカラム名は日本語と英数字のどちらが良いか

    MySQLのカラム名に日本語を使うか、英数字を使うかで迷っています。英数が無難だと思うのですが、日本語の方が簡潔で分かりやすい命名ができるので、もし大した問題が無ければ日本語を使おうと考えています。 そこで3点お伺いしたく存じます。 1. 日本の企業はMySQLのカラム名に日本語を使っているケースが多いのか、それとも英数字のみのケースが多いのか、最近の傾向をご教示頂けますか。統計は無いと思いますので、体感や自社ルールの場合等でも結構です。 2. 日本語を使うことでセキュリティホールができることは考えられますか。例えば、マルチバイト文字はSQLインジェクション対策をすり抜ける・・・等。 3. 自分なら日本語と英数字のどちらを使うか。理由も添えて頂けると幸いです。 当方の開発環境は、PHP(ver. 5.5.9) + MySQL(ver. 5.6.16)です。 お手数おかけしますが、ご教示お願い致します。

    • ベストアンサー
    • MySQL
  • MySQLの多言語対応

    多言語に対応したシステム(日本語と英語に対応)で疑問に思うことがあります。 マスタテーブルにname_jaとname_en という2つのカラムがありそれぞれ日本語と英語の レコードが格納されている場合、ロケールを判断してどちらのカラムにアクセスすべきか 判定してくれるような仕組みはDB(MySQL)にあるのでしょうか? 例えばプログラムでは select name from NAME_MASTER; というSQLを発行して ロケールに応じname_ja又はname_enのどちらかから取得されるというような仕組みが あるのかということです。

    • ベストアンサー
    • MySQL
  • MySQLのストアドプロシージャーでの引数に日本語が使えますか

    MySQLのストアドプロシージャーでの引数に日本語が使えますか 自分なりに調べてみましたがはっきりとした結論が得られませんでした。 MySQLのストアドプロシージャーの引数に日本語(2バイト文字)を使うことは可能でしょうか? どのバージョンでも構わないのですが、ストアドプロシージャーを使用するのでVer5.~の最新のバージョンを使うことになるでしょうか。 文字エンコードは全てUTF8を想定しています。

  • MySQLで日本語を出力すると文字化け(?)します。

    初めまして、MySQLの日本語の取り扱いについて悩んでいます。 この手の質問の過去ログをいろいろ漁ってみて、試してみたのですが、 やり方が悪いのか解決には至りませんでしたので質問させていただきます。 MySQLのバージョンは5.0で、phpMyAdminは2.9です。また、PHPのバージョンは5.1です。 OSはWindwos XPです。 status等で文字コードを確認したところ、以下のようでした。 Server characterset : sjis Db characterset : sjis Client characterset : sjis Conn.characterset : sjis また、phpMyAdminの「MySQLの文字セット」にはUTF-8 Unicode (utf8) とあります(この時点で十分謎です;;)。 このような環境で、以下のようなテーブルを作成し、ブラウザに「日本語。」と出力してみたところ、????と出ました。 どなたかのご教授を得られれば幸いです。 よろしくお願いします。

  • テキストボックスに入力された日本語が文字化けしてMySQLに保存される

    テキストボックスに入力された日本語が文字化けしてMySQLに保存される。 Webアプリケーション(PHP)を作成しているのですが、テキストボックスに入力された日本語が文字化けしてMySQLに保存されます。 テキストエリアに入力された日本語は文字化けせずに保存されます。 何が原因かわかりません。 わかる方教えて下さい。

    • ベストアンサー
    • PHP
  • ポルトガル語と日本語の混在

    MySQL 5 で、ポルトガル語と日本語が混在したデータを扱いたいのですが、キャラクタセットは UTF8 でいいのでしょうか? データベース、テーブル、フィールドのすべてをデフォルトをUTF8にしたのですが、ポルトガル語の一部と、日本語が文字化けしてしまいます。 日本語のデータベースもありますので、 MySQLのデフォルトは eucjpms を使用しています。 なかなか上手くできません。よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQL 予約語名で、カラム作成できるでしょうか

    ■質問 ・MySQL予約語名でもカラムを作成できるのでしょうか? ■背景 ・文法エラーSQL文の原因を調べると、どうやら予約語を利用したためだと分かりました ・予約語と知っていたら初めから利用しなかったのですが、その名前で普通にカラムを作成できたので、てっきり使えるものだと思い込んでしまいました ■知りたいこと ・予約語を回避するには、ここをチェックするしかないのでしょうか? ▽MySQL 5.1 リファレンスマニュアル :: 8.3 MySQLでの予約語の扱い   http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html ・予約語による影響を受けるのはどんな時?(CREATEは関係ない?) 予約語によって異なる?

    • ベストアンサー
    • MySQL