CLOVER🍀

That was when it all began.

MySQL

MySQL 8.0で追加されたSELECT ... FOR UPDATE SKIP LOCKEDを試す

これは、なにをしたくて書いたもの? MySQL 8.0.1から、SELECT ... FOR UPDATEにSKIP LOCKEDというオプションがつけられるようになったみたいです。 このオプションを使うと、クエリーを実行した時にすでにロックされているレコードが結果セットから削除され…

MySQL Connector/JのrewriteBatchedStatementsプロパティとPreparedStatementの関係を確認する

これは、なにをしたくて書いたもの? HikariCPのMySQL Connector/J(MySQLのJDBCドライバー)に関するWikiを見ていて、ふと疑問に思ったことがありまして。 MySQL Configuration · brettwooldridge/HikariCP Wiki · GitHub それは、rewriteBatchedStatements…

MySQL Connector/Jで設定した方が良さそうなプロパティについて

MySQLのJDBCドライバーであるConnector/Jですが、どのようなプロパティを設定した方がいいのかよく忘れるので。 いい情報はないかな?と思ったら、HikariCPのWikiによくまとまっていました。 MySQL Configuration · brettwooldridge/HikariCP Wiki · GitHub …

Trinoで、MinIOとMySQLのデータをjoinしてアクセスしてみる

これは、なにをしたくて書いたもの? 前に、Trinoを使ってMySQLとMinIOに格納されたデータにアクセスしてみました。 分散SQLクエリーエンジン、TrinoをUbuntu Linux 20.04 LTSにインストールしてMySQLに接続してみる - CLOVER Trinoから、Hive connectorでAm…

Node.jsでMySQL 8.0のデフォルトの認証方式(caching_sha2_password)に対応するには、mysql2を使う

これは、なにをしたくて書いたもの? MySQL 8.0になって、デフォルトの認証方式がcaching_sha2_passwordからmysql_native_passwordに変更されました。 For the server, the default value of the default_authentication_plugin system variable changes fro…

分散SQLクエリーエンジン、TrinoをUbuntu Linux 20.04 LTSにインストールしてMySQLに接続してみる

これは、なにをしたくて書いたもの? Trinoという分散SQLクエリーエンジンを試してみたいなと思い、まずはインストールしてみたいと思います。 Trino | Distributed SQL query engine for big data それから、MySQLに接続してTrino経由でアクセスしてみまし…

MySQL Connector/JとCharacter Set/Character Set Results/Connection Collationとの設定、関係がよくがわからなかったので調べてみる

これは、なにをしたくて書いたもの? MySQLのJDBCドライバー、Connector/JのcharacterEncoding、characterSetResults、connectionCollationあたりの説明を見ていて、 不思議な感じがしたので調べてみることにしました。 MySQL :: MySQL Connector/J 8.0 Deve…

OpenTelemetry/Jaeger/JAX-RS/MySQLで、Distributed Tracing

これは、なにをしたくて書いたもの? OpenTelemetryについて、1度見ておきたいと思いまして。 OpenTelemetryの前身のひとつであるOpenTracingを使ったエントリーを過去に書いていたので、こちらをOpenTelemetryに置き換える形で 進めていくことにします。 Ja…

Node.js × TypeScriptのORM、PrismaをMySQLで試す

