mysql_config_editor は ログイン情報を管理するためのコマンドです。
~/.mylogin.cnf に難読化されたIDやパスワード、接続先の情報が記録されます。
$ strings .mylogin.cnf
#Xu*|
難読化されているので、中身を確認するには、my_print_defaults コマンドで表示する必要があります。
$ my_print_defaults client -s
--user=root
--password=Pass
--host=localhost
さて、このコマンドなんですが、シャープを含む文字列をうまく扱えないバグがあります。
Pass#word123 というパスワードが Pass になってしまっています。
シャープは設定ファイルではコメントを示します。
…
リリースノートを読んでみる
英語の勉強もかねてちょっとずつ読んでみる。
Account Management Notes
DROP ROLE権限について
> Previously, users who had the DROP ROLE privilege could use the DROP ROLE statement to drop locked or unlocked accounts. 以前は、DROP ROLE権限を持っていたユーザーはこのDROP ROLEステートメントを使用してロックまたはロックされていないアカウントを削除できました。 > Now, users who have the DROP ROLE privilege can use DROP ROLE only to drop accounts that are locked 現在、DROP ROLE 権限を持つユーザーは、ロックされているアカウントを削除するためだけに使用できます > (unlocked accounts are presumably user accounts used to log in to the server and not just as roles). …[さらに読む]
とうとう来ました、待望のバージョンが!
僕はdocker-composeで遊んでるのでYAMLに
mysql_8.0:
image: mysql:8.0.16
と書いて再起動しただけでできましたが、中の人が
— 🐬🍣🍻 (@RKajiyama) April 25, 2019
と教えてくれたリンク先にも上がっていますので、公式が8.0.16になるまではリンクのほうで試してみると良いかと思います。
(⇒4/25 …
[さらに読む]TL;DR
- 手を出さない方がいいのはSET PERSIST_ONLYの話で、SET PERSISTは手を出してもいいと思う
-
SET GLOBAL,SET PERSISTには値をセットするためのバリデーター(各サーバー変数ごとにある)が用意されているが、SET PERSIST_ONLYはそのバリデーターを通らないため、不正な値を突っ込んでもエラーになってくれない -
mysqldを再起動しようとした時に、mysqld-auto.cnf(SET PERSIST,SET PERSIST_ONLYの保管先)に不正な値が突っ込んであるとそれを適用できなくてmysqldが起動してくれない - MySQL :: MySQL 8.0 Reference Manual :: 13.7.5.1 SET …
TL;DR
-
--postpone-cut-over-flag-fileでテキトーなファイルを指定する -
RENAME TABLE ..(gh-ostのcut-overフェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commands のunpostponeコマンドを放り込む」
gh-ost …
[さらに読む]
とある原稿を書いていて、トランザクションまわりをチト調べている私です。
あまり深みに入らなければ、4つのトランザクション分離レベルと、それぞれのアノーマリを説明して、はい、終わり、ということにしたいのですが、私には以前気づいてしまった以下の記事があり「あれ、四つ多くない?」を細かく調べることなく放置していたのでした。
Web開発者が知っておくべき八つの分離レベル
しかし、ここで調べなければもやもやは晴れないですし、
神林さんがシリアライズでもパフォーマンスに問題のないRDBMSの実装が終わり、
…
gh-ost には interactive-command なるものが用意されている。 これは
gh-ost を 起動しちゃった後
、後からオプションを変更したりする機能を提供しているっぽい。 デフォルトではソケットファイルのみオープンする。デフォルトのパスは
/tmp/gh-ost.<スキーマ名>.<テーブル名>.sock 。
パスを変えたかったりTCP経由も受け付けてほしい時は gh-ost
--serve-socket-file=/tmp/hoge や gh-ost
--serve-tcp-port=9999 とかで設定できる。
$ gh-ost --database=mysqlslap --table=t1 --alter="ADD KEY (intcol1)" --host=127.0.0.1 --port=21801 --user=msandbox …[さらに読む]
MySQL 8 は MySQL 5.7 より常に高速とは限らない(MySQL 8 is not always faster than MySQL 5.7) に続いて、 今回は、データがメモリに収まっており、CPUバウンドな、read only のとてもシンプルなワークロードのテストをすると決めました。このワークロードにIO処理はありません、メモリとCPUの処理だけです。
テスト環境
環境のスペック
- Release | Ubuntu 18.04 LTS (bionic)
- Kernel | 4.15.0-20-generic
- Processors | physical = 2, cores = 28, virtual = 56, hyperthreading = yes
- Models | 56xIntel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz<
- Memory Total | 376.6G
- Provider | packet.net x2.xlarge.x86 instance
oltp_read_only と oltp_point_select …
[さらに読む]TL;DR
- マスターに接続する(
--allow-on-master)場合、--throttle-control-replicas myhost1.com:3306,myhost2.com:3306で遅延監視対象を指定する- スレーブからbinlogを吸い上げてマスターに当て込む場合は、接続先のスレーブで遅延監視をする
- 閾値は
gh-ost --max-lag-millis 1000で指定する (デフォルト1500ミリ秒) -
SHOW SLAVE STATUSは叩かず、*_ghcテーブルに書き込んだハートビートの行と現在時刻の差分で計算する-
--test-on-replicaか--migrate-on-replicaの時だけSHOW SLAVE STATUSするっぽい
-
-
SHOW SLAVE STATUS…