mysql

mysqlコマンドのエラー出力をログに吐く #mysql

mysqlコマンドは問題発生時はエラー出力にメッセージを吐くので、標準エラーをファイルにリダイレクトしてやればよい。 mysql -u root sample_db < test.sql >> result.log 2>> error.log この場合だと、test.sqlを実行した結果、result.logに標準出力が、er…

MySQLのConnector/J (JDBC)のconnectTimeoutとsocketTimeout #MySQL

MySQLのConnector/J (JDBC)にはconnectTimeoutとsocketTimeoutのパラメータがあり、JDBCの接続文字列に追加することで設定できる。 MySQL :: MySQL Connector/J 5.1 Developer Guide :: 5.1 Driver/Datasource Class Names, URL Syntax and Configuration Pr…

mysqlのdockerイメージを使ってみた #MySQL #docker

概要 DockerHubにあるMySQLの公式イメージを使ってみた。 ※Docker for Mac使用 https://hub.docker.com/_/mysql/ イメージを持ってくる 5.6のイメージを使ってみることにする。 $ docker pull mysql:5.6 ダウンロードを確認 $ docker images 起動する とりあ…

すでに存在するデータベースにFlywayを適用する(その2) #flyway

概要 下記記事の続き。 今度はbaselineの設定を活用して、SQLとFlywayの足並みを調整する。 su-kun1899.hatenablog.com テスト用のデータベースを作る create database if not exists flyway_sample character set utf8 flyway管理外のテーブルを追加する my…

すでに存在するデータベースにFlywayを適用する #flyway

概要 Baselineを使って、MySQL+Mavenで、FlywayによるDB構成管理を既に存在するデータベースに適用する。 Flyway by Boxfuse • Database Migrations Made Easy. テスト用のデータベースを作る create database if not exists flyway_sample character set ut…

mysqldumpでROW_FORMATが出力されなくなった #mysql

現象 MySQLを5.5から5.6にしたら、mysqldumpした際のDDL( CREATE TABLE とか)に、ROW_FORMATが出力されなくなった。 importでこけたので調査してみたらCompactで作成されており、追いかけてみるとdumpした時点のDDLにROW_FORMATの出力がなかった。 エラーメ…

MySQL、localhostだとポート指定オプション効かないってマジですか。。

検証用のMySQLデータベースをせっかくなのでDockerコンテナで作ったら、接続できないという事態。 docker run -d -p 13306:3306 --name mysql-for-local mysql-for-local こんな感じでコンテナを起動して mysql -u root -D my_db -h localhost -P 13306 -A …

オプティマイザが吐き出したクエリを確認する #mysql

概要 オプティマイザが実際に組み立てたクエリを確認する方法です。 実行結果や取得結果が期待通りにならない時など、ヒントが隠されているかもしれません。 手順 EXPLAINの後ろにEXTENDEDを追加するとWARNINGとして、オプティマイザが吐き出したクエリが出…

mysqlのパスワード忘れた #mysql

ローカルのmysqlつなごうとしたら、rootのパスワード設定したのにパスワードを忘れた。 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.11 Homebrew mysqlを停止 mysql.server stop safeモー…

MySQL5.7にしたら今まで動いていたSQLがエラーになった #mysql

原因 デフォルトのSQLモードが違うための模様 http://qiita.com/nagi244/items/04747f8e4ec351b22311 Expression #n of SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.b.name' which is not functionally dependent on …

MySQLでカラムの値から一部を取り出す

こんなテーブルと値があるとする。 id(number) profile(varchar) 1 sex:male, name:yamada, age:30 2 sex:female, name:sato, age:20 ここから、nameの値だけを取り出すことを目的にする。 name yamada sato SQL select LEFT( SUBSTRING( profile, LOCATE('n…

MySQLではIN句とサブクエリの組み合わせはインデックスが効かない #mysql

概要 タイトルそのまま。 MySQLは仕様として * サブクエリを含むSQLは外側から先に実行される * IN句とサブクエリの組み合わせは内部的にEXISTSに変換する 対策 サブクエリの使用を避ける JOINに書き換える サブクエリを切り出してSQLを組み立てる(2回SQL…