MySQLでSJISを使えるのは最新版でも可能か

このQ&Aのポイント
  • 最新のMySQLを使用することで、Linux上でSJISをサポートできる
  • MySQLを使った掲示板はSJISで安定して動作し続けている
  • MySQLの最新版をWin2000やLinux上で利用している
回答を見る
  • ベストアンサー

MySQLでSJIS?

仕事でMySQLを使ったWebサイトを多数作っています。 MySQLは最新版をWin2000やLinux上で使っています。 しばしば、LinuxのMySQLはEUCしか使えないという話を読みますが、それはもう過去のことなんでしょうか。 Linux上でMySQLを./configureするときにcharset=sjisという指定をして./configureしてるし、またそれでうまくコンパイルまで完了するので大丈夫そうだし、じっさい、このMySQLで作った掲示板はSJISで安定して動きつづけています。 最新のMySQLは上記のようにビルドすればSJISもだいじょうぶなんでしょうか。

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

  • ベストアンサー
  • takebe
  • ベストアンサー率65% (17/26)
回答No.1

安定して動いているなら大丈夫なのではないですかね(^_^)/. 最新というのが3.23.xxの場合はわかりませんが,3.22.32の場合には,参考URLにsjisでのorder byの不具合を修正したパッチが置いてあります.

参考URL:
http://www.softagency.co.jp/mysql/

