#はじめに
自分用メモなのであしからず。
タイトルにVSCodeってつけてるけどVSCode関係の設定は一切記載していません。。
##環境
Windows 10
VSCode
MySQL 8.0.11
#VSCodeのMySQLの拡張機能
MySQLの拡張機能を使おうとすると、接続時に次のエラーが発生する場合がある。
Error: ER_NOT_SUPPORTED_AUTH_MODE
どうやら認証形式の違いでエラーをはいているらしい。MySQLのバージョンを確認。
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.11 |
+-----------+
1 row in set (0.00 sec)
mysql>
ユーザーの認証形式を確認。
mysql> use mysql
Database changed
mysql> SELECT user, plugin FROM user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| mysql.infoschema | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| root | caching_sha2_password |
+------------------+-----------------------+
5 rows in set (0.00 sec)
mysql>
今回はrootで接続しようとしていて、認証形式はcaching_sha2_password
となっている。
そのため、以下のSQLを実行し、認証形式を変更する。
--例
ALTER USER 'ユーザー名'@'ホスト名'
IDENTIFIED WITH mysql_native_password
BY 'パスワード';
--localhostのrootだとこんな感じ
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'password';
もう一回、SQLを実行して変更できたか確認する。
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| mysql.infoschema | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| root | mysql_native_password | --<= 変わってる!
+------------------+-----------------------+
これで拡張機能は使用できるはず。
##参考
https://github.com/formulahendry/vscode-mysql/issues/39
https://yoku0825.blogspot.jp/2018/01/mysql-804.html