1967 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
LOAD DATA INFILEで複数ファイルを食わせるのにちょっとだけ有効なTIPS

LOAD DATA INFILEで複数のファイルを順番(じゃなくてもいいけど)食わせる場合を考える。

↓こんなかんじ


$ ll *.tsv
-rw-rw-r-- 1 mysql mysql 541810051 Sep 16 10:51 20140912.tsv
-rw-rw-r-- 1 mysql mysql 523910384 Sep 16 10:52 20140913.tsv
-rw-rw-r-- 1 mysql mysql 513351897 Sep 16 10:53 20140914.tsv
-rw-rw-r-- 1 mysql mysql 513221906 Sep 16 10:54 20140915.tsv



無圧縮なファイルなら、シェルでぐるんぐるん回すのが便利。

$ for f in *.tsv ; do
> mysql -sse "LOAD DATA INFILE $f INTO TABLE .." && gzip $f
> done



成功したらgzip圧縮とかそのまんま書けるのでラク。
ただし、圧縮ファイルだと"展開" => "LOAD DATA INFILE" => "再圧縮"とか書くのはちょっと面倒だしなんかイヤだ。

[さらに読む]
InfiniDBのERROR 122 Bulkload Read Failed.

気持ちよくLOAD DATA INFILEしてたら急に現れたこんなやつ。

mysql> LOAD DATA INFILE '/data/tmp/fifo' INTO TABLE vegelog;
ERROR 122 (HY000): PM1 : Bulkload Read (thread 0) Failed for Table d1.t1. Terminating this job.



ちなみにError 122はHandler層でのエラーらしい。

$ /usr/local/Calpont/mysql/bin/perror 122
OS error code 122: Disk quota exceeded
MySQL error code 122: Internal (unspecified) error in handler


結論だけ書くと、テーブルのスキーマと食わせてたtsvファイルが完全に一致していなかった。
MySQLのLOAD DATA INFILEを使ってやると勝手にtruncationされて入る…んだけど、スキーマちゃんと調整しました。


mysql> SELECT @@infinidb_use_import_for_batchinsert; -- これがONだとLOAD DATA …
[さらに読む]
InfiniDBにロードしている時に ERROR 122 (HY000): CAL0006: IDB-2008: The version buffer overflowed. と言われた

fifoファイル使ってごりごり流してたら怒られた。

mysql> LOAD DATA INFILE '/data/tmp/fifo' INTO TABLE infinidb_table
ERROR 122 (HY000): CAL0006: IDB-2008: The version buffer overflowed. Increase VersionBufferFileSize or limit the rows to be processed.


VersionBufferFileSizeを上げるのはいいんだけど、どれくらいが適正なのか、何をするパラメーターなのか、そもそもどこで設定するのかとかいろんな情報が出てこなくて困った。

とりあえず上げ方。


$ /usr/local/Calpont/bin/calpontConsole

InfiniDB> getSystemConfig
getsystemconfig Tue Sep 16 11:35:41 2014

System Configuration

SystemName = calpont-1
SoftwareVersion = 4.6.0
SoftwareRelease = 1
ParentOAMModuleName = pm1
StandbyOAMModuleName = unassigned
NMSIPAddr = 0.0.0.0 …
[さらに読む]
コンソールからMySQLでCOUNT .. GROUP BYするついでに視覚化してみる

想定しているのはこんなクエリー。


mysql56> SELECT DATE_FORMAT(timestamp, '%Y-%m') AS month, COUNT(*) AS count FROM tweets GROUP BY 1;
+---------+-------+
| month | count |
+---------+-------+
| 2010-08 | 3 |
| 2010-09 | 90 |
| 2010-10 | 21 |
..
| 2014-07 | 608 |
| 2014-08 | 575 |
| 2014-09 | 276 |
+---------+-------+
50 rows in set (0.09 sec)


全文検索のテスト用にtweets.csvを食わせるSQL のエントリーで書いたそのまんまのDDLでtweets.csvを食わせたテーブル。
コンソールから作業していてこんなクエリーを叩いてもちょっと味気がなかったので、ひねってみた。


mysql56> SELECT DATE_FORMAT(timestamp, '%Y-%m') AS month, …
[さらに読む]
MyISAMなテーブルに一括でmyisamchkをかける方法

2014年も半分以上過ぎたというのにMyISAMとか言わない。

