ホーム > MySQL
MySQLのアーカイブ
TerminalでMySQLに日本語データを読み込む
- 2009年1月11日 12:02 PM
- MySQL
Mac OSX Leopard 10.5.3
mysql5 @5.0.51a_0+server
TerminalからMySQLのデータベーステーブルに日本語のデータを入力しようとしたら、確定するとはじかれて「???」とかになってしまう。bashのプロンプトでは大丈夫だから(確定してもちゃんと表示されているし、既存の2byte文字のファイル名、フォルダ名も表示できている)MySQLの問題なんだろうか。
問題解決は出来なかったけど、かわりにテキストファイルで用意した外部ファイルを読み込んでテーブル内にデータを読み込むというやり方を知ったので、一応メモしておく。
入力したい各レコードをテキストファイルで作成して拡張子を.csvにして保存。
この場合は文字列でもクォーテーションで囲わなくてよい。
1,北海道,札幌市,83451,567 2,青森県,青森市,9606,151
/Users/Shared(Macintosh HD/ユーザ/共有)におく。
もちろん、別にここじゃなくてもいいんだけど。
データベースを作成して、テーブルも作成しておく。以下のようにカラム構造やデータ型を定義して。
mysql> create table tb1(bang varchar(10), nama varchar(10), tosi int);
データベースをuseで宣言してから、その中のデータを読み込みたいテーブルを以下のように指定してloadする。(この場合tb1というテーブル)
mysql> load data infile "/Users/Shared/data.csv"
-> into table tb1 fields terminated by ",";
MySQLにおけるデータ型
- 2009年1月10日 5:16 PM
- MySQL
数値型
| データ型 | バイト数 | 値の範囲 | 内容 |
|---|---|---|---|
| TINYINT | 1 | -128から127まで。符号なしなら、0から255まで。 | 整数型 |
| SMALLINT | 2 | -32,768から32,767まで。符号なしなら0から65,535まで。 | 整数型 |
| MEDIUMINT | 3 | -8,388,608から、8,388,607まで。符号なしなら、0から4,294,967,295まで。 | 整数型 |
| INT | 4 | とてもたくさん | 整数型(別名INTEGER型) |
| BIGINT | 8 | とてもとてもたくさん | 整数型で最大のデータ型 |
| FLOAT | 4 | 4バイトの値での浮動小数点 | 浮動小数点でのデータ型 |
| DOUBLE | 8 | 8バイトの値での浮動小数点 | 浮動小数点での最大データ型 |
文字列型
| データ型 | 最大バイト(文字)数 | 内容 |
|---|---|---|
| CHAR | 255 | 固定長のテキスト。長さに足りない分はスペースが格納される。 |
| VARCHAR | 255 | 可変長のテキスト。 |
| TINYTEXT | 255 | 可変長の短いテキスト。 |
| TINIYBLOB | 255 | 可変長の短いバイナリテキスト。(文字数ではなくバイト数でカウント) |
| TEXT | 65535 | 可変長の長いテキスト。 |
| BLOB | 65535 | 可変長の長いバイナリテキスト。(文字数ではなくバイト数でカウント) |
| MEDIUMTEXT | 16777215 | 可変長で、通常と最長の間のテキスト。 |
| MEDIUMBLOB | 16777215 | 可変長で、通常と最長の間のバイナリテキスト。 |
| LONGTEXT | 4294967295 | 可変長で最長のテキスト。 |
| LONGBLOB | 4294967295 | 可変長で最長のバイナリテキスト。 |
日付型
| データ型 | 格納バイト数 | 内容 |
|---|---|---|
| DATE | 3 | YYYY-MM-DD形式で格納される(2009-01-01) |
| DATETIME | 8 | YYYY-MM-DD HH:MM:SS形式で格納される(2009-01-01 00:00:00) |
| TIME | 3 | HH:MM:SS形式で格納される(00:00:00) |
| TIMESTAMP | 4 | YYYYMMDDHHMMSS形式で格納される(20090101000000)*UNIXでよく使われるタイムスタンプ型 |
MySQLの文字コード設定
- 3:30 PM
- MySQL
MacPortsで環境を構築してMySQLを利用する際に、そのデフォルトの文字コードを設定する際のメモ。(これで毎回データベースを作る際に文字コードを指定しなくて済むようになる)
MacPortsでインストールしたMySQL5において。
/opt/local/etc/mysql5/
にあるmy.cnfに、以下の内容を追加する。(すでにあるものには追加記述、ない項目は項目名と一緒に)
[mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysql.server] user=mysql default-character-set=utf8 [mysqld_safe] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
設定ファイルを編集したので、MySQLを再起動させる。
自分の環境ではMySQLは自動起動の設定にしているので、以下のコマンドで。
$ sudo launchctl stop org.macports.mysql5 停止させて $ sudo launchctl start org.macports.mysql5 起動させる
確認してみる。
mysql> SHOW VARIABLES LIKE 'char%'; +--------------------------+-----------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /opt/local/share/mysql5/mysql/charsets/ | +--------------------------+-----------------------------------------+ 8 rows in set (0.00 sec)
character_set_filesystem以外はすべてutf8になっている。OK。
(character_set_filesystemはファイルシステムのための文字コードなのでbinaryのままでよいらしい)
MySQLとApacheの再起動
MacPortsでインストールした MySQL5 と Apache2 はどっちも自動起動に設定してあるので、設定ファイルを編集した際にそれを反映させるにはどちらも Terminal からコマンドで再起動が必要。すぐ忘れるのでこれもメモ。
MySQL5
$ sudo /opt/local/share/mysql5/mysql/mysql.server start $ sudo /opt/local/share/mysql5/mysql/mysql.server restart $ sudo /opt/local/share/mysql5/mysql/mysql.server stop
Apache2
$ sudo /opt/local/apache2/bin/apachectl stop $ sudo /opt/local/apache2/bin/apachectl start
ついでに、Ubuntu Server にインストールした MySQL についてもメモ。
$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/mysql stop
上から順に、開始、再起動、停止。
途中から勘違いをしていて、$ mysql -u root -p とかで「再起動」になっていると思いこんでいた。
これは単に mysql monitor を起動しているだけで、MySQL Server の再起動じゃないんだな。きっと。
まだこのへんが初心者で超曖昧な自分の理解。
MacPortsによるApache2+MySQL5+PHP5の環境構築まとめ
MacPortsでPHP/MySQL5のローカル環境を作る手順まとめ
- MacPortsのインストールと環境変数の追加
- MacPortsでApache2をインストール
- MacportsでMySQLをインストール
- MacPortsでPHP5をインストール
(PHPはvariantsの指定しないとインストール出来なかった) - MacPortsでインストールしたPHP5とMySQL5を接続する
MacPortsでインストールしたPHP5とMySQL5を接続する
MacPortsでApache2、MySQL5、PHP5をインストールし、このMySQLとPHPを連動させられるように接続するための設定をする。
インストール済みのPHPの設定ファイル「php.ini」内にmysqlソケットの記述を追加
/opt/local/etc/mysql5/my.cnfの中の[client]部分にある
socket=/opt/local/var/run/mysql5/mysqld.sock に合わせて
/opt/local/etc/php.iniの中の mysql.default_socket 部分を
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
と記述する。
MySQLの設定を変更したのでMySQLを再起動
$ sudo launchctl stop org.macports.mysql5 $ sudo launchctl start org.macports.mysql5 $ sudo /opt/local/apache2/bin/apachectl stop $ sudo /opt/local/apache2/bin/apachectl start
MacportsでMySQLをインストール
mysql5にvariantsをつけてインストール
このvariantsをつけておくとMySQLサーバの自動起動のためのscriptsも一緒にインストールできるので便利。
$ sudo port install mysql5 +server
mysqlを初期化
$ sudo -u mysql mysql_install_db5
MySQLの起動確認
$ sudo /opt/local/share/mysql5/mysql/mysql.server start Starting MySQL .. SUCCESS!
MySQLの接続
$ mysql5 -u root -p(初期状態ではパスワードは設定していないのでそのままリターンでOK)
MySQLのroot権限にパスワードを設定する(MySQLに接続した状態で以下のコマンドで設定)
mysql> set password for root@localhost=password('password');
my.cnf(設定ファイル)を作成する
/opt/local/share/mysql5/mysql/に入った「my-small.cnf」を
/opt/local/etc/mysql5/my.cnfとしてコピー。
$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
上記作業でコピーしたファイルをvim(などのテキストエディタ)で開いてから以下の内容を該当部分に追記(ないものは項目ごとペーストで)
$ sudo vim /opt/local/etc/mysql5/my.cnf
my.cnf に追記する内容
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysql.server] user=mysql default-character-set=utf8 [mysqld_safe] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
設定ファイル(my.cnf)の編集内容を有効にするためにMySQLを再起動(停めて、また起動)
$ sudo launchctl stop org.macports.mysql5 $ sudo launchctl start org.macports.mysql5
mysqlに繋いでmysql> status;で文字コードの設定が有効になっているか確認。
起動時にMySQLサーバが自動で起動するように設定
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
MySQLドライバをインストール
$ sudo port install rb-dbi +dbd_mysql
Ubuntuにmysql-serverを入れ直す
この記事は
Ubuntuにmysql-serverを入れ直す
に引っ越しました。
Ubuntu 8.04にMySQL serverをインストールする
ずいぶん古い記事だったけど、とりあえずそれを参考に MySQL をインストールしてみようと思った。
続きを読む
MySQL, apache, phpの設定ファイル
よく忘れて探す時間がもったいないのでメモ。
MacPortsでインストールしているMySQL、Apache2、PHP5の設定ファイルは以下の場所にある。
(MacPortsで/opt以下にインストールしている場合)
MySQL5
/opt/local/etc/mysql5/my.cnf
Apache2
/opt/local/apache2/conf/httpd.conf
PHP5
/opt/local/etc/php.ini
ホーム > MySQL
- 検索
- フィード