Bird
Raised Fist0
Node.jsframework~5 mins

MySQL connection with mysql2 in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the mysql2 package in Node.js?
The mysql2 package allows Node.js applications to connect and interact with MySQL databases using modern, fast, and promise-based APIs.
Click to reveal answer
beginner
How do you create a connection to a MySQL database using mysql2?
Use mysql2.createConnection(config) where config includes host, user, password, and database name.
Click to reveal answer
intermediate
What is the difference between createConnection and createPool in mysql2?
createConnection creates a single connection. createPool manages multiple connections for better performance in apps with many queries.
Click to reveal answer
intermediate
How can you use promises with mysql2 to handle queries?
Use <code>mysql2/promise</code> import and then call <code>connection.query(sql)</code> to get a promise that resolves with query results.
Click to reveal answer
beginner
Why is it important to handle connection errors in mysql2?
Handling errors prevents app crashes and allows graceful recovery or user feedback when the database is unreachable or queries fail.
Click to reveal answer
Which method creates a single MySQL connection in mysql2?
AcreateConnection
BcreatePool
Cconnect
DopenConnection
How do you import the promise-based API from mysql2?
Arequire('mysql2/promise')
Brequire('mysql2').promise
Crequire('mysql2').async
Drequire('mysql2').connect
What is a benefit of using a connection pool with mysql2?
ACreates a backup of the database
BAutomatically fixes SQL syntax errors
CEncrypts all database data
DManages multiple connections for better performance
Which config option is NOT required when creating a MySQL connection?
Ahost
Bdatabase
Cfont
Duser
What happens if you don't handle errors in mysql2 connections?
AThe database fixes errors automatically
BThe app may crash or behave unexpectedly
CThe connection closes silently without notice
DThe queries run faster
Explain how to set up a basic MySQL connection using the mysql2 package in Node.js.
Think about the steps from importing the package to connecting and error handling.
You got /4 concepts.
    Describe the advantages of using the promise-based API in mysql2 for database queries.
    Focus on how promises improve code readability and error management.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the mysql2 package in Node.js?
      easy
      A. To create web servers
      B. To connect and interact with MySQL databases
      C. To style HTML pages
      D. To manage file uploads

      Solution

      1. Step 1: Understand the role of mysql2

        The mysql2 package is designed to help Node.js applications connect to and communicate with MySQL databases.
      2. Step 2: Compare with other options

        Options B, C, and D relate to other tasks like web servers, styling, or file uploads, which are not the purpose of mysql2.
      3. Final Answer:

        To connect and interact with MySQL databases -> Option B
      4. Quick Check:

        mysql2 = MySQL connection tool [OK]
      Hint: Remember mysql2 is for database connection only [OK]
      Common Mistakes:
      • Confusing mysql2 with web server packages
      • Thinking mysql2 styles web pages
      • Assuming mysql2 handles file uploads
      2. Which of the following is the correct way to create a connection using mysql2 in Node.js?
      easy
      A. const connection = mysql2.newConnection('localhost', 'root', 'pass');
      B. const connection = mysql2.connect({host: 'localhost', user: 'root'});
      C. const connection = mysql2.createConnection({host: 'localhost', user: 'root', password: 'pass', database: 'test'});
      D. const connection = mysql2.open({host: 'localhost', user: 'root', password: 'pass'});

      Solution

      1. Step 1: Recall mysql2 connection syntax

        The correct method to create a connection is createConnection with an object containing host, user, password, and database.
      2. Step 2: Check each option

        const connection = mysql2.createConnection({host: 'localhost', user: 'root', password: 'pass', database: 'test'}); uses createConnection with all required fields. Options A, B, and D use incorrect method names or missing parameters.
      3. Final Answer:

        const connection = mysql2.createConnection({host: 'localhost', user: 'root', password: 'pass', database: 'test'}); -> Option C
      4. Quick Check:

        Use createConnection with config object [OK]
      Hint: Use createConnection with full config object [OK]
      Common Mistakes:
      • Using wrong method names like connect or open
      • Omitting required fields like password or database
      • Passing parameters as separate arguments instead of an object
      3. Given the code below, what will be logged if the connection is successful?
      const mysql = require('mysql2');
      const connection = mysql.createConnection({host: 'localhost', user: 'root', password: 'pass', database: 'test'});
      connection.connect(err => {
        if (err) {
          console.log('Connection failed');
        } else {
          console.log('Connected successfully');
        }
      });
      medium
      A. No output
      B. Connection failed
      C. SyntaxError
      D. Connected successfully

      Solution

      1. Step 1: Understand the connect callback

        The callback checks if there is an error. If no error, it logs 'Connected successfully'.
      2. Step 2: Given connection is successful

        Since the connection is successful, err is null, so the else block runs.
      3. Final Answer:

        Connected successfully -> Option D
      4. Quick Check:

        Successful connection logs success message [OK]
      Hint: No error means success message logs [OK]
      Common Mistakes:
      • Assuming error logs even on success
      • Confusing callback parameters
      • Expecting no output without callback
      4. Identify the error in this code snippet for connecting to MySQL using mysql2:
      const mysql = require('mysql2');
      const connection = mysql.createConnection({host: 'localhost', user: 'root', password: 'pass'});
      connection.connect(err => {
        if (err) throw err;
        console.log('Connected!');
      });
      connection.end();
      medium
      A. Using connection.end() before connect callback
      B. No error, code is correct
      C. Incorrect method createConnection instead of connect
      D. Missing database name in connection config

      Solution

      1. Step 1: Check connection config

        While database name is missing, mysql2 allows connection without specifying database, so not a fatal error here.
      2. Step 2: Analyze connection.end() placement

        connection.end() is called immediately after connect(), which may close connection before it is established or query runs.
      3. Final Answer:

        Using connection.end() before connect callback -> Option A
      4. Quick Check:

        Close connection only after queries finish [OK]
      Hint: Call connection.end() after queries complete [OK]
      Common Mistakes:
      • Calling connection.end() too early
      • Assuming database is always required
      • Confusing createConnection with connect method
      5. You want to run a query to select all users from a MySQL database using mysql2. Which code snippet correctly handles the connection, query, and closing the connection?
      hard
      A. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.connect(err => { if (err) throw err; conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); conn.end(); }); });
      B. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); }); conn.end();
      C. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.end(); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); });
      D. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass'}); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); conn.end(); });

      Solution

      1. Step 1: Properly connect before querying

        const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.connect(err => { if (err) throw err; conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); conn.end(); }); }); calls connect first, ensuring connection is ready before running the query.
      2. Step 2: Close connection after query completes

        const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.connect(err => { if (err) throw err; conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); conn.end(); }); }); calls conn.end() inside the query callback, so connection closes only after query finishes.
      3. Step 3: Check other options

        const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); }); conn.end(); calls conn.end() immediately after query, which may close connection too soon. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass', database:'test'}); conn.end(); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); }); closes connection before query. const mysql = require('mysql2'); const conn = mysql.createConnection({host:'localhost', user:'root', password:'pass'}); conn.query('SELECT * FROM users', (err, results) => { if (err) throw err; console.log(results); conn.end(); }); misses database in config.
      4. Final Answer:

        Correctly connects, queries, and closes connection in proper sequence using nested callbacks -> Option A
      5. Quick Check:

        Connect first, query next, then close connection [OK]
      Hint: Connect first, query inside callback, then close connection [OK]
      Common Mistakes:
      • Closing connection before query finishes
      • Not waiting for connect callback before querying
      • Omitting database in connection config
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard