目次
[さらに読む]TL;DR
前回作ったところから。
$ mysqlsh -S /usr/mysql/8.0.28/data/mysql.sock -uroot --database d1
root@150-95-141-50 [d1] (READ_WRITE)>
root@150-95-141-50 [d1] (READ_WRITE)> SHOW TABLES;
SyntaxError: Unexpected identifier
( ゚д゚) そう、何も指定していないのでこれはJavaScriptモードなのである。
メインで使う時はSQLモードなので、「SQLモードの時はこのまま、それ以外のモードの時はなんか出したい」と思う。
$ cat ~/.mysqlsh/prompt.json
{
"variables":
{
…
[さらに読む]
TL;DR
-
MySQL :: MySQL Shell 8.0 :: 13.3 Customizing the Prompt の情報は圧倒的に足りない
-
mysql-shell/README.prompt at master · mysql/mysql-shell を読むと良さそう
-
だがそれを差っ引いてもよくわからなかったので、ステップバイステップで作っていく記録
取り敢えず、 mysqlsh
が最初に食おうとするプロンプト用のJSONファイルは
~/.mysqlsh/prompt.json
, …
MySQL リリースノートでわいわい言う勉強会 8.0.28 を開催しました。 今年は、今までの常識に囚われずに色々試していこうということで、平日18時からの開催という変則的なトライアルでしたが、たくさんの人に参加していただき、ありがとうございました。主に喋っていたのは6人くらいだったでしょうか。たくさんの事を教えていただき、とても勉強になりました。mysql.connpass.com 今回は、何はなくともコレを世間に広く知らしめるべし、と感じたので、最初に貼っておきます。@yyamasaki1 さんがプレゼン資料の中で紹介してくれていた1ページです。要約すると、「MySQL配布ファイルの署名…
MySQL 8.0.28 から performance_schema
に
CPU_TIME
を記録できるようになりました。
これまでも実行時間は performance_schema
から確認できていました。ただ、実行時間が長いだけでは、そのクエリが必ずしもCPUに負荷をかけているクエリとは言いきれませんでした。
今回の機能追加で、CPUに負荷をかけているクエリがバシっと performance_schema
から確認できるようになったのは嬉しいですね(欲を言うと、CPU_TIME
を
スロークエリログにも出してほしいなぁ)。
デフォルトではOFFになっています。以下の設定を my.cnf …
[さらに読む]「竈門禰󠄀豆子」を MySQL に保存できるとかできないとかいう話題を見て、そう言えば MySQL の Grapheme Cluster 対応ってどうなってるんだっけ…と思ってググってみたら、MySQL 8.0.28 のリリースノートにこんな文を見つけた。
International Components for Unicode version 67 introduced a new
implementation for \X
(match a grapheme cluster),
which requires locale data not currently included with MySQL.
This means that, when using the version of ICU bundled with
MySQL, a query using \X
raises the error
ER_REGEXP_MISSING_RESOURCE
; when using ICU supplied
by the system, we report
ER_WARN_REGEXP_USING_DEFAULT
as a Note. (Bug
#33290090)
これは MySQL 8.0.28 で Grapheme Cluster の正規表現の \X
…
Illegal mix of collations
Illegal mix of collations
エラーは
異なる照合順序で結合や比較を行った場合に発生するエラーです。
mysql> SELECT CONCAT(_utf8mb4 'A' COLLATE utf8mb4_bin, _utf8mb4 'B' COLLATE utf8mb4_unicode_ci); ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_bin,EXPLICIT) and (utf8mb4_unicode_ci,EXPLICIT) for operation 'concat' mysql> SELECT _utf8mb4 'A' COLLATE utf8mb4_bin = _utf8mb4 'B' COLLATE utf8mb4_unicode_ci; ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_bin,EXPLICIT) and (utf8mb4_unicode_ci,EXPLICIT) for operation '='
エラーが発生しない場合もある
照合順序が異なっていても、エラーにならないケースもあります。 latin1_swedish_ci
と
utf8mb4_unicode_ci
と異なる照合順序で比較していますが、エラーなく実行することが出来てます。
mysql> …[さらに読む]
TL;DR
-
そもそも5.1から5.7へのレプリケーションはサポートされていないのは知っている
-
レプリカが
character_set_server = utf8mb4
で起動した後、SET GLOBAL character_set_server = utf8
はしていたけど、mysqldを再起動しないとI/Oスレッドはutf8mb4でコネクションをネゴシエートしようとして、5.1側に「そんなcharsetは知らん」と言われていたようだ。レプリカのmysqldを再起動して解決。
MySQL 5.1からMySQL 5.7にお引越ししようと、5.7のインスタンスを作って5.1をソースにした
CHANGE MASTER TO
してから START SLAVE
した。
2022-01-20T17:47:46.873075+09:00 19926 [Note] 'CHANGE MASTER TO FOR CHANNEL '' executed'. Previous state master_host='', master_port= 3306, …
[さらに読む]