読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

MySQL

innodb_read_only

読み取り専用オプション read_onlyとの違いは謎。 nulab-inc.com MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.12 InnoDB の起動オプションおよびシステム変数

mysql_user_module ansible

AnsibleでMySQLのDBのユーザー管理/権限管理ができる。ことを知る。 mysql_user - Adds or removes a user from a MySQL database. — Ansible Documentation

ubuntu mysql

ubuntu 17.04 雑にmysql-serverをaptでインストールして、mysql -uroot してもだめで、sudoしないといけない askubuntu.com

MySQLのダンプファイルをRDSへインポートする

mysqldump -u <local_user> \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -p<local_password> | mysql -u <RDS_user> \ --port=<port_number> \ --host=<host_name> \ -p<RDS_password> mysqldumpからパイプして、RDSのホストにリストアをぶっこむ。mysqldumpで作ったダンプファイルをリダイレクトしてもい</rds_password></host_name></port_number></rds_user></local_password></database_name></local_user>…

Cannot import database - SUPER privileges required

MySQLのダンプファイルをRDSへリストアしようとするときに、SUPER権限が必要だよって言われる事案。 ビューテーブルのDEFINERを消すとうまくいく。 https://forums.aws.amazon.com/thread.jspa?messageID=279776

MySQLのサンプルデータ

MySQL :: Other MySQL Documentation ↑にあるとおもったら、dumpしかなくって不完全なので、GitHubのtest_dbを使うことにした。 ちゅーか、mysql -uroot < employees.sql せいっちゅーて、本家にemployees.sqlがないってどういうことなのでしょう。 github.c…

speed up select statement

あとでちゃんと読む。 MySQL :: MySQL 5.7 Reference Manual :: 9.2.1.1 Speed of SELECT Statements

今日のMySQL

すっごい久々。 blog.trippyboy.com 現在の日付・時刻を取得する - MySQL 逆引きリファレンス www.dbonline.jp

mysql/hiveなどのeオプション

--execute=statement の略

ビュー

SELECT文を使う時に条件を指定することで取得するカラムを絞ったり取得するデータの条件を指定することができますが、テーブルから一部を取り出したものに名前を付け、あたかも独立したテーブルにように扱うようにしたものがビューです。 Oracleだとよく見る…

auto_incrementの解除について

ALTER TABLE `test_table` CHANGE `send_id` `send_id` INT( 11 ) NOT NULL 特別なSQLを投げるのではなく、changeをつかうこと。 ogawa7.blog.shinobi.jp

UbuntuでMySQL serverのパスワードを忘れたからって

別に自宅でごにょごにょ rootのパスワード忘れた stackoverflow.com qiita.com もうすこし調べて見る必要がありそう。 というか、パスワード思い出したからいいや。

alter tableの暗黙コミット

alter tableは暗黙コミットのもよう。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.3.3 暗黙的なコミットを発生させるステートメント

まずはuserから

よく打つコマンド。 覚えらんないので、rootユーザーから。mysql.userだけ覚えておけば。 mysql> select Host, User from mysql.user ;

min_examined_row_limitについて

スローログ関係のオプション。 5.6だと、 number 行より少ない行を検査するクエリーがスロークエリーログに書き込まれません。デフォルトは 0 なお、long_query_timeとの併用は可能であるが、このオプションを設定すると、long_query_time && min_examined_r…

MySQL docker my.cnfカスタマイズ

こんな感じでDockerfileを書いておく。conf/my.cnfはお好きにどうぞ。 FROM mysql:5.7 COPY conf/my.cnf /etc/mysql/conf.d/

aws-cliでつくろうRDS

作成。xxxxxの部分は適宜。あと、自分のcredentialのロールは確認しましょう。 $ aws rds create-db-instance --db-instance-identifier xxxxx \ --db-parameter-group-name xxxxx \ --allocated-storage 20 --db-instance-class db.t1.micro --engine mysql…

Percona slow query log

slow query log関係のドキュメント。本家MySQLよりパラメータが増えている。より詳細なログを吐ける、とのこと。 Slow Query Log

Percona ログローテート

設定としては、一定以上のファイルサイズを超えたらバックアップ(max_slowlog_size)。ファイル名の後ろに数字がインクリメンタルにつく。一定数のバックアップファイルができたら番号の若い順から消えていく(max_slowlog_files) Slow Query Log Rotation and…

slow logをfluentdで転送するやつのアレ

ググルの面倒だからメモっておく。 RDS(Amazon) qiita.com github.com MySQL github.com docs.fluentd.org

