1969 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
mysql_install_dbが生成する.mysql_secretのパスワード形式が5.7で変更になってる

5.7.4をちょこちょこいじっていてふと気付いた。


$ cat ~/.mysql_secret
# The random password set for the root user at Tue Sep 16 18:33:14 2014 (local time):
9dl}uOS35]s4pAa3


…あれ、なんか桁数とバリエーション増えてない?;


358 sub generate_random_password {
359   # On (at least) Linux and Solaris, a "random" device is available, use it:
360   # cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 8  | head -1
361   # Without LC_ALL, "tr" may not know the "alnum" character class -
362   # and there are user profiles which do not have this set.
363   #
364   my $password = `cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 8  | head -1`;
365   chomp ($password);
366   return $password;
367 }

[さらに読む]
MySQL 5.7で追加されたALTER TABLE .. RENAME INDEX

5.7.5が来る前に、5.7.4までのおさらい。

mysql57> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`num` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`val` varchar(32) DEFAULT NULL,
UNIQUE KEY `num` (`num`),
KEY `org_index` (`val`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql57> ALTER TABLE t1 RENAME INDEX org_index TO renamed_index;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql57> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`num` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`val` varchar(32) DEFAULT NULL,
UNIQUE KEY `num` (`num`),
KEY `renamed_index` (`val`)
) …
[さらに読む]
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 …

[さらに読む]
1969 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »