TL;DR
| version | passwordカラム(CHAR(41) NOT NULL) | authentication_stringカラム(TEXT NULL) | pluginカラム | 認証プラグインの選択 |
|---|---|---|---|---|
| 5.0.96 | パスワードハッシュ | カラムなし | カラムなし | ダイジェスト長 |
| 5.1.73 | パスワードハッシュ | カラムなし | カラムなし | ダイジェスト長 |
| 5.5.62 | パスワードハッシュ | 常に空文字 | 認証プラグイン | … |
TL;DR
| version | passwordカラム(CHAR(41) NOT NULL) | authentication_stringカラム(TEXT NULL) | pluginカラム | 認証プラグインの選択 |
|---|---|---|---|---|
| 5.0.96 | パスワードハッシュ | カラムなし | カラムなし | ダイジェスト長 |
| 5.1.73 | パスワードハッシュ | カラムなし | カラムなし | ダイジェスト長 |
| 5.5.62 | パスワードハッシュ | 常に空文字 | 認証プラグイン | … |
TL;DR
mandatory_roles はログイン時に有効化されない、全ユーザーから SET
ROLE できるロール
role@127.0.0.1 は
192.168.0.0 なアカウントにも割り当てができる)
activate_all_roles_on_login = ON
にすると、デフォルトロールも割り当てたロールも mandatory_roles
も全部いっぺんにログイン時に有効になる
| ロールの有効化 | ロールの作成 | ロールの割り当て | 割り当ての解除 | |
|---|---|---|---|---|
| ロール |
SET ROLE … |
OSC2018-Tokyo/Fall(オープンソースカンファレンス2018東京秋)に参加してきました。
いつもの通り、日本MySQLユーザ会としてブースを出しつつ、でも結構うろうろしながら他のブースの方ともお話したり、自由で楽しく参加させてもらいました。
東京のOSCは、千葉県在住の身からは「非常に遠い」会場で開催されるので、よほどのモチベーションがなければ参加しない方針だったのですが、今年は
MySQL 8.0 の …
エンジニア以外のメンバーが気軽にデータベースを参照出来るツールは無いかと見てみたら、metabaseは使い勝手が良さそうだなと感じました。
1) アカウントを複数作成出来る
2) グループに分けられる
3) クエリーを使うこともGUIで参照する事も可能
4) Slackやメールとの連携が可能
5) OpenSourceである事。(翻訳に協力しようと考えてます)
6) 管理工数、セットアップが容易
7) ビジネス側のメンバーが容易にグラフで状況を理解する事が可能
8) 非エンジニアでも、SQLを少し学べばカスタマイズ出来る事(日付範囲等)
インストール (CentOS7を利用しています)
Javaのバージョンが要件を満たしていれば、metabase.jarをダウンロードしきて実行するだけ。
[root@GA01 …[さらに読む]
$ mysql80 -h 127.0.0.1 -u yoku0825 --ssl-mode=disabled -p
Enter password:
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
このエラーになる条件。
caching_sha2_password プラグインを使っているアカウント
この条件に合致しているとログインが転けて↑のエラーを食らう。 解決策1.
caching_sha2_password プラグインをやめて
mysql_native_password プラグインを指定する
mysql> ALTER USER yoku0825 IDENTIFIED WITH mysql_native_password BY 'new_password`;
解決策2. …
[さらに読む]TL;DR
sql_mode= NO_AUTO_CREATE_USER が指定されている時に
CREATE USER せずに GRANT ..
で直接ユーザーを作ろうとした
SET PASSWORD FOR user@host = ..
で存在しないユーザーのパスワードを変更しようとした
mysql.user.plugin のカラムが空文字列のアカウントに
GRANT や ALTER USER をかけようとした
mysql.user テーブルに INSERT なり
UPDATE なりをした後、 FLUSH PRIVILEDGES
をしていないのでアカウントとして認識されていない
sql_mode= NO_AUTO_CREATE_USER が指定されている時に
CREATE USER せずに GRANT ..
で直接ユーザーを作ろうとした
嬉し楽しい式インデックス。
PostgreSQLのこれが結構うらやましかった機能がついにMySQLにも! The MySQL 8.0.13 Maintenance Release is Generally
Available | MySQL Server Blog MySQL 5.7からgenerated
columnが入ってそのカラムにインデックスを張ればそれっぽい高速化は実現できたんだけれども、generated
columnは如何せんORMと相性が悪いことがあって(ORMはそのカラムがgeneratedかbasicか特に気にしてくれないけど、generatedなカラムは更新しようとするとエラーになる、など)そういうケースではカラムを定義せずに式インデックスが使えるといいのに…と思っていたのでしたん。
みんなだいすき DEFAULT がついに関数を指定できるようになった。
8.0.12とそれ以前はリテラルのみが指定可能、例外として TIMESTAMP,
DATETIME 型の CURRENT_TIMESTAMP のみだった。
Handling of Explicit Defaults as of MySQL
8.0.13 記法は .. DEFAULT ( expression ) で、
DEFAULT のあとに括弧を入れてから関数なり表現なりを書く。
The MySQL 8.0.13 Maintenance Release is Generally
Available | MySQL Server Blog
に書いてある↓をそのまま試そうとしても、括弧が抜けているので通らない。。
mysql80 40> CREATE TABLE t2 …[さらに読む]
TL;DR
utf8mb4_0900_ai_ci にとっては '=' =
'≠' がTRUE
MySQL 8.0の utf8mb4 のデフォルト照合順序として
utf8mb4_0900_ai_ci というのがあって( default_collation_for_utf8mb4 で多少は変えられる)、これは
kamipoのハハ=パパ問題
を引き起こす照合順序として日本人には知られている(と思う。といいな。広まれ!) で、その
utf8mb4_0900_ai_ci …
TL;DR
if (mysqlスキーマへのUPDATE権限 || CREATE USER権限)
return パスワード確認不要;
else
{
if (global.password_require_currentがON || そのアカウントが mysql.user.Password_require_current = 'Y' になっている)
return パスワード確認必要;
else
return パスワード確認不要;
}
REPLACE
'元のパスワード' をつける
REPLACE …