M1MacでMySQLを設定した時の記録を書いておきます。
どうやら、M1MacではER_SUPPORTED_AUTH_MODEエラーが出るため、MySQLサーバーのインストール時にレガシー認証メソッドを選択する必要があるようです。
目次
インストール
以下の公式サイトから、CPUアーキテクチャにあったものをダウンロード、インストール。
https://dev.mysql.com/downloads/mysql/
初期設定
以下のコマンドを実行。
touch ~/ .bash_profileopen ~/ .bash_profilebash_profileを開いて、以下PATHを追加。
Export PATH=${PATH}:/usr/local/myaql/bin接続確認
mysql -u root -p 終了コマンド
quit;PythonからMySQLに接続
まずは必要モジュールを追加。
pip install mysql-connector-python上記モジュールを使用して、MySQLへの接続を行なってみます。
import mysql.connector
import user
c = None
try:
c = mysql.connector.connect(
user='root',
password=f'{user.password}1',
host='localhost'
)
if c.is_connected:
print("Connected...")
except Exception as e:
raise e
finally:
if c is not None and c.is_connected():
c.close()
print("Connection closed.")
>>>
Database.py
Connected...
Connection closed.Pythonからの操作に関しては、別の記事で詳しくまとめます。
vscode上でMySQLを操作
以下の拡張機能を追加。

インストールできたら、エクスプローラの項目にMySQLが出現するので、add connection。

hostにローカルホストを指定。

次に、ターミナルからMySQLに接続して、ユーザーIDを取得。
mysql -u root -pSELECT Host, User FROM mysql.user;vscodeに任意のユーザーIDを入力。
パスワードの入力が求められるので、入力後、標準ポート番号3306を指定してデータベースに接続。

Error: ER_SUPPORTED_AUTH_MODE: Client does not support authentication protocal requested by server consider upgrading MySQL client
というエラーが出ました。調べてみると、サーバー側がサポートしていない認証モードを使おうとした時に起こるようです。
MySQLを再インストールして、Legacy Password Encryption を指定したら解決しました。

これでvscode上でMySQLを操作できるようになりました。

