3045 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »
MySQLのGIS関数は180度を跨いだ部分でもちゃんと最短距離を計算する

2024年8月の FOSS4G Tokai、MySQLの山﨑さんの発表後に「MySQLでは180度線を跨ぐ場合の距離など、正しく計算してくれるのか」という質問がありました。確か以前、(当然)それは大丈夫だったのを確認したよなぁと朧気に思いつつもその場でフォローはできなかったので、ご講演終了後に速攻で確認してみました。 結論 「ちゃんと、180度をまたいでも、最短の距離で計算してくれる(ぐるりと0度のほうを回って、つまり例えば 東経175度から0度を経由して西経175度までの距離を計算するわけではない)」 実例 赤道上での、東経165度から175度の距離、および東経175度から西経175度までの…

MySQL ruby ドライバの caching_sha2_password 平文接続の挙動がバラバラだった件

caching_sha2_password は 少なくとも1回はセキュアな経路を必要とする

caching_sha2_password 形式のパスワードを使った、平文の接続 をする場合、その過程で、少なくとも一度は事前に、暗号化されたセキュアな経路を通して認証成功させる必要があります。 サーバがキャッシュ(パスワードのハッシュ)を生成するのに、平文のパスワードを要求するためです。

この「少なくとも一度は〜」の背景は、MySQL 運用・管理 実践入門で詳しく解説されていました。気になる人は読むと良いでしょう

[さらに読む]
MySQL go-sql-driver/mysql ドライバで意図せず utf8mb4_0900_ai_ci が使われるケース

Background

MySQL 8.0 で utf8mb4のデフォルトの COLLATION (照合順序) が utf8mb4_general_ci から utf8mb4_0900_ai_ci に変更されました。 COLLATE を指定せず、SET NAMES <CHARSET> を実行すると、そのキャラクタセットのデフォルトの collation が利用されます。

つまり、SET NAMES utf8mb4 の結果、5.7 まではクライアントのCOLLATIONとして utf8mb4_general_ci が使われますが、8.0 からは utf8mb4_0900_ai_ci が使われます。

-- MySQL 5.7 だと utf8mb4_general_ci
mysql> SET NAMES utf8mb4;
Query OK, 0 rows affected (0.00 …
[さらに読む]
MySQL Go のドライバ と caching_sha2_password

mysql_native_password の廃止が近づいてきた...

MySQL 8.4 では mysql_native_password がデフォルトで無効化されてしまいました。 そろそろ、mysql_native_password 方式の利用の撲滅に本気にならないといけないようです。

sakaik.hateblo.jp

mysql_native_password 方式 から、よりセキュアな caching_sha2_password 方式に変更することになります。 認証まわりの変更には接続ドライバの対応も必要。Goのドライバの対応状況や挙動を確認しました。

caching_sha2_password に …

[さらに読む]
オープンソースカンファレンス2024北海道参加

6月29日に開催されたオープンソースカンファレンス2024北海道(OSC2024 Hokkaido)に参加してきました。 今回は日本MySQLユーザ会(MyNA)としてのブース参加とセミナー1枠、そして OSGeo.JPとしてのブース出展のお手伝い(ほとんど何もしてない)でした。event.ospn.jp MySQLユーザ会のほうは緩いユーザ会なので、ブースも「談話コーナーです」という感じで、何か知りたいことがある人がいれば説明するよ、というスタンスでやってきた時期も長かったのですが、最近は少しだけ力を入れて、説明スライドを流したりすることを試みています。展示用の荷物を送って送り返すだけで数千…

MySQL8.4 LTS の紹介セミナー参加

5月16日にオラクルのMySQLチームさんが開催してくれた『ついに正式リリース!MySQL 8.4 LTS (Long-Term Support) の全容 』に参加してきました。 リアル開催、本当に良い。あちこちから「MySQLが」「InnoDBが」「binlogが」と聞こえてきて、なんとなくほっとします。 mysql-tech-tour.connpass.com 梶山さんによる2時間に亘る濃厚な『MySQL 8.4 LTSの全容ご紹介』。淡々としたタイトルですが、今時点で手に入る最高にまとまった最高にわかりやすい説明でした。 そういえば資料、どこで公開されたんだっけ。ダウンロードしそこねちゃ…

今日は、MySQL 8.4.0で変更されたInnoDB システム変数のデフォルト値を見ていくの日。

目次

[さらに読む]
MySQL Parameters で SQL 構文の差分を確認できるようにした

MySQLのバージョン間のいろんな差分を見れる MySQL Parameters というのがあるんだけど、SQL 構文の差分を見れるようにしてみた。

たとえば、8.0 の最初のリリースの 8.0.11 と最後のリリースの 8.0.37 の構文の差分はここから見れる。 https://mysql-params.tmtms.net/statement/?vers=8.0.11,8.0.37

ソースは help コマンドの結果(実際には mysql.help_topic テーブルから取得)。

たとえば ALTER EVENT はこんな感じ:

mysql> help alter event;
Name: 'ALTER EVENT'
Description:
Syntax:
ALTER
    [DEFINER = user]
    EVENT event_name
    [ON SCHEDULE schedule]
    [ON COMPLETION [NOT] PRESERVE]
    [RENAME TO new_event_name]
    [ENABLE | DISABLE | DISABLE ON …
[さらに読む]
Error: 6125 MySQL 8.4.0の非互換で親テーブルでUNIQUE KEYがついてないとForeign Keyが作れなくなった?

TL;DR

  • FOREIGN KEY (col1, col2) REFERENCES table_name (col3, col4) の親側のカラムリスト、←で言うなら (col3, col4) がユニーク制約がかかっていないと外部キー制約が作れなくなった?

    • 親に (col3, col4, col5) のユニークキーがあってもダメ。きっちり一致しないといけない。

    • 親に (col3) のユニークキーがあれば (col3, col4) も当然一意になるはずだけれどこの指定もダメ。

  • 正規化の過程でできあがるテーブル分割とFOREIGN KEYは自然とPRIMARY …

[さらに読む]
Re:mysqlでuserテーブルにダミーデータを10万件ほど入れる方法メモ

たまたま目に入った記事で、「mysqlでuserテーブルにダミーデータを10万件ほど入れる方法メモ」というものを拝読しました。 zenn.devそちらでは、ストアド・プロシジャを作成して10万回のループでINSERTを実施する方法を採っていましたが、折角の機会なのでお伝えしたいテクニックがあり、これを書きしたためる次第。 プロシジャってあまり使いたくない 「実現できない」より「実現できる」ほうが100万倍エラいので、プロシジャを使った解法にたどり着いたことは立派なのですが、「実現できる」から「もっと良く実現できる」に進むと更に楽しい世界が待っています。ということで「もっと良く」を紹介します。私…

3045 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »