📘
MySQLのI/OにTypeORMを試す
直近の業務で、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