CREATE USER .. DEFAULT ROLE .. で指定すると一発でROLEも許可される
TL;DRmysql> CREATE USER hoge@xxx.xxx.xxx.xxx IDENTIFIED BY 'password';mysql> GRANT hoge_role TO hoge@xxx.xxx.xxx.xxx;mysql> ALTER USER hoge@xxx.xxx.xxx.xxx DEFAULT ROLE hoge_role;とmysql>...
View ArticleMySQL 8.0でLOAD DATA LOCAL INFILEが "ERROR 1148 (42000): The used command is...
TL;DR--local-infileのデフォルトが0になったので明示的に1を指定してやる必要があるmysqld, mysqlコマンドラインクライアント それぞれ別に--local-infileオプションを持っているので、両方1に指定しないとダメ。MySQL :: MySQL 8.0 Reference Manual :: 6.1.6 Security Issues with LOAD DATA...
View Articleinnodb_ft_enable_stopword が無効にできなかったはなし
TL;DRinnodb_ft_enable_stopwordは2018/08/22現在ドキュメントの記載が “GLOBAL” のみになっているけど、実際は “GLOBAL, SESSION” で実効値はセッション側MySQL :: MySQL 5.7 Reference Manual :: 14.14 InnoDB Startup Options and System...
View ArticleClub MySQL #3 ~ yoku0825 のつくりかた に登壇してきました(?)
去る8/20、Club MySQLの第3回「yoku0825のつくりかた」に登壇してきました。Club MySQL #3 ~ yoku0825 のつくりかた - connpassClub MySQLなのに MySQLではなく ピンクのかわいいおとうふのことを語ってしまって恐縮です。主催の 坂井さん、会場をお貸しいただいた...
View Article「max_allowed_packetの基本的な動き」がどうしてそうなるのかのはなし
TL;DRMySQLへのJDBC接続で、とあるバグを踏むまでの話 -(1)「max_allowed_packet」の基本的な働き -...
View Articledb tech showcase Tokyo 2018に参加してきました
2018/09/19~21の db tech showcase Tokyo 2018 | db tech showcase(このサイト、URLに年を示すものが何もないので来年になると上書きされちゃうんですよね) に参加してきました。タイトルは「Dive into MySQL...
View ArticleMySQL Router 8.0.12に同梱されているhttp_serverプラグインの謎について
TL;DRMySQL Router 8.0.12をソースからビルドすると、 “http_server.so” なるライブラリーが出来上がった。しかも起動した。謎なんてなくてたぶんインターフェイス作っただけでまだまだこれから作りこんでいく…んだといいなadded http_server_component, http_client and http_server plugin ·...
View Articlemysqlrouter.logの "keepalive"が気になる人へ
TL;DRアレは単に一定間隔でログを吐いているだけ、ログ監視でもしない限り意味はない実は “[keepalive]” セクションに “interval” と “runs” が設定できるもちろんマニュアルには何も書いてない初めてMySQL Routerを使い始めたころから、ずっと「なんだろうこれ」「どことkeepaliveしてんねん」と思っていたこのログ。$ sudo less...
View ArticleMySQL 8.0ではカラムのリネームに ALTER TABLE RENAME COLUMN 構文が使える
TL;DRMySQL 5.7とそれ以前では ALTER TABLE t1 CHANGE a b int ..とかやらないといけなかったのが、 ALTER TABLE t1 RENAME COLUMN a TO bでデータ型とか気にせずにいけるようになっていた地味にうれしい参考資料MySQL :: MySQL 8.0 Reference Manual :: 13.1.8 ALTER TABLE...
View Articlepercona-toolkit 3.0.12とそれ以前のpt-ioprofileがCentOS 7.xで動かない件
TL;DRstraceの出力がちょっと変わったのでそれをひっかけられていないPercona Toolkitへのバグレポはこちら[PT-1631] pt-ioprofile doesn’t work in CentOS 7.5 box - Percona JIRAパッチは以下のとおり3.0.12の...
View ArticleMySQL 8.0.13の新機能でPRIMARY KEYのないテーブルを作成させない
TL;DRsql_require_primary_keyサーバー変数をONにすると、PRIMARY KEYのないテーブルを作ろうとした時にエラーにできる。セッションスコープとグローバルスコープと両方あるやつで、実効値はセッションスコープなので注意。ただし、 SET SESSION ..でも一般ユーザーでは値を変更することはできない( sql_log_binとかもそうですね)超便利だ!!...
View ArticleMySQL 8.0.13とそれ以降で「パスワード変更の際に今のパスワードを入力させる」オプション
TL;DRドキュメントの password_require_currentだけ読むとちょっと足りなくて、実際にはこんな判定if (mysqlスキーマへのUPDATE権限 || CREATE USER権限) return パスワード確認不要;else{ if (global.password_require_currentがON || そのアカウントが...
View Articleutf8mb4_0900_ai_ciは "="と "≠"を同じ文字だと思っている
TL;DRMySQL Bugs: #92899: Incorrect uniqueness determination with equality symbolsを見て思ったことのメモ少なくとも utf8mb4_0900_ai_ciにとっては '=' = '≠'がTRUEMySQL 8.0の utf8mb4のデフォルト照合順序として utf8mb4_0900_ai_ciというのがあって(...
View ArticleMySQL 8.0.13でカラム定義のDEFAULTに関数が指定できるようになった
みんなだいすき DEFAULTがついに関数を指定できるようになった。8.0.12とそれ以前はリテラルのみが指定可能、例外として TIMESTAMP, DATETIME型の CURRENT_TIMESTAMPのみだった。Handling of Explicit Defaults as of MySQL 8.0.13記法は .. DEFAULT ( expression )で、...
View ArticleMySQL 8.0.13の式インデックス
嬉し楽しい式インデックス。PostgreSQLのこれが結構うらやましかった機能がついにMySQLにも!The MySQL 8.0.13 Maintenance Release is Generally Available | MySQL Server BlogMySQL 5.7からgenerated...
View ArticleMySQLのエラーコード1133、ER_PASSWORD_NO_MATCH "Can't find any matching row in the...
TL;DRsql_mode= NO_AUTO_CREATE_USERが指定されている時に CREATE USERせずに GRANT ..で直接ユーザーを作ろうとしたSET PASSWORD FOR user@host = ..で存在しないユーザーのパスワードを変更しようとしたmysql.user.pluginのカラムが空文字列のアカウントに GRANTや ALTER...
View ArticleMySQL 8.0のcaching_sha2_password + 非SSL接続が転ける
$ mysql80 -h 127.0.0.1 -u yoku0825 --ssl-mode=disabled -pEnter password:ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure...
View ArticleMySQLのロール周りのあれこれ
TL;DRデフォルトロールはログイン時に有効化mandatory_rolesはログイン時に有効化されない、全ユーザーから SET ROLEできるロールロールのホスト部は意味を持たないような気がする( role@127.0.0.1は 192.168.0.0なアカウントにも割り当てができる)activate_all_roles_on_login = ONにすると、デフォルトロールも割り当てたロールも...
View Articlemysql.userテーブルの認証周りのカラムあれこれ
TL;DRversionpasswordカラム(CHAR(41) NOT NULL)authentication_stringカラム(TEXT...
View ArticleER_OPTION_PREVENTS_STATEMENT(Error: 1290) The MySQL server is running with...
$ perror 1290MySQL error code MY-001290 (ER_OPTION_PREVENTS_STATEMENT): The MySQL server is running with the %s option so it cannot execute this statement要は、「...
View Article