myisamchkはテーブル名または.MYIファイル名を引数に取れるので、

$ find ./ -name "*.MYI" -exec myisamchk --silent -rq {} \;


datadirにcdしてこれだけでMyISAMなテーブルを順番にmyisamchkできる。


あー、InnoDBつかいたーい。

WHERE狙いのキー、ORDER BY狙いのキー の話を #yapcasia でしてきました

1か月くらい前のエントリー 日々の覚書: YAPC::Asia Tokyo 2014でMySQLのWHERE狙いのキーとORDER BY狙いのキーの話をします の通り、昨日(8/29)のYAPC::Asia 2014 1日目でトークしてきました。

トーク概要 => http://yapcasia.org/2014/talk/show/e495bc1a-f30d-11e3-b7e8-e4a96aeab6a4




Where狙いのキー、order by狙いのキー from yoku0825

[さらに読む]
LOAD DATA LOCAL INFILE .. REPLACE INTO ..の闇

LOAD DATA *LOCAL* INFILEはIGNOREキーワードを指定しなくてもエラーをWarningにフォールバックしてくれる。と思っていた。

With LOAD DATA LOCAL INFILE, data-interpretation and duplicate-key errors become warnings and the operation continues because the server has no way to stop transmission of the file in the middle of the operation. For duplicate-key errors, this is the same as if IGNORE is specified. IGNORE is explained further later in this section.Treatment of empty or incorrect field values differs from that just described if the SQL mode is set to a restrictive value. For example, if sql_mode='TRADITIONAL, conversion of an empty value or a value such as 'x' for a numeric column results in an error, not conversion to 0. (With LOCAL, warnings occur rather than errors, even with a restrictive sql_mode value, because the server has no way to stop transmission of the file in the middle of the …

[さらに読む]
MySQLの外部キー例:ERROR 1452

Original post - http://anothermysqldba.blogspot.com/2014/08/mysql-foreign-keys-example-error-1452.html

だから私は、フィールドを更新する必要が扱っ今日の状況に偶然出会ったため、ユーザは、関連する外部キー制約をそうすることができませんでした。 

このブログ投稿では、外部キーを示すとどのようにあなたがそうしなければならない場合は、それらを更新するための簡単​​な例であると。 

まず私たちは簡単なテーブルを作成してみましょうと、ランダムなデータを移入。 

CREATE TABLE `table_w_code` ( 
`SOMECode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
`NameofCode` varchar(50) COLLATE …

[さらに読む]
Percona ServerでMroongaの./configureに失敗したら

Percona Server 5.6.19にMroonga(故あってGroonga 3.1.0のnightly + Mroonga 3.10だけど)を載せようとしたら、configureスクリプトが転けた。


$ ./configure CFLAGS=-O3 CXXFLAGS=-O3 PKG_CONFIG_PATH=/usr/groonga/3.1.0.20131209/lib/pkgconfig --with-mysql-source=/usr/local/src/percona-server-5.6.19-67.0 --with-mysql-config=/usr/local/percona5619/bin/mysql_config
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
..
checking mysql source... yes
checking mysql_config... /usr/local/percona5619/bin/mysql_config
checking for libmysqlservices.a directory... configure: error: libmysqlservices.a is not found in </usr/local/percona5619/lib/mysql/> and </usr/local/percona5619/lib/mysql/mysql/>


libmysqlservices.aが見つからないんだって。

[さらに読む]
MySQLのSQLでNagiosに値を戻すスクリプト書いた

ぱっと見で見当たらなかったので書いた。

SQLで取得した値を評価して、Nagiosさんに戻り値を返すスクリプト。

https://github.com/yoku0825/my_script/blob/master/nagios_for_mysql.pl

こんな風に使う。


$ ./nagios_for_mysql.pl --user root --password xxxx --host 127.0.0.1 --port 64056 --sql "SELECT COUNT(*) FROM information_schema.processlist WHERE state IN ('update', 'updating') AND time > 10" --warning 10 --critical 20
$ echo $?
3


走行中(というかgrn_io_lock待ちだ)のスレッドの数を数えてみたり。


$ perl ./nagios_for_mysql.pl --user root --host 127.0.0.1 --port 64056 --sql "SELECT table_rows FROM information_schema.tables WHERE table_schema = 'mysql' AND …
[さらに読む]
1967 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »