TL;DR
- MySQL 8.0.16 についに CHECK制約 が実装された
-
NOT ENFORCEDなんてオプションが “MySQLっぽい” - ちなみにCHECK制約の追加はオンラインDDL不可、引っぺがすのはできる
最初のFeature Requestから15年、ついにMySQL 8.0.16にCHECK制約が実装された。
アルファベットしか入ってほしくない val カラムに対して、ひらがなの “さん”
とかが入力されるのを制限できる、みたいなヤーツ。 …
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
TL;DR
NOT ENFORCED なんてオプションが “MySQLっぽい”
最初のFeature Requestから15年、ついにMySQL 8.0.16にCHECK制約が実装された。
アルファベットしか入ってほしくない val カラムに対して、ひらがなの “さん”
とかが入力されるのを制限できる、みたいなヤーツ。 …
最近、メールで「MySQL Lossless Semi-Synchronous Replication」について質問されることがありました。この質問への答えは多くの人にとって有益であると考えたため、回答をこのブログ記事に書きたいと思います。回答を読めば、トランザクションのコミット、準同期レプリケーション、MySQLのクラッシュリカバリ、ストレージエンジン(InnoDB)クラッシュリカバリの内部挙動について理解できるでしょう。同時に、私がこれまで見聞きしてきたいくつかの誤解についても糾したいと思います。まずはそれら誤解の一つから始めましょう。
…
[さらに読む]
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 になってしまっています。
シャープは設定ファイルではコメントを示します。
…
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 GLOBAL, SET PERSIST
には値をセットするためのバリデーター(各サーバー変数ごとにある)が用意されているが、 SET
PERSIST_ONLY はそのバリデーターを通らないため、不正な値を突っ込んでもエラーになってくれない
mysqld を再起動しようとした時に、 mysqld-auto.cnf
( SET PERSIST, SET PERSIST_ONLY
の保管先)に不正な値が突っ込んであるとそれを適用できなくて mysqld が起動してくれない
TL;DR
--postpone-cut-over-flag-file でテキトーなファイルを指定する
RENAME TABLE .. (gh-ostの cut-over
フェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commands の
unpostpone コマンドを放り込む」
gh-ost …
[さらに読む]
とある原稿を書いていて、トランザクションまわりをチト調べている私です。
あまり深みに入らなければ、4つのトランザクション分離レベルと、それぞれのアノーマリを説明して、はい、終わり、ということにしたいのですが、私には以前気づいてしまった以下の記事があり「あれ、四つ多くない?」を細かく調べることなく放置していたのでした。
Web開発者が知っておくべき八つの分離レベル
しかし、ここで調べなければもやもやは晴れないですし、
神林さんがシリアライズでもパフォーマンスに問題のないRDBMSの実装が終わり、
…