これは、なにをしたくて書いたもの? Node.js+TypeScript環境でのORMはどれを使ったらいいのかな?ということで。 このあたりみたいです。 Sequelize | Sequelize ORM v5以降、TypeScriptをサポート TypeORM - Amazing ORM for TypeScript and JavaScript (…

MySQL、PostgreSQL、SQLite3、SQL Serverのスキーマ定義を宣言的に管理するsqldefを、MySQLで試す

これは、なにをしたくて書いたもの? sqldefという、MySQL、PostgreSQL、SQLite3、SQL Serverのスキーマ定義をSQLで宣言的に管理できるツールを 知ったので、ちょっと試してみることにしました。 GitHub - k0kubun/sqldef: Idempotent MySQL/PostgreSQL sche…

MySQL 8.0.21以降で、レプリケーションの用語が変わっていっている(Master → Source、Slave → Replica)という話

これは、なにをしたくて書いたもの? 世の中、"master"や"slave"という単語が違う表現に置き換えられていっていますが、そういえばMySQLの レプリケーションでもこのあたりの単語を使っていましたがどうなったのかな?と思って見てみたら。 ちょっとずつ変わ…

MySQL 8.0のCharset utf8mb4での日本語環境で使うCollationで文字比較をしてみる

これは、なにをしたくて書いたもの? MySQL 8.0のCharset utf8mb4で使えるCollationについて、ちょっと見ておこうかなと思いまして。 具体的には、「MySQL徹底入門 第4版」の「11.2 Collation」に書かれている文字比較およびソートについて自分で 確認してみ…

MySQL Server 8.0の設定を、set persist(またはset persist_only)で変更する

これは、なにをしたくて書いたもの? MySQLでは、(可能なものについては)設定をsetで動的に変更することができます。 MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.9 システム変数の使用 MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.4 サーバ…

MySQL 8.0で、InnoDBのテーブルサイズを見たい

これは、なにをしたくて書いたもの? MySQLで、InnoDBのテーブルサイズを見たい、と思いまして。 その方法を調べてみようかなと。いくつかあるようです。 環境 今回の環境は、こちら。 mysql> select version(); +-----------+ | version() | +-----------+ …

MySQLのサンプルデータとして、Employees Sample Databaseを使う

これは、なにをしたくて書いたもの? MySQLに入れる、ほどほどのデータがないかなぁと思って調べてみたら、MySQL自身にあるじゃないですか。 Employees Sample Database、だそうです。 MySQL :: Employees Sample Database GitHub - datacharmer/test_db: A …

MySQL 8.0に、LOAD DATA、Parallel Table Import Utility(MySQL Shell)、JDBCでCSVロードしてみる

これは、なにをしたくて書いたもの? MySQLにCSVロードをしようとした時に、LOAD DATAを使ったり、ふつうにINSERT文を使ったりといくつか方法が あると思うのですが、どれくらい違うものだろう?ということで試してみることにしました。 お題 CSVファイルを…

MySQL 8.0で、InnoDBの状態を確認する方法を調べる

これは、なにをしたくて書いたもの? MySQLのInnoDBストレージエンジンの状態、情報を見るのには、どうしたらよいのかな?ということで。 情報を調べて、とっかかりとして簡単にまとめておくことにしました。 環境 今回の環境は、こちらです。 mysql> select…

GoでMySQLにアクセスしてみる

これは、なにをしたくて書いたもの? Goを使って、データベースにアクセスするコードを書いてみたいなぁと思いまして。 sqlパッケージ Goでデータベースにアクセスするには、sqlパッケージを使うようです。 sql - The Go Programming Language sqlパッケージ…

QuarkusのReactive MySQL Clientを試す

これは、なにをしたくて書いたもの? Quarkusで、ReactiveなMySQLクライアントを使えるというので、試してみようかなと。 Quakus Reactive SQL Clients Quarkusでデータベースアクセスを行う際にまず挙がってくるのはJPA(Hibernate)かなと思いますが、Reac…

MySQLで、接続が平文なのかSSL/TLSを使っているのかを確認する

これは、なにをしたくて書いたもの? SSL/TLS接続を受け付けられるMySQLサーバーを立てた時に、クライアントの接続が平文なのか、SSL/TLSを使っているのか 確認する方法はないかな?と。 環境 今回の環境は、こちら。 mysql> select version(); +-----------…

MySQL Routerを使用して、InnoDB Clusterを構成する(MySQL Routerの設定主体)

これは、なにをしたくて書いたもの? 以前、MySQL Shellを使用して、InnoDB Clusterのうち、Group Replicationの部分を構成してみました。 MySQL Shellで、InnoDB ClusterのGroup Replication部分を構成してみる - CLOVER 今度は、この構成にMySQL Routerを…

MySQL Shellで、InnoDB ClusterのGroup Replication部分を構成してみる

これは、なにをしたくて書いたもの? MySQLのInnoDB Clusterを試してみようと思ったのですが、その前にMySQL Shellに触れた方が良さそうな気がしまして。 InnoDB Clusterを組む時に、Group ReplicationをMySQL Shellで組む手順になっているみたいなんですよ…

MySQL Server Exporterを使って、Prometheus × Grafanaでモニタリングする

これは、なにをしたくて書いたもの? Prometheus+Grafanaで、メトリクスの取得と可視化をSpring Bootを使ったアプリケーション以外にも試しておきたい MySQLのメトリクスを取得して、表示してみてはどうか というわけで、MySQLで取得できるメトリクスを、Pr…

データベースやCPU、ファイルシステムなどへのベンチマークツール、sysbenchをMySQLで試す

これは、なにをしたくて書いたもの? MySQLに、単純でもいいので簡単に負荷をかけられるツールを探していた sysbenchというものがあるらしい というわけで、sysbenchを使ってMySQLに負荷…というかベンチマークを取ってみる、ということで。 sysbenchとは? …

OKD/Minishift上に、Node.jsとMySQL(Template)を使ったアプリケーションを作る

前回、OKD(OpenShift Origin)上にNode.jsとMySQLのImageを使ったアプリケーションをデプロイしてみました。OKD/Minishift上に、Node.jsとMySQL(Image)を使ったアプリケーションを作る - CLOVER今度は、MySQLをTemplateを使ってデプロイして、Node.jsで…

OKD/Minishift上に、Node.jsとMySQL(Image)を使ったアプリケーションを作る

OKD(旧名OpenShift Origin)上に、データベースを使用したアプリケーションを作ってみようかなと。 ※名称自体はOKDになりましたが、今は検索の都合上、エントリのどこかに"OpenShift"という単語は入れておこうかなぁと…OKD: Renaming of OpenShift Origin w…

Express+SequelizeでMySQLと連携するREST APIを作る

前にExpressを使って、簡単なREST APIを作ってみたので、今度はそこからデータベースにアクセスするコードを書いてみようかなと。この前、Promise-mysqlを使ってMySQLにアクセスするエントリを書いたのですがPromise-mysqlで、Node.jsからMySQLにアクセスす…

Promise-mysqlで、Node.jsからMySQLにアクセスする

Node.jsからMySQLにアクセスする方法を調べようと思ったのですが、最初に見つけたのがこちら。mysqlmysqlこれが、標準的位置づけなライブラリのようですね。※MySQL 8.0で登場している、Connector/Node.jsはいったん置いておきます Connector/Node.jsですが、…

MySQL 8.0でGroup Replicationを構成してみる

MySQLには、5.7.17からGroup Replicationという機能が追加されています。Changes in MySQL 5.7.17 (2016-12-12, General Availability)5.7系のGAリリース後に追加された機能だったはずですが、そのまま試さずに8.0まできてしまったので、ここで1回 触ってみ…

Ubuntu Linux 18.04 LTSに、MySQL 8.0をインストールする

MySQL 8.0がリリースされて少し経ち、ちょっと遅れている感じはしますが、MySQL 8.0をインストールしたいと思います。対象の環境は、Ubuntu Linux 18.04 LTSです。APT Repositoryを追加して、インストールする方法でいきましょう。MySQL :: Download MySQL A…