mysqldが起動できないバグなのか、「 avoid_temporal_upgrade
なんてことすると将来的にサポート対象外だよ」がドキュメントに記載されてないのかどっちだか迷っている。 MySQL
Bugs: #93101: Failed to Populate DD tables when table has
OLD-Style DATETIME column (need Doc) MySQL
5.6からDATETIME型のデータ構造が新しくなった。 日々の覚書: あなたのMySQL 5.6トレンド力をチェックする15の質問 MySQL
5.5とそれ以前で CREATE TABLE したテーブルは8バイトの旧DATETIME型、MySQL
5.6とそれ以降で CREATE TABLE …
MySQL 5.7の時点で既に宣言はされていた。 GROUP BY implicitly sorts by default (that is, in the absence of ASC or DESC designators), but relying on implicit GROUP BY sorting in MySQL 5.7 is deprecated. MySQL :: MySQL 5.7 Reference Manual :: 1.4 What Is New in MySQL 5.7 どういうことが起こるかというと、こう。
$ perl -ML -E 'for (my $n= 1; $n <= 10; $n++) { for (my $m= 1; $m <= 100; $m++) { printf("%d\t%d\n", $n, $m) } }' | sort -R > /tmp/seq
mysql80 165> CREATE TABLE t1 (n int, m int);
Query OK, 0 rows affected (0.05 sec)
mysql80 165> LOAD DATA INFILE '/tmp/seq' INTO TABLE t1;
Query OK, 1000 rows affected (0.09 sec)
Records: 1000 Deleted: 0 Skipped: 0 Warnings: 0
mysql80 165> SELECT * FROM t1 LIMIT 10;
+------+------+
| n | m …[さらに読む]
$ perror 1290
MySQL error code MY-001290 (ER_OPTION_PREVENTS_STATEMENT): The MySQL server is running with the %s option so it cannot execute this statement
要は、「 %s だからそのSQLは実行できないよ」というエラー。
%s
の部分に何が入るかは何パターンかあるけど、基本的にオプションの名前が入るので、SQLを成功させたければ
%s をOFFにしてやれば上手くいくはず。 MySQL 5.7.24 のコードから
ER_OPTION_PREVENTS_STATEMENT を投げるところを引いてみた感じ、あり得る
%s のパターンはたぶんこう。
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プラグインを使っているアカウント
かつ - まだサーバー側にSHA2キャッシュが作られていないアカウント
かつ - サーバーの公開鍵を指定していない非SSLのTCP接続
この条件に合致しているとログインが転けて↑のエラーを食らう。 解決策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 ..で直接ユーザーを作ろうとした