MySQLのcreate userでポチポチ

MySQLのユーザー追加が覚えきらない。 CREATE USER '{username}'@"{from_domain(ip)}" IDENTIFIED BY "{password}"; ユーザーを追加しようとするとOperation CREATE USER failed forってなる。 REVOKE ALL PRIVILEGES, GRANT OPTION FROM '{username}'@'{fro…

docker-composerとMySQL、雑多メモ

メモです。 qiita.com docs.docker.com yosugi.hatenablog.jp stackoverflow.com github.com

docker-composeとMySQL

@mapk0y ありがとうございます。意図したとおりに動きました。キーワードはdocker-entrypoint-initdb.dでした。— shigemk2 (@shigemk2) 2016年3月18日 ポイントは、docker-entrypoint-initdb.dに.shや.sqlファイルを置くと、コンテナが出来上がった後にそれ…

MySQL インデックス メモ

MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.3.1 MySQL のインデックスの使用の仕組み MySQL :: MySQL 5.5 Reference Manual :: 8.3.8 Comparison of B-Tree and Hash Indexes B-treeインデックスとHashインデックスだけ覚えておくのです。

MySQL replace

コメントに書いてあるのだけれど。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.8 REPLACE 構文 qiita.com UPDATE wp_posts SET post_content = REPLACE(post_content, 'olddomain.com', 'newdomain.com'); ココで使われているREPLACEがREPLACE構文…

Table 'performance_schema.session_variables' doesn't exist

stackoverflow.com こんなエラーに見舞われた Table 'performance_schema.session_variables' doesn't exist MySQL 5.7.10 MacOSX Yosemite mysql_upgrade -u root -p --force MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.4.7 mysql_upgrade — MySQL テ…

MySQLのgrantとかで思い出すこと

stackoverflow.com アクセスする側のドメインでアクセスを制御したりできる。 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.example.com' IDENTIFIED BY 'some_characters' WITH GRANT OPTION; FLUSH PRIVILEGES; stackoverflow.com The percent sign means al…

The server quit without updating PID file メモ

easyramble.com いろいろ原因があるけど、僕の場合は、複数のMySQLを入れていたのが原因だったと認識しています。(homebrewと後忘れました) とりあえず、MySQLのプロセスをkillしてたら、起動できました。

KVSのTTLについて

stackoverflow.com qiita.com KVSにはTTLという機能があり、その値よりも古いデータは自動的に削除してくれる。削除自体にはいろいろ気をつけないといけないポイントがあるらしいけども。 で、MySQLとかにはこのTTLの機能はデフォルトでは無いらしい。そうい…

論理削除は死亡フラグという話をメモる

メモるだけ。 blog.mogmet.com 変な名前の削除フラグを立てると「これなに?」ってなる でもdeleteよりは圧倒的に早い

郵便番号のデータをMySQLにぶっこむ 改

www.shigemk2.com 気づいたらCSVファイルがLZH圧縮からZIP圧縮に変わっていた。 $ wget http://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip それだけ。あとは、nkfで文字コードをUTF-8にするとかLOAD DATA INFILEとかは変わらない。

MySQL パフォーマンスのやつ

O'Reilly Japan - 実践ハイパフォーマンスMySQL 第3版 もろもろ。

Got error 124 from storage engine

わりと巨大なマージテーブルのcreate table時に、インデックスを貼る 条件はこれだけ。具体的にはselect出来ない。countは出来たけど。テーブル作成時にインデックスを貼らなければ、この問題は起きないもよう。 なお、create table時にインデックスを貼らず…

MySQLの1168エラー

前もやった気がするんだけど。 ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist マージテーブル絡みのエラー。 charset マージしたいテーブルが壊れている マージしたいテーブル…

MySQLの区切り文字

MySQLの区切り文字 ファイル出力だとinto outfileとか使えばいいんだけど、コマンドライン上でカンマ区切りとかにしたいときは、 sed s/\t/,/g などを使うと良い。というか、コマンドライン上でカンマ区切りにしたいとき、そういうオプションはmysqlにはない…

Got a packet bigger than 'max_allowed_packet' bytes

SQL実行でも起きるらしいけど、レプリケーションでも起きたりする。 SQL文が長いとか、SQL文でやりとりしようとしているデータの量が多いとか。 show variables like 'max_allowed_packet'; /etc/my.cnfのmax_allowed_packetの問題だったりするので、この値…

master.infoってなに

