Home  >  Article  >  Web Front-end  >  Nodejs connection mysql error

Nodejs connection mysql error

WBOY
WBOYOriginal
2023-05-25 12:58:081361browse

Node.js is an efficient, fast and reliable server-side programming language, which can achieve real-time updating and processing of server-side data very well. MySQL is a relational database management system that is widely used in the data storage field of the Internet and enterprise-level software. The combination of Node.js and MySQL can achieve server-side data storage and management, but some problems may be encountered during the actual development process. This article will introduce a common problem: node.js error in connecting to MySQL.

1. Error performance

When we use Node.js to connect to MySQL, we may encounter the following error performance:

  1. Error: connect ETIMEDOUT
  2. Error: connect ECONNREFUSED
  3. Error: ER_ACCESS_DENIED_ERROR
  4. Error: Cannot enqueue Handshake after invoking quit

2. Analysis of error reasons

  1. Connection timeout

Error: connect ETIMEDOUT

This error is usually caused by a network connection timeout, because our MySQL server may not be able to respond to the request or the user's connection request Relatively slow. When Node.js connects to MySQL, you need to specify the connection timeout time and establish the connection within the specified time, otherwise a connect ETIMEDOUT error will be reported.

  1. Connection refused

Error: connect ECONNREFUSED

This error is usually caused by incorrect setting of parameters related to connecting to MySQL, such as host name , username, password, etc. This error generally occurs when connecting to the server remotely. It may be because the server has set up a firewall or specified that only a specific IP address or network segment can connect to MySQL.

  1. Permission verification failed

Error: ER_ACCESS_DENIED_ERROR

This error is usually due to incorrect user name or password input, insufficient permissions, or the server prohibits certain Due to specific permissions. This error will occur when connecting to MySQL if the entered username or password is incorrect; this error will also occur when the user does not have sufficient permissions to access the database.

  1. Application Error

Error: Cannot enqueue Handshake after invoking quit

This error is usually caused by an application error, possibly because The MySQL connection has been closed before the application exits. In this case, we need to carefully check whether the connections in the connection pool are closed correctly or whether there are other problems.

3. Error solution

  1. Connection timeout

In order to avoid connection timeout errors, we need to set the check waiting time and Connection timeout period. Typically, we would set this to be in the range of 5 seconds to 10 seconds. The following is an example code snippet to connect to MySQL:

const mysql = require('mysql');

const connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'password',
database : 'mydatabase',
connectTimeout: 10000,
acquireTimeout: 10000
});

connection.connect((err) => {
if (err) throw err;
console.log('Connected!');
});

  1. Connection refused

Connection refused errors can be resolved by setting the correct hostname, username, and password. If we are connecting to a remote server, we need to ensure that the IP address and port number of the connection are correct, and that the server does not have a firewall set up or restricts access to certain IP addresses or network segments. The following is a sample code snippet to connect to MySQL:

const mysql = require('mysql');

const connection = mysql.createConnection({
host : 'remote-server. com',
port : '3306',
user : 'root',
password : 'password',
database : 'mydatabase'
});

connection.connect((err) => {
if (err) throw err;
console.log('Connected!');
});

  1. Permissions Verification failed

If we encounter a permission verification failure error when connecting to MySQL, we need to ensure that the user name and password entered are correct and that the user has permission to access the database. If we are using the root user, we need to note that the MySQL server may have set rules that only log in to a specific host to use the root account.

  1. Application Error

If we encounter an application error when connecting to MySQL, we need to check whether the connection in the connection pool is closed, and other possible question. Here is a sample code that can be used to properly close the connection pool:

const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit : 10,
host : 'localhost',
user : 'root',
password : 'password',
database : 'mydatabase'
});

pool.getConnection((err , connection) => {
console.log('connected as id', connection.threadId);

connection.query('SELECT * FROM users', function (error, results, fields) {

if (error) throw error;

console.log('The solution is: ', results);

// Connection is automatically released when query resolves
connection.release();

});
});

In conclusion, Node.js connecting to MySQL errors can be a tricky task, but as long as we can identify the root cause of the problem and try to solve it, then we can solve these problems quickly. When we encounter problems during development, we can find the problem and solve it by debugging and testing the code, which can help us build more reliable and efficient applications.

The above is the detailed content of Nodejs connection mysql error. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Buffer error in nodejsNext article:Buffer error in nodejs