Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi cơ sở dữ liệu trong một nhóm kết nối trong nodejs MySQL

Tôi khuyên bạn nên cung cấp tài liệu tổng hợp đọc kỹ.

Bạn đã nói rằng bạn đang sử dụng conn.changeUser(/*...*/) , nhưng sau đó bạn nói rằng bạn đang sử dụng const conn = mysql.createPool(/*...*/); để khởi tạo conn đó liên tục. Điều đó có nghĩa là conn là một hồ bơi , không phải là một kết nối; không có gì ngạc nhiên khi nó không có changeUser phương pháp.

Nếu bạn muốn thay đổi cơ sở dữ liệu, bạn cần thực hiện trên kết nối, không phải trên pool. Thay vì sử dụng viết tắt pool.query biểu mẫu, bạn sẽ thực hiện pool.getConnection /conn.changeUser /conn.query /conn.release . Đầu tiên, hãy gọi biến pool của bạn , không phải conn :

const pool = mysql.createPool({

sau đó

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();
    });
});

Điều đó nói rằng , nếu là tôi, tôi sẽ thấy thoải mái hơn khi có một nhóm kết nối cho mỗi cơ sở dữ liệu, hơn là một nhóm chung nơi bạn thay đổi cơ sở dữ liệu. Đó có thể là sự hoang tưởng thuần túy về phía tôi, nhưng đó là điều tôi muốn làm. Nhưng nếu bạn không sử dụng các nhóm riêng biệt, tôi khuyên bạn nên luôn thực hiện changeUser để bạn chắc chắn mình đang sử dụng cơ sở dữ liệu nào hoặc kiểm tra kỹ lưỡng để xem những gì mysql mô-đun phải xử lý điều này (và lặp lại thử nghiệm đó trên mỗi bản phát hành điểm của mô-đun, trừ khi người bảo trì ghi lại hành vi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thoát ký hiệu phần trăm theo nghĩa đen khi tùy chọn NO_BACKSLASH_ESCAPES được bật?

  2. Làm cách nào để đặt mã hóa cho các cột char của bảng trong django?

  3. Tìm các hàng có cùng giá trị trên một cột trong MySQL

  4. MySQL tham gia truy vấn bằng cách sử dụng như thế nào?

  5. Thứ tự theo 3 ký tự cuối cùng