マスタからのバイナリログを読み込むためのスレッドの情報を保存したもの。 /var/lib/mysql/master.info に情報を保存 マスタに接続するために必要なアカウント情報も記録 MySQLレプリケーション備忘録 master.infoとrelay-log.info | Livingdeadの日記 | ス…

MySQLのbinlogを見たい

基本 $ mysqlbinlog mysql-bin.000100 > /tmp/statement.sql 時間指定 $ mysqlbinlog xxxxx-bin.003265 --start-datetime="2009-02-03 15:50:00" --stop-datetime="2009-02-03 16:00:00" > /tmp/3265_2.log mysqlbinlog: unknown variable 'default-characte…

MySQLでレプリケーションを絞る

5.7以前 レプリケーション対象を絞りたいとき - MySQL Casual Advent Calendar 2010 - MySQL Casual /etc/my.cnfでごにょごにょ。 5.7 以降 コマンドでごにょごにょ。 MySQL :: MySQL 5.7 Reference Manual :: 13.4.2.2 CHANGE REPLICATION FILTER Syntax

MySQLのレプリケーション遅延周りのリンク

show slave statusで確認 show slave statusのコマンドに従えばいいと思う。 MySQLレプリケーションの動作確認と不具合時の復旧方法 - 三十路エンジニアの備忘録+αd.hatena.ne.jp Seconds_Behind_Masterを確認したらいいと思う。0なら遅延なし。1以上なら遅…

show full processlist

実行中のプロセスの一覧を表示する - MySQL 逆引きリファレンス > show full processlist; 現在実行中のプロセス(実行SQLなど)を確認する。

ERROR 1248 (42000): Every derived table must have its own alias

FROMのあとの副問い合わせがUNION構文なときには、固有の名前を付けてあげないと駄目らしい。 『MySQLのUNION構文とかで試行錯誤したメモ』 MySQLのUNION構文とかで試行錯誤したメモ|“One-Code Blues” あと、create文でサブクエリを使うときもこのエラーが…

MySQLのチートシート リンク

SQLのチートシートって複雑っていうか、まとめづらいよね。select insert update drop create deleteだけまとめておけばいいのだろうかというと、流儀によって様々ですし MySQL/CheatSheet - Wikibooks, open books for an open world

条件つきでunionしたテーブルを新規作成する

最初は、 CREATE TABLE Aテーブル ENGINE=MERGE union = ( テーブル1, テーブル2, ..... ) みたいにしてやろうと思ったけど、unionしたいテーブルでwhere句で中身を指定したいときはどうしたらいいんだろう…ってなった。 で、アプローチを変えて、空のテーブ…

MySQLまわりで今日調べてみたこと

Oracleと同じようにJOIN出来るかどうか分からなかったので… 内部結合(INNER JOIN句) - データの取得 - MySQLの使い方 内部結合(INNER JOIN句) - データの取得 - MySQLの使い方 csvファイルをload fileしてデータを流し込む。 データを流し込むためにはテーブ…

今日のMySQL芸

MySQLで SQL をコマンドラインから直接実行する MySQLで SQL をコマンドラインから直接実行する - すがブロ MySQLで SQL をコマンドラインから直接実行する - すがブロ いい加減覚えようぜ… -eオプションが肝。 mysql -uユーザ名 -pパスワード DB名 -e'show …

ファイルのSQLを実行して結果をファイルに出力する

右から左へファイルの中身を受け流すイメージ。 Tips/ファイルに記述したSQL文の実行(MySQL) - Darksky::Website Tips/ファイルに記述したSQL文の実行(MySQL) - Darksky::Website $ mysql -u [user] -p[password] [database name] < hoge.sql > out.txt

server-idとレプリケーション

my.cnfに設定されてるserver-idについて。 全てのマスタ、スレーブの中で一意なserver-idを指定しなければならない。 現場指向のレプリケーション詳説 マスタに server-id を設定し忘れた場合、スレーブはマスタに接続できません。 スレーブに server-id を…

Read_Master_Log_PosとExec_Master_Log_Pos

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.6.2.7 SHOW SLAVE STATUS 構文 現場指向のレプリケーション詳説 Read_Master_Log_Pos I/Oスレッドが読み込んだマスタのバイナリログの位置 Exec_Master_Log_Pos SQLスレッドが最後に実行したクエリの、マス…

datadir

データベースディレクトリのこと。 実際にデータを保存するディレクトリのこと。テーブルやログがこのディレクトリに保存される。 MySQL徹底入門 第3版 ~5.5新機能対応~新品価格¥3,758から(2014/6/24 09:59時点)