NI-Lab.

nilog:

← 前の日 2015-02-27 次の日 →
← 一年前 一年後 →
Twitter (2015-02-27)
最新版バージョン Connector/J 5.1.34
"MySQL Connector/J is the official JDBC driver for MySQL."

MySQL :: Download Connector/J http://dev.mysql.com/downloads/connector/j/
[t] 2015-02-27 21:07:40
関連するかも情報
最新版バージョン Connector/J 5.1.34
"MySQL Connector/J is the official JDBC driver for MySQL."

MySQL :: Download Connector/J http://dev.mysql.com/downloads/connector/j/
[t] 2015-02-27 21:07:40
Oracle web アカウントでログイン……しなくてもOKだった( ´∀`)

「No thanks, just start my download.」

MySQL :: Begin Your Download http://dev.mysql.com/downloads/file.php?id=454397
[t] 2015-02-27 21:10:25
中に入ってた README.txt にはライセンス情報しか載っていない。。。
役に立ちそうなファイルは docs/README.txt かな。MySQL 4.1, 5.0, 5.1, 5.5, 5.6, and 5.7 で使えるみたいなことが載ってたり。
[t] 2015-02-27 21:17:05
mysql-connector-java-5.1.34-bin.jar を導入してみたけど、特に問題は出ていないっぽい。
[t] 2015-02-27 21:29:30
my.cnf で utf8 を指定している箇所を utf8mb4 に変更して、MySQL を再起動。
[t] 2015-02-27 21:35:21
MySQL monitor に入って、

mysql> show variables like '%character_set%';

ってやってみたら、

character_set_database がまだ utf8 になってる。
[t] 2015-02-27 21:41:43
データベースの 文字コードを utf8mb4 に変更。

mysql> alter database foobardb default character set utf8mb4;

character_set_database が utf8mb4 になった。
[t] 2015-02-27 21:44:26
character_set_system も utf8 のままだけど、これはこれで良さそう。
[t] 2015-02-27 21:46:38
"the character_set_system system variable to the name of the metadata character set"

MySQL 5.5 Reference Manual http://dev.mysql.com/doc/refman/5.5/en/charset-metadata.html
[t] 2015-02-27 21:47:34
テーブルの文字コードを調べてみたら、

mysql> show create table foobartbl;

テーブルはまだ utf8 だった。

ENGINE=InnoDB DEFAULT CHARSET=utf8
[t] 2015-02-27 21:49:52
テーブルの文字コードを変更。

mysql> alter table foobartbl default character set utf8mb4;
Query OK, 160325 rows affected (13.11 sec)
[t] 2015-02-27 21:52:46
mysql> show create table foobartbl;

したら、

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

おー、テーブルの文字コードが utf8mb4 になった。
[t] 2015-02-27 21:55:03
でも、カラムの情報に

`foobarclm` text CHARACTER SET utf8 NOT NULL,

なんて表示されるようになってしまった。
次はカラムを utf8mb4 にしないと。
[t] 2015-02-27 21:55:27
文字列系のカラムをまとめて utf8mb4 に変更。

mysql> alter table foobartbl convert to character set utf8mb4;
Query OK, 160325 rows affected (10.87 sec)
[t] 2015-02-27 21:58:50
`foobarclm` text CHARACTER SET utf8 NOT NULL,

が、

`foobarclm` mediumtext NOT NULL,

になった。
[t] 2015-02-27 22:01:24
テーブルは ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 なので、カラムも同じ文字コードになったということでいいんだろうけど、
text 型が mediumtext 型になってしまったのはなんでなの。。。
[t] 2015-02-27 22:01:41
MySQL :: MySQL 5.5 Reference Manual :: 13.1.7 ALTER TABLE Syntax http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
[t] 2015-02-27 22:02:07
MySQL :: MySQL 5.5 Reference Manual :: 11.4.3 The BLOB and TEXT Types http://dev.mysql.com/doc/refman/5.5/en/blob.html
[t] 2015-02-27 22:03:09
MySQL :: MySQL 5.5 Reference Manual :: 11.9 Using Data Types from Other Database Engines http://dev.mysql.com/doc/refman/5.5/en/other-vendor-data-types.html
[t] 2015-02-27 22:06:09
MySQL :: MySQL 5.5 Reference Manual :: 11.7 Data Type Storage Requirements http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html
[t] 2015-02-27 22:07:02
・TEXT:64KBまでの可変長文字列
・MEDIUMTEXT:約1.6MBまでの可変長文字列
・LONGTEXT:約4.3GBまでの可変長文字列

MySQLのテキスト型 | Koumei Soft 開発ログ http://blog.ks2.info/?p=462
[t] 2015-02-27 22:07:45
・TEXT[(M)] 最長65,535 (216 - 1) バイト
・MEDIUMTEXT 最長16,777,215 (224 - 1) バイト

BLOB型とTEXT型 - MySQLのデータ型 - MySQLの使い方 http://www.dbonline.jp/mysql/type/index6.html
[t] 2015-02-27 22:08:21
まあ、デカいのが入るようになったんだからいいか。。。
[t] 2015-02-27 22:08:41
基本的にテーブルとカラムはこの2つを実行すれば良し
alter table <table name> default character set utf8mb4;
alter table <table name> convert to character set utf8mb4;
[t] 2015-02-27 22:10:21
と思ったらエラー出た(´・ω・`)