関連するQ&A

  • PHP+MySQLでSJISからEUCへの文字コード変換方法を教えてください。

    こんにちは。いつもお世話になっております。本来であれば自サーバーで検証してから質問すべきだとは思いますが、現在稼動中のサーバーしかなく、止めることができないので質問させていただきます。 現在、PHP+MySQLでサイトをSJISコードで運営しておりますが、「表」「能」等のSJISの文字化け対策が面倒になってきまして、EUCに変換してしまおうかと検討しております。 現状の日本語に関する設定は下記のようになっております。 ▼MySQL(my.cnf) バージョン:4.1.20 [mysqld] default-character-set=sjis init_connect="SET NAMES sjis" [mysql.server] default-character-set=sjis [mysqldump] default-character-set=sjis [mysql] default-character-set=sjis ▼PHP(php.ini) バージョン:4.3.9 mbstring.internal_encoding = SJIS mbstring.http_input = pass mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto PHP内でMySQLと接続した直後に次のようにSJISを指定しています。 $sql="SET NAMES sjis"; mysql_query($sql); ちなみに、MySQLはMySQLadminで管理しておりますが、テーブルの照合順序は全てsjis_japanese_ciになっています。 上記のような内容ですが、この場合SJISからEUCに変換する場合の手順として、下記の流れでよろしいでしょうか? 1.PHPファイルをEUCコードに変換。 2.php.iniのSJISの部分をEUCに変換。 3.MySQLの設定ファイルのsjisの部分をujisに変換。 4.MySQLのテーブル内のデータを全てエクスポートして、外部エディタでEUCに変換後インポートする。 特に上記4の作業はテーブル数及びデータが膨大なため結構な作業になってしまいそうです。 もしもっと楽な方法があればご教授いただければ幸いです。なお、サーバーはRed Hat Enterprise Linuxです。

    • ベストアンサー
    • PHP
  • sjisを使いたい!

    Linux(RedHat9)上のMySQL(ver 4.1.7)でsjisを使いたいのに使えなくて困っています。MySQLは標準でlatin1に指定されているので、日本語を用いたいため、sjisに変えようと思いました。よって、my.cnfの[mysqld]、[mysqldump]、[mysql]それぞれにdefault character set=sjisと記述したのですが、そうするとMySQLが起動できなくなりました。何故かと思い、上記の記述をやめて幾つか調べました。とりあえずmysql> status;では Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 そしてmysql> show character set;をしてみると、 Charsetの中に、ujisもsjisも入っていませんでした。よって、このMySQLがサポートしていないsjisを設定ファイルに記述しても起動できなくなる訳です。 他のどのPCのMySQLにもsjisなどは当たり前のように入って いるのに・・。 mysql> set character set sjis;や mysql> set names sjis;とやっても、以下のエラー。 ERROR 1115 (42000): Unknown character set: 'sjis' このMySQLの状態を調べるため、mysql> show variables ike 'char%';とすると、 Variable_name | Value character_set_client | latin1 character_set_connection | latin1 character_set_database | latin1 character_set_results | latin1 character_set_server | latin1 character_set_system | utf8 character_sets_dir | /usr/local/mysql/share/mysql/charsets/ となっています。このような状況で、どうやったらこの MySQLはsjisを使えることができるようになるでしょうか。 どなたかお気づきの点でもあればアドバイスよろしくお願いします。m(_ _)m

    • ベストアンサー
    • MySQL
  • MySQL5.1の文字化け

    多くの方が同様の質問をされていたのですが、一致する問題が見つけれなかったので、ご存じの方がおられたら教えて下さいm(_ _)m (環境)  PHP 5.2.8 ZendFramework 1.5.1 から Pdo Mysqlを使用  文字コード:SJIS  Mysql 5.1  文字コード:EUC-JP (質問内容) 携帯の絵文字データをSJISのバイナリでスクリプト中に埋め込むため、スクリプトの文字コードをSJISに統一したところ、文字化けが発生しました。 SET NAMES SJIS のSQLを発行することで表示は正しくできるようなったのですが、新たにレコードを追加しようとすると文字化けが発生します。 例)情報 → 情表 insertを行う前の文字コードをSJIS,SJIS-win,EUCと変えてみましたが、SJISもしくはSJIS-winの場合は上記の例のとおりとなり、EUCにすると完全な文字化けとなりました... おそらく登録時にMYSQLがSJIS→UTF8→EUCに変換される時に正しく変換されていないものと思われるのですが、どなたか対処方法をご存じないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • mysqlコマンドでcharsetを指定したい

    my.cnfは下記の設定で、 LinuxのSSHでmysqlコマンドを使う時だけ、ujis(EUC) で表示したいのですがどうすれば良いでしょうか? ■/etc/my.cnf [client] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis mysqlコマンドではオプションが指定できないようで・・

  • MySQLのコンパイル

    MySQL-5.0.16をインストールし、下記のようにconfigureを実行したところ、「C compiler が見つからない」旨のメッセージが出て先へ進めません。 yum で gcc や cc のインストールを試みてもうまくいきません。 どなたか、良いアドバイスをお願いします。 OSはFedoraCore4の英語バージョンです。 [root@Linux mysql-5.0.16]# ./configure --prefix=/usr/local/mysql --with-charset=ujis --with-extra-charset=all ------------------------------------------------- checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking "character sets"... default: ujis, collation: ujis_japanese_ci; compiled in: ujis latin1 utf8 checking whether to compile national Unicode collations... yes checking whether build environment is sane... yes checking whether make sets $(MAKE)... (cached) yes checking for gawk... (cached) gawk checking for gcc... no checking for cc... no checking for cc... no checking for cl... no configure: error: no acceptable C compiler found in $PATH See `config.log' for more details. ----------------------------------------------------

  • Fedora10 への MySQL 5 のインストールについて

    Fedora10をフルインストールしたPCをサーバにみたてて、MySQL5.1.33-linux-i686-glibc23.tar.gz をインストールしようとしています。 root権限で(root@localhost) groupadd mysql useradd -g mysql mysql を行い、 /usr/localにて gunzip < mysql-VERSION.tar.gz | tar xvf - mysql-VERSION.tar.gz を行いました。 その他のディレクトリ usr/local/mysql や home/usr などでもtarコマンドを使って、解凍してみましたが、MySQL versionディレクトリを作成しました。 しかし、 cd mysql-VERSION をしたり、あるいは解凍をした位置などで、 ./configure --with-charset=ujis \ --prefix=/usr/local \ --localstatedir=/sql/data とうってみますが、必ず -bash: ./configure: そのようなファイルやディレクトリはありません と怒られてしまいます。 どうやったらconfigure をかけられるのでしょうか。 ご回答をお待ちしています。

  • EUCとSJISの変換文字列のレコードへの書込みについて

    WindowsのサーバーでデータベースはMySQLです。今回、Linuxのサーバーからもダイレクトにデータを取得(SQLのselect文)しWindowsのサーバーへデータの書込みを行ったりLinux側へデータ書込みを行うことになりました。 そこでEUC,SJISの文字列変換なのですが、レコードセットなどSelect文でEUCのデータを取得するとSQLでエラーになったり正常に値が取得できません。NKF32でテキストファイル間では変換できるのですが、直接テーブルからデータを取得しEUCまたはSJIS変換をおこないSQLで書込みを行うことはやはりVBでは無理なのでしょうか。ご経験又は知識 をお持ちの方ご教示板だければ幸いです。

  • PHP+MySQLで携帯サイトを開発しています。

    PHP+MySQLで携帯サイトを開発しています。 文字コードはSJISが望ましいということなので、 mb_http_output('SJIS'); mb_internal_encoding('EUC-JP'); ob_start('mb_output_handler'); を入れることで出力をSJISにしたのですが、ドコモでCSSを使用するために header("Content-type:application/xhtml+xml;"); を入れたところ、文字化けしてしまいます。 場所を変えたり、charsetを入れたりしても上手く動きません。 アドバイスいただければ助かります。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • サーバーに複数のMySQLをインストールしたい

    はじめまして。 MySQL初心者です。 現在、我がサーバーにはMySQLの4.1系が既にインストールされています。 ここに4.0.26を新たにインストールしたいのですが、 なかなかうまくいきません。 ./configure \ --prefix=/usr/local/mysql4.0 \ --with-charset=ujis \ --with-extra-charsets=all \ --with-mysqld-user=mpc \ --with-tcp-port=3307 \ --with-unix-socket-path=/tmp/mysql4.sock としてmake→make testを実行した時にsuccessfulが最後に出てくれず、 悩んでます。 configureの際に configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. Warning: extra-tools disabled because --enable-thread-safe-client wasn't used という出力がありました。 わかる方がいらっしゃいましたら宜しくお願い申し上げます。

  • MySQL でなく PostgreSQL を使う理由

    例えば、Webシステムでフリーのデータベースを選択する際、 MySQL でなく PostgreSQL を選ぶにはどのような理由があるのでしょうか? 両者最新安定版で比較して、MySQL の方が劣っている点とは どのようなものがあるのでしょうか?