oinume journal

Scratchpad of what I learned

MySQL

Problems when updating MySQL from 5.7 to 8.0

Introduction I updated MySQL from 5.7 to 8.0. There were some problems when updating. This is just a memo how to solve the problems. InnoDB deprecated file format parameters These parameters are deprecated in 8.0. innodb_file_format innodb…

mysqldumpで特定のレコードだけエクスポートする

忙しい人向けまとめ mysqldumpの--whereオプションを使うと特定のレコードだけmysqldumpできる --whereにはLIMIT句も指定できる --whereオプションで大量のデータから一部だけをmysqldumpすることが可能 本文 mysqldump、データだけエクスポートしたりCREATE…

HerokuでMySQL 5.7系を使う方法

JawsDBというaddonを使うともれなく5.7系のMySQLが使える。2016年9月現在だと5.7.11。 elements.heroku.com HerokuのデフォルトのデータベースはそもそもPostgreSQLで、MySQLを使いたい場合はこのJawsDBもしくはClearDBの2者択一なんだけど、ClearDBの方は5.…

MySQL Casual Talks vol.9でしゃべってきた

表題の通りでMySQL Casualで「カジュアルに本番データを開発環境に入れる」というタイトルで発表してきました。 カジュアルに本番データを開発環境に入れる #mysqlcasual from Kazuhiro Oinuma 当日はカジュアルウォーターを飲んでしまい発表時に顔が真っ赤…

Amazon RDS for Aurora 東京ローンチ記念セミナー

Auroraの検討を導入していることもあり、11/10のAmazon RDS for Aurora 東京ローンチ記念セミナーに行ってきたのでそのメモ書きと感想。 Debanjan Saha, GM, Amazon Aurora Auroraチームの人。AuroraはAWS史上最速で成長しているサービスと言っていた。 エン…

MySQLでbulk insert + on duplicate key updateしたい

MySQLでINSERT INTO hoge VALUES (...), (...), (...) のBulk insertでon duplicate key update(すでにレコードがあったらUPDATEで上書きする)って併用できるのかな?っていうのが気になったので調べてみたらVALUES関数を使ってできるみたい。

Get auto increment values from MySQL information schema

Information schema is metadata about MySQL. We can obtain useful information from it. For example, I get current auto increment values by following SQL. SELECT t.table_name, t.auto_increment FROM information_schema.tables AS t WHERE t.tabl…

Duplicating a MySQL table schema and data

Duplicate foo table into foo_20150904 /* Create a new table from foo's schema */ > CREATE TABLE foo_20150904 LIKE foo; /* Insert whole data into a new table */ > INSERT INTO foo_20150904 SELECT * FROM foo;

RDS(MySQL)のバイナリログはすぐ消えるから注意

RDSではバイナリログはすぐ消えてしまう。もし自前でスレーブを立てたりするためにバイナリログをある程度とっておきたい場合はプロシージャを実行することで保持期間を伸ばすことができる。

MySQL 5.6で本当にオンラインでDDLが実行できるか検証してみた

MySQL 5.6でオンラインでDDL実行してもレコードのINSERT, UPDATEが本当にブロックされないか調べてみた。結論としては本当にブロックされなかった。

MySQLでデータベースをコピーする

mysql -u -p -e 'create database destination' mysqldump -u -p source | mysql -uabc -pxyz destination mysql -u -p -e 'drop database source' 良い子は source と destination 逆にしたりしないようにね。 [tmkm-amazon]4774142948[/tmkm-amazon]

MySQLでbulk insertの途中でエラーになった場合の挙動

MySQLで insert into ... values (1, 'x'), (2, 'y'); のようにbulk insertした時に、途中でエラーになった場合にどういう挙動をするかを調べてみた。普通に考えれば「全てのレコードがinsertされてない」になるはずだと思ったんだけど一応。試したMySQLのバ…

MySQL 5.5をMac OSXにインストールする

