Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 821 to 830 of 3187 « Previous | Next »
MySQL 8.0.16にCHECK制約が来て、NOT ENFORCEDなんてものまでついてきた

TL;DR

  • MySQL 8.0.16 についに CHECK制約 が実装された
  • NOT ENFORCED なんてオプションが “MySQLっぽい”
  • ちなみにCHECK制約の追加はオンラインDDL不可、引っぺがすのはできる

最初のFeature Requestから15年、ついにMySQL 8.0.16にCHECK制約が実装された。

アルファベットしか入ってほしくない val カラムに対して、ひらがなの “さん” とかが入力されるのを制限できる、みたいなヤーツ。 …

[さらに読む]
MySQLの準同期レプリケーションに関する質問への回答と詳細

最近、メールで「MySQL Lossless Semi-Synchronous Replication」について質問されることがありました。この質問への答えは多くの人にとって有益であると考えたため、回答をこのブログ記事に書きたいと思います。回答を読めば、トランザクションのコミット、準同期レプリケーション、MySQLのクラッシュリカバリ、ストレージエンジン(InnoDB)クラッシュリカバリの内部挙動について理解できるでしょう。同時に、私がこれまで見聞きしてきたいくつかの誤解についても糾したいと思います。まずはそれら誤解の一つから始めましょう。

…

[さらに読む]
mysql_config_editor は シャープを含むパスワードをうまく扱えない

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 は シャープを含むパスワードをうまく扱えない

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 になってしまっています。
シャープは設定ファイルではコメントを示します。
…

[さらに読む]
Changes in MySQL 8.0.16 (2019-04-25, General Availability) を読む(1回目)

リリースノートを読んでみる

英語の勉強もかねてちょっとずつ読んでみる。

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). …
[さらに読む]
【祝】MySQL8.0.16登場!MySQLはその先に向かう。

とうとう来ました、待望のバージョンが!

僕はdocker-composeで遊んでるのでYAMLに

   mysql_8.0:
     image: mysql:8.0.16

と書いて再起動しただけでできましたが、中の人が

つ https://t.co/YFNApjZZUk

— 🐬🍣🍻 (@RKajiyama) April 25, 2019

と教えてくれたリンク先にも上がっていますので、公式が8.0.16になるまではリンクのほうで試してみると良いかと思います。

ftp.iij.ad.jp

(⇒4/25 …

[さらに読む]
MySQL 8.0.15現在、 SET PERSIST_ONLY にはあんまり手を出さない方が良いと思う

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 …
[さらに読む]
gh-ostの最後のステップの `RENAME TABLE ..` を任意のタイミングまで遅延させる

TL;DR

  • --postpone-cut-over-flag-file でテキトーなファイルを指定する
  • RENAME TABLE .. (gh-ostの cut-over フェーズ)をしても良いタイミングになったら、「指定したファイルを消す」または 「 Interactive commands の unpostpone コマンドを放り込む」

gh-ost …

[さらに読む]
データベースの分離レベルをめぐる冒険(I.イントロダクションとII.MySQLの場合)

とある原稿を書いていて、トランザクションまわりをチト調べている私です。

あまり深みに入らなければ、4つのトランザクション分離レベルと、それぞれのアノーマリを説明して、はい、終わり、ということにしたいのですが、私には以前気づいてしまった以下の記事があり「あれ、四つ多くない?」を細かく調べることなく放置していたのでした。

Web開発者が知っておくべき八つの分離レベル

しかし、ここで調べなければもやもやは晴れないですし、
神林さんがシリアライズでもパフォーマンスに問題のないRDBMSの実装が終わり、
…

[さらに読む]
「標準的なバスフォーマット(GTFS-JP)」勉強会#1 参画

 「標準的なバスフォーマット/GTFS 勉強会」(https://gtfs-jp20190420study.peatix.com/)に参加してきました。GTFSは、バスなどの交通機関の停車場や時刻などの記述方法を定めたもので、このフォーマットで作成したファイルを Google や 駅すぱあと や 乗換案内 などの会社さんに提供することで活用されます。分かりやすいところでは、Googleの経路検索などでの活用で、例えば遅延情報や臨時便/迂回運行などの情報を …

[さらに読む]