- 追加された行はこの色です。
- 削除された行はこの色です。
オラクルは、企業であり、そのため、わからないように、
* 仮説 [#b95a24f4]
罠をしこんでいるという仮説
初めに、断っておくが、このページは、仮説である。
# 環境変数
オラクルは、企業であり、フリーのMySQLをよく思ってないのではないだろうか?
だから、MySQLを買収し、コントロールしようとしてているのではないだろうか?
どのようにMySQLをコントロールしようとしているのだろうか?
MySQLの評価を下げ、Oracleの優位をアピールするのがOracle社の利益につながると仮定する。
そのため、企業に非がないよう、利用者にはわからないように、
罠をしこんでいるという仮説を立ててみる、いけてないMySQLのデフォルト設定を監視する
自分は、以下のものがそうなのでは?と仮説を立てている。
* 裏付ける事例 [#d05e42b8]
** Javaインストール時の環境変数 [#vc8d4e93]
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
を仕込む
優先的に、自社のJava.exeを読み込むようなしくみ?
とりあえず、Spring Bootの開発環境である、stsを起動させなくする仕組みのようだ。
sts.iniの-vmオプションの設定よりも、優先的に働くようになっている。
削除しておこう。
** MySQLのデフォルトのトランザクション分離レベルが、楽観的ロックに、向いていないレベルになっている。 [#u8cc9cb7]
spring boot つかってて、そう思った。
システム作るときに、一番最初に、この仕組みを検証した、レイヤーをちゃんと実装してから、横展開しないと、あとで、きずいて、カッコ悪い設計になるぞ。
** MySQL5.7から日付のミリ秒対応がなされたが、ここでオラクルはデフォルトでミリ秒は切り捨てではなく、四捨五入して値を格納するようにしてしまった。 [#x0878a24]
*** 対策 [#be32e237]
これに対応するには、DB格納前に、ミリ秒を切り捨てにする実装にしないと、59:59.999が00:00.000として登録されて、秒数不一致になってしまう。