公式のバイナリを落としてインストールするのが一番楽かなーと思っている。自動起動もできるし。 MySQL :: Download MySQL Community ServerからMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロード。DMGを開いて mysql-5.5.25a-osx10.6-x86_64.pk…

MySQLをインストールした後に設定する項目(5.5編)

[permalink id=174]このエントリ[/permalink]のMySQL 5.5版。大体本家のドキュメントのこことかにちゃんと説明項目が書いてあるので、詳しくはそっちを読むのがいいかと。 user = mysql pid-file = /var/run/mysql/mysqld.pid socket = /var/run/mysql/mysql…

rlwrapを使ってmysqlコマンドのプロンプトに色をつける

どうもこんにちは。北海道に旅行中でこの記事は札幌のホテルから書いている oinume です。MySQL Casual Advent Calendarも11日目になりました。「MySQL Casualが全然カジュアルじゃない!」という意見をよく耳にするので、今日はウルトラカジュアルなエント…

ブログのMySQLを5.1から5.5にバージョンアップ

5.5ってどうなんだろう?と思ったので試しにこのブログのMySQLを5.1 -> 5.5にしてみた。 tar.gz のバイナリを取ってきて /usr/local/mysql-5.5.13-linux-2.6-i686 に展開して /usr/local/mysql にsymlink (バージョンアップに失敗したときにすぐに戻せるよう…

MuninでMySQLプラグインのグラフが描画されない時の解決方法

先日設定したサーバでMuninをインストールして監視していたのですが、どうもMySQL関連のプラグイン(mysql_bytes, mysql_queries, mysql_threadsなど)でグラフが描画されず、どうしたものかと思ってぐぐってみたところ、このエントリを見つけました。まさにビ…

MySQL 5.1の最新のソースからdebを作成する

以前[permalink id=331]MySQL 5.1の最新版のdebパッケージを作成する方法[/permalink]というエントリを書いたのですが、Ubuntuの最新の開発版パッケージではなく、MySQLが出している最新のMySQLのソースをビルドしてdebパッケージを作成する方法を見つけたの…

MySQLのdrop tableでは複数のテーブルを一気に削除できる

タイトル通りなんですが、今までは複数のテーブルを削除する時は > drop table hoge; > drop table fuga; なんてやってましたが、 > drop table hoge fuga; って書けるんですね。豆知識。 [tmkm-amazon]4774142948[/tmkm-amazon]

hbstudy#5に参加してきました

インフラエンジニアじゃないけどインフラエンジニア勉強会 hbstudy#5に参加してきました。もともとこのイベントには参加したいなぁと思っていて、参加登録したらいいタイミングで松信さんが講演することにw 貴重なMySQLのチューニングの話が生で聞けてとても…

MySQL 5.1の最新版のdebパッケージを作成する方法

Ubuntu 9.04にはMySQL 5.1のパッケージが用意されているのですが、バージョンが5.1.31であり最新ではないので(現時点で最新は5.1.37)、最新版のdebパッケージを作成する方法を紹介します。debを作成するといっても、開発中のUbuntuに入っているmysql-server-…

mysqldumpでバックアップをする時につけるオプション

MySQLのデータベースをバックアップする際にmysqldumpを使用しますが、個人的に「これはつけたらよさそう」と思っているオプションを紹介します。 --opt --quick --add-drop-table --add-locks --extended-insert --lock-tables を指定するのと同じです。ダ…

MySQLをインストールした後に設定する項目

MySQL 5.5用の設定は[permalink id=471]こちら[/permalink] 自分がMySQLをインストールしたあとに行う設定を備忘録がてら書いてみます。サーバのスペックによって若干変動するところもありますが、チューニングする項目というのは大体こんなもんでしょう。 u…

MySQLでテーブルのコピーを簡単に作る方法

hogeテーブルをhoge_20081123というテーブルにコピーする方法。 /* hogeテーブルのスキーマをコピーしてテーブル作成 */ > CREATE TABLE hoge_20081123 LIKE hoge; /* hogeテーブルのデータをINSERT */ > INSERT INTO hoge_20081123 SELECT * FROM hoge; た…