72 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: 8.0 (reset)
InnoDB Clusterの構築だけMySQL Shellでやって、運用はSQLインターフェイスでやるのはアリ?

TL;DR

  • 調べたいこと
    • MySQL InnoDB Clusterの構築(と、その後の運用フェーズでメンバーの追加削除)だけMySQL Shellでやって、フェイルオーバーその他の動作はSQLインターフェイス( mysql コマンドまたはスクリプトなど) からだけできるか?
    • できた
  • …というちょっとした検証をしたい時にMySQL Shellは便利

日々の覚書: MySQL Shellのdba.deploySandboxInstanceでサクッとmysqldを起動する でやったのと同じ手順で、 ubuntu:latest (2019/11/12時点) なDockerコンテナに mysql-community-server, mysql-shell, mysql-router-community

[さらに読む]
MySQL Shellのdba.deploySandboxInstanceでサクッとmysqldを起動する

TL;DR

  • いつからできたのかは知らないけれど、気が付いたらMySQL Shellに dba.deploySandboxInstance() なんてものが出来ていてそれが感動的に楽なので熱が冷めないうちにメモ

如何に「MySQLとMySQL Shell以外他に何もいらない」かの感動を伝えるために、 ubuntu:latest のDockerコンテナを起動しただけの状態から始めます。 取り敢えず、 MySQLのaptリポジトリ の依存に指定されてるやつらをインストール。

# apt update
# apt install wget lsb-release gnupg

MySQLのaptリポジトリ

[さらに読む]
MySQL 8.0.18からCREATE USER, ALTER USER, SET PASSWORDで "RANDOM" を指定できるようになった

TL;DR

MySQL 8.0.18から、ランダムなパスワードを勝手に生成する RANDOM PASSWORD 構文が使えるようになった。
外部のパスワードジェネレータでいいじゃn ううんなんでもない。 CREATE USERALTER USER は、本来パスワード文字列を渡すところにそのまま RANDOM PASSWORD と置き換えると使える。

mysql80 18> CREATE USER b IDENTIFIED WITH mysql_native_password BY RANDOM PASSWORD;
+------+------+----------------------+
| user | host | generated password …
[さらに読む]
MySQL 8.0.17現在、PRIMARY KEYやUNIQUE KEYのCOLLATEを変更しても何故か再起動まで反映されない

TL;DR

まずは何も考えずに val varchar(32) にユニークキーを作る。
この時の collation_server はデフォルトの utf8mb4_0900_ai_ci のままで、「おっとこれって …

[さらに読む]
binlog_format= ROW + 式インデックス + mysqldumpでレプリケーションに失敗する可能性がある

TL;DR

  • MySQL Bugs: #96986: Column Ordinal Position Not orderly updating
  • 以下の4つの条件を満たすと MySQL error code MY-013146 (ER_SERVER_SLAVE_CONVERSION_FAILED): Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.32s' to type '%-.32s' が発火してSQLスレッドが止まる
    1. binlog_format= ROW である
    2. 式インデックスを使っている
    3. 式インデックスを作って以降、そのテーブルにカラムを追加した
    4. 論理バックアップからリストアしてスレーブを作成
[さらに読む]
MySQL 8.0.17のCLONE INSTANCE FROMを使うとすごく楽にレプリケーションスレーブが作れる

TL;DR

  • 日々の覚書: MySQL 8.0.17でついにCloneプラグインが入った で紹介した CLONE LOCAL DATA は現在のdatadirをローカルのファイルシステムに一貫性のある形でコピーするステートメントだった
  • これをスレーブになるサーバーに転送してやってももちろん良いんだけど、そこまで一括でやってくれる CLONE INSTANCE FROM のステートメントも存在する
  • スレーブ増やすのが捗る

CLONE INSTANCE FROM を使うためには、データのコピー元( ドキュメント 上では …

[さらに読む]
MySQL 8.0.17でついにCloneプラグインが入った

TL;DR

  • MySQL 8.0.17 でついに俺待望の Cloneプラグイン が追加された
    • CLONE LOCAL DATA DIRECTORY .. で、ローカルファイルシステムにほぼノンブロッキングで物理バックアップを吐き出す
    • CLONE INSTANCE FROM USER@HOST:PORT IDENTIFIED BY 'password' .. でグループレプリケーションの経路を使ってフツーのレプリケーションと同じ3306の経路を使ってインスタンスの丸コピーができるらしい
  • このへんを読んでおくのが良さげ
[さらに読む]
エラーログに 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 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 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 カラムに対して、ひらがなの “さん” とかが入力されるのを制限できる、みたいなヤーツ。 …

[さらに読む]
72 件中 1 - 10 件を表示
次の 10 件 »