環境:MacOS Monterey
MySQLWorkbenchで新しいConnectionを作成する際に、UsernameとPasswordを共に"tester"にして接続しようとしたら、どうやら正しいパスワード入力してても接続できない模様だ。
そこで、Terminal開いて、Command Line上でも同じく接続できないかを試してみたら
% mysql -u tester -p
Enter password:
ERROR 2061 (HY000): Authentication plugin 'sha256_password' reported error: Authentication requires SSL encryption
同じく失敗したようだ。
ここで、"root"ユーザに接続してスクリプトで以下のコマンドを実行してほしい:
-- Drop user first if they exist
DROP USER if exists 'tester'@'localhost' ;
-- Now create user with proper privs
CREATE USER 'tester'@'localhost' IDENTIFIED BY 'tester';
GRANT ALL PRIVILEGES ON * . * TO 'tester'@'localhost';
ALTER USER 'tester'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tester';
試しに接続してみたら…
奇跡的に入れた!!また、root以外のユーザで実行する際、CREATE DATABASE [DBname]
でエラー出ちゃう場合がある。それは恐らく、Mysqlがデータベースを格納するディレクトリの権限が足りないからかもしれない。
多くの場合作られたデータベースは/usr/local/mysql/dataに格納されているから
chmod 777 /usr/local/mysql/data
で読み取りと書き込みの権限を追加する。
もちろん手動で操作しても構わない。