Zenn
📘

MySQLのI/OにTypeORMを試す

2025/03/16に公開

直近の業務で、MySQLをデータウェアとしたWebアプリを開発するプロジェクトに参画している
そこで、今まで使ったことがないORマッパーとして、TypeORMを使っている
開発メンバではないものの、開発を支援するにあたって見識を深めたく、試してみた
なお、TypeORMの導入は、公開されているドキュメントに沿って、実施した

TypeScriptに限らず、ORマッパーは、接続に関する設定さえできれば、I/Oについては、データベースを意識することなく、実装することができる
とはいえ、実際には接続周りだけでなく、連携するライブラリなど意識しておくことが肝要と理解した

実際、今回MySQLと組み合わせた際、TypeORMのガイドでは、mysqlライブラリを使用する説明になっており、使用するMySQLのバージョンが8.0以上の場合、認証周りが強化されているため、接続できない

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

MySQL 8.0以上の場合、mysql2ライブラリを使用することで暗号化されたパスワードにて接続が可能となる

npm uninstall mysql --save
npm install mysql2 --save

MySQLに対応したJSライブラリが2つある理由がなんとなくわかった
正しく導くようガイドなど整備していただきたいものだ😅

蛇足)

推奨しかねる解決策として、パスワードの暗号化を解除する方法を提示しているサイトが散見される

SQL>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

なぜ、認証プラグインを使って暗号化するようになったか、その本質を考えたほうがいい。

Discussion

ログインするとコメントできます