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:
- Error: connect ETIMEDOUT
- Error: connect ECONNREFUSED
- Error: ER_ACCESS_DENIED_ERROR
- Error: Cannot enqueue Handshake after invoking quit
2. Analysis of error reasons
- 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.
- 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.
- 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.
- 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
- 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!');
});
- 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!');
});
- 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.
- 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!

The article discusses useEffect in React, a hook for managing side effects like data fetching and DOM manipulation in functional components. It explains usage, common side effects, and cleanup to prevent issues like memory leaks.

Lazy loading delays loading of content until needed, improving web performance and user experience by reducing initial load times and server load.

Higher-order functions in JavaScript enhance code conciseness, reusability, modularity, and performance through abstraction, common patterns, and optimization techniques.

The article discusses currying in JavaScript, a technique transforming multi-argument functions into single-argument function sequences. It explores currying's implementation, benefits like partial application, and practical uses, enhancing code read

The article explains React's reconciliation algorithm, which efficiently updates the DOM by comparing Virtual DOM trees. It discusses performance benefits, optimization techniques, and impacts on user experience.Character count: 159

Article discusses preventing default behavior in event handlers using preventDefault() method, its benefits like enhanced user experience, and potential issues like accessibility concerns.

The article explains useContext in React, which simplifies state management by avoiding prop drilling. It discusses benefits like centralized state and performance improvements through reduced re-renders.

The article discusses the advantages and disadvantages of controlled and uncontrolled components in React, focusing on aspects like predictability, performance, and use cases. It advises on factors to consider when choosing between them.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Dreamweaver CS6
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