varchar(255)とかのカラムがダメなのかもしれない。
[t] 2015-02-27 22:13:15
mysql> alter table hogetbl convert to character set utf8mb4;
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
[t] 2015-02-27 22:13:25
varchar(256)にしておけばよかったのかも。
[t] 2015-02-27 22:14:24
@y_aki インデックス貼っていない varchar(255) はエラー出ないのでそうかもしれないです。。
[t] 2015-02-27 22:18:29
@y_aki おぉ・・・ありがとうございます。
[t] 2015-02-27 22:23:39
MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 - かみぽわーる http://blog.kamipo.net/entry/2012/11/13/102024
[t] 2015-02-27 22:24:01
「MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値が767バイトという制限がある」
「MySQL 5.5.14以降だとinnodb_large_prefixというオプションが追加されてて、キープレフィックスの制限を3072バイトまで拡張できます」
[t] 2015-02-27 22:24:23
「ただし、ROW_FORMATをDYNAMICかCOMPRESSEDにする必要がある(デフォルトはCOMPACT)」
[t] 2015-02-27 22:27:49
"使用できるフィールド長は以下になります。
UTF8の場合・・・・767 ÷ 3 =255byte
UTF8MB4の場合・・767 ÷ 4 =191byte"

MySQLのPK・UNIQUEのフィールド長制限に立ち向かう http://treeapps.hatenablog.com/entry/20110508/p2
[t] 2015-02-27 22:29:11
@_HANGEDMAN_ ありがとうございます。最初の何文字かをインデックスするように指定するんですね。
[t] 2015-02-27 22:36:51
「col_name(length) 構文を利用して、カラム値の最初に部分だけを利用するインデックスを作成」

長い文字列が格納されるカラムに対してINDEXを張る場合には、プリフィックス長を指定してみる - Enjoy*Study http://blog.enjoyxstudy.com/entry/20110430/p1
[t] 2015-02-27 22:37:38
デカいテーブルだからなのか処理がぜんぜん終わらない。。
[t] 2015-02-27 22:50:37
もうひとつ MySQL monitor を起動して、他の作業を。
[t] 2015-02-27 23:02:00
とりあえず、インデックス長の制限にひっかからない text カラムだけを utf8mb4 化。

mysql> alter table テーブル名 modify column カラム名 text character set utf8mb4;
[t] 2015-02-27 23:03:25
[話題急上昇中ワード]
1. 魔法にかけられて
2. 岡田
3. 白金
4. 永遠の0
5. 日本アカデミー賞
6. ウロボロス
7. 黒沢
8. mステ
9. 池松
10. 椎名林檎
http://searchranking.yahoo.co.jp/realtime_buzz/ #buzzbot
[t] 2015-02-27 23:05:05
必要なところは utf8mb4 化できた。問題なく動作してるように見える。
[t] 2015-02-27 23:05:31
@Dominion525 いまの時点では検証できないのでこわくて、最低限必要なカラムだけ utf8mb4 化して逃げています(;´Д`)
[t] 2015-02-27 23:12:57
mysql> show processlist;
mysql> kill <Idを指定>;

MySQLで実行中のSQLをキャンセルする | dTblog http://www.deftrash.com/blog/archives/2009/04/mysql_kill.html
[t] 2015-02-27 23:13:45
MySQL monitor を別に起動して、

mysql> show processlist;

で調べてみたら、該当の処理の State が copy to tmp table だったので、さっくり

mysql> kill 2908;

(2908がIdだった)で強制終了。
[t] 2015-02-27 23:15:55
kill したら、ぜんぜん処理が終わらないほうの MySQL monitor が

"ERROR 2013 (HY000): Lost connection to MySQL server during query"

って、終了してくれた( ´∀`)
[t] 2015-02-27 23:16:53
これでなんとか復活。
[t] 2015-02-27 23:18:49
2015年02年27日のnilogをすべて表示する

- NI-Lab.
- Mastodon (@nilab@mastodon-japan.net)
- Twitter (@nilab)
- Timelog (@nilab)
- はてなブックマーク (id:nilab)

Web Services by Yahoo! JAPAN