Is knex Support mysql 8.0 version ? menghubungkan ORM knex dengan mysql 8.*

Soefyan Syah
Soefyan Syah22 Sep 2022
JavascriptNode.jsORM

ORM adalah singkatan dari Object-Relational Mapping. Ini memungkinkan Anda untuk meminta dan memanipulasi data dari database menggunakan teknik pemrograman berorientasi objek.

Is knex Support mysql 8.0 version ? menghubungkan ORM knex dengan mysql 8.*
Photo by Xavi Cabrera on Unsplash

Kenapa menggunakan knex ?

sebelum menjawab pertanyaan di atas, lebih baik kita mengenal dulu apa itu knex.js

Knex.js. sendiri mendeskripsikan sebagai “pembuat kueri SQL untuk Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle, dan Amazon Redshift yang dirancang agar fleksibel, portabel, dan menyenangkan untuk digunakan.

Jadi kenapa saya menggunakan knex.js karena cukup dengan library javascript ORM bisa mengghubungkan ke beberapa database. karena dalam hal ini saya memiliki kendala dalam menjalan knex.js karena mysql yang saya gunakan adalah mysql version 8.

Saat mencoba melakukan query saya mendapatkan pesan error :

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

setelah googling akhirnya ketemu solusi dan masalah ini solved ;

install the mysql2 npm package and set mysql2 as client in your knexfile.js - that worked for me

production: {
   client: 'mysql2',
   connection: DB_CONNECTION,
   pool: {
     min: 2,
     max: 10,
   },
   migrations: {
     tableName: 'knex_migrations',
   },
},

Dengan solusi ini kita tidak perlu membuat user baru atau merubah password mysql menggunakan password native dari mysql karena untuk 'mysql' secara default tidak menggunakan mysql 8 .

Soefyan Syah

Written by Soefyan Syah

Hey there! I hope you find this post useful. If you have anything to say, questions or feedback, send me a tweet or an email.