2398 件中 1 - 10 件を表示
次の 10 件 »
MySQLのコネクションハンドリングとスケーリング

免責事項

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

[さらに読む]
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 …
[さらに読む]
Rails 6.0でDeprecatedになるActive Recordの振る舞い3つ

Deprecatedにした経緯というか背景が伝わってるのかどうかアレだと思ったので、ここに日本語にて書き記しておく。

Active Recordのuniqueness validatorはデフォルトでcase sensitiveな比較をするんですが、これが、文字列のデフォルトのcollationがcase insensitiveな …

[さらに読む]
MySQL 8の新機能 RESOURCE GROUP と 権限


RESOURCE GROUPはざっくり言うと、セッションごとに利用できるCPUを制限したり固定できる機能です。以前、試した記事はこちら
意図せず、CPUリソースを制限されてしまうことのないよう、RESOURCE GROUPと権限の関係を調べてみました。

結論

  • RESOURCE GROUPを作成するには、RESOURCE_GROUP_ADMIN 権限が必要
  • RESOURCE GROUPを適用するには、RESOURCE_GROUP_USER 権限が必要
    • RESOURCE_GROUP_USER 権限を持っていれば、他人のセッションのリソースグループも変更できる
    • RESOURCE_GROUP_USER権限を与えるかどうかは慎重に考えたほうがよさそう

検証   作成   mysql> CREATE RESOURCE GROUP OneCPU TYPE=USER …

[さらに読む]
Win7上でMicrosoftSQL Server を動作させる

タイトルだけ見ると「そんなのあたりまえじゃーん」と思うひとがほとんどですが、
実はあたらしめのバージョンのSQL ServerはWin 8.x以降、いや、ほとんどWin10でしか動作しないのです。。。。

SQL Server のバージョンは最新は2019だけど、Linuxで2018動作させているし、今回検証したいのは2016なので、当初Win7をサポートしていたSQL Server 2016 Express Editionをインストールしようとしました。
しかし、ダウンロードページにいくと、いまはSP2で、Win7は対象外、ダウンロードできても、動作しません、といわれて心が折れそうになる。(実は以前いろいろ試してだめだった経験が)

Microsoft® SQL Server® 2016 Service Pack 2 Express …

[さらに読む]
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 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 8.0.15現在、 SET PERSIST_ONLY にはあんまり手を出さない方が良いと思う

TL;DR

  • 手を出さない方がいいのはSET PERSIST_ONLYの話で、SET PERSISTは手を出してもいいと思う
  • SET GLOBAL, SET PERSIST には値をセットするためのバリデーター(各サーバー変数ごとにある)が用意されているが、 SET PERSIST_ONLY はそのバリデーターを通らないため、不正な値を突っ込んでもエラーになってくれない
  • mysqld を再起動しようとした時に、 mysqld-auto.cnfSET PERSIST, SET PERSIST_ONLY の保管先)に不正な値が突っ込んであるとそれを適用できなくて mysqld が起動してくれない
  • MySQL :: MySQL 8.0 Reference Manual :: 13.7.5.1 SET …
[さらに読む]
2398 件中 1 - 10 件を表示
次の 10 件 »