Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Beralih database di kumpulan koneksi di nodejs MySQL

Saya sarankan untuk memberikan dokumentasi pengumpulan bacaan yang menyeluruh.

Anda mengatakan bahwa Anda menggunakan conn.changeUser(/*...*/) , tetapi kemudian Anda mengatakan bahwa Anda menggunakan const conn = mysql.createPool(/*...*/); untuk menginisialisasi conn konstan. Itu artinya conn adalah kolam , bukan koneksi; tidak mengherankan bahwa ia tidak memiliki changeUser metode.

Jika Anda ingin mengubah basis data, Anda harus melakukannya pada koneksi, bukan kumpulan. Alih-alih menggunakan singkatan pool.query formulir, Anda akan melakukan pool.getConnection /conn.changeUser /conn.query /conn.release . Pertama, panggil variabel Anda pool , bukan conn :

const pool = mysql.createPool({

lalu

pool.getConnection(function(err, conn) {
    if (err) {
        // handle/report error
        return;
    }
    conn.changeUser({
        database: req.session.dbname
    }, function (err) {
        if (err) {
            // handle/report error
            return;
        }
        // Use the updated connection here, eventually
        // release it:
        conn.release();
    });
});

Itu dikatakan , jika itu saya, saya akan lebih nyaman memiliki kumpulan koneksi per database, daripada kumpulan umum tempat Anda mengubah database. Itu bisa menjadi paranoia murni di pihak saya, tetapi itulah yang akan saya lakukan. Tetapi jika Anda tidak menggunakan kumpulan terpisah, saya sarankan selalu lakukan changeUser jadi Anda yakin database apa yang Anda gunakan, atau uji secara menyeluruh untuk melihat apa mysql yang dilakukan modul untuk menangani ini (dan ulangi pengujian itu pada setiap rilis titik modul, kecuali jika pengelola mendokumentasikan perilaku tersebut).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Panggil ke fungsi yang tidak ditentukan mysql_query()

  2. Blog dan Situs Web MySQL Teratas untuk Administrator Basis Data

  3. dapatkan id yang dimasukkan terakhir di sql server 2008

  4. Cara Mendapatkan Catatan dari 7 Hari Terakhir di MySQL

  5. Tambahkan indeks FULLTEXT di Doctrine 2 menggunakan anotasi?