3134 件中 761 - 770 件を表示
« 前の 10 件 | 次の 10 件 »
MySQLで直感的じゃない動きをするRAND()とSYSDATE()について

端的にいうと

  • SELECTのWHEREの条件の「右辺」に、RAND()やSYSDATE()のような非決定性関数を使うと、想定外のことが起こる。
    • 戻ってくる行数が想定と異なる。
    • Indexが効かなくなる。(テーブルフルスキャン走る)


どっちもなかなかのインパクトです。

追記:2019/05/30

PostgreSQLMySQLと同じ挙動でした。(9.6と10系で確認)
Oracleは、MySQLや …

[さらに読む]
エラーログに MY-010956 と MY-010957 が出まくるはなし

TL;DR

  • MySQL 8.0同士でレプリケーションを組んでいると、スレーブから以下のような MY-010956MY-010957 がぼこぼこエラーログに吐かれることがある
2019-05-20T14:25:17.121864+09:00 5 [Warning] [MY-010956] [Server] Invalid replication timestamps: original commit timestamp is more recent than the immediate commit timestamp. This may be an issue if delayed replication is active. Make sure that servers have their clocks set to the correct time. No further message will be emitted until after timestamps become valid again.
2019-05-20T14:25:17.177804+09:00 5 [Warning] [MY-010957] [Server] The replication timestamps have returned to normal values.
  • 実害はほぼないはずだけど、エラーログの肥大化に注意
  • もうちょっと出力を穏やかにできないかね? ってFeature Requestを出した …
[さらに読む]
MySQLのコネクションハンドリングとスケーリング

免責事項

この記事はGeir Hoydalsvik氏によるMySQL Server Blogの投稿「MySQL Connection Handling and Scaling」(2019/3/19)をユーザが翻訳したものであり、Oracle公式の文書ではありません。

[さらに読む]
測量士補試験を受けてみた話

 MySQL 8.0 で GIS の機能が本格的になった(測地系の概念が入った)ことをきっかけに、位置情報的なものに興味を持った私です。最近はもう、MySQLの機能とは関係ないところで*1、緯度経度がどうやって決められているかとか、地図作るのにどうやって正確に場所を特定したり写真を上手に補正したりするんだろうという所に興味を持ったり、蘊蓄を語りたくなるポイント(地図学の聖地と呼んでいます)を訪問して密かに感動してみたり、勝手に盛り上がっています。 …

[さらに読む]
MySQL 8.0のSHOW TABLE STATUSが全然更新されない件

TL;DR

空っぽのテーブルを用意する。

mysql80 111566> SHOW TABLE STATUS\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0 …
[さらに読む]
MySQLの管理者用ネットワークインタフェース(administrative network interface)を試す


MySQL 8.0.14 から DB管理者用 に追加でネットワークインタフェースを設けることができるようになりました。

このように、接続あふれを起こしているときでも、管理者用IFであれば接続できます。

$ mysql -P3306 -uroot -pPass%word123 -h db01
ERROR 1040 (HY000): Too many connections

# 3307の管理者用IFに接続
$ mysql -P3307 -uroot -pPass%word123 -h db01
mysql> 

利用するには、admin_port と admin_address を設定します。ポート番号(admin_port)だけでなく、LISTENするIPアドレス(admin_address)も指定する必要があります。

[mysqld]
admin_address=db01
admin_port=3307

admin_address を省略したり、ワイルドカードを使うことはできないようです。

[さらに読む]
MySQLの管理者用ネットワークインタフェース(administrative network interface)を試す


MySQL 8.0.14 から DB管理者用 に追加でネットワークインタフェースを設けることができるようになりました。

このように、接続あふれを起こしているときでも、管理者用IFであれば接続できます。

$ mysql -P3306 -uroot -pPass%word123 -h db01
ERROR 1040 (HY000): Too many connections

# 3307の管理者用IFに接続
$ mysql -P3307 -uroot -pPass%word123 -h db01
mysql

利用するには、admin_port と admin_address を設定します。ポート番号(admin_port)だけでなく、LISTENする …

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

[さらに読む]
3134 件中 761 - 770 件を表示
« 前の 10 件 | 次の 10 件 »