Registry /
database / loopback-connector-mysql2
Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
DataSource
✓ import { DataSource } from 'loopback-datasource-juggler';
const ds = new DataSource('mysql2', { host: 'localhost', port: 3306, database: 'test', user: 'root', password: 'pass' });
✗ import { DataSource } from 'loopback-connector-mysql2';
const ds = new DataSource();
The connector itself is not directly instantiated; use loopback-datasource-juggler's DataSource with connector name 'mysql2'.
MySQL connector configuration
✓ const config = {
name: 'db',
connector: 'mysql2',
host: 'localhost',
port: 3306,
user: 'root',
password: 'pass',
database: 'testdb'
};
✗ const config = {
name: 'db',
connector: 'mysql',
...
};
The connector name must be 'mysql2' to use this package instead of the original mysql connector.
Model definition
✓ import { Model } from 'loopback-datasource-juggler';
const MyModel = ds.define('MyModel', { name: String });
✗ import { Model } from 'loopback-connector-mysql2';
Model definitions come from loopback-datasource-juggler, not the connector.
Create a MySQL2 data source, define a model, auto-migrate, and insert a record.
import { DataSource } from 'loopback-datasource-juggler';
const ds = new DataSource('mysql2', {
host: process.env.DB_HOST || 'localhost',
port: parseInt(process.env.DB_PORT || '3306', 10),
database: process.env.DB_NAME || 'test',
user: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD || '',
});
const User = ds.define('User', {
email: { type: String, required: true },
name: String,
});
ds.automigrate('User', (err) => {
if (err) throw err;
User.create({ email: 'test@example.com', name: 'Test' }, (err, user) => {
console.log('Created user:', user);
});
});
Errors
Common errors & fixes
Error: Connection lost: The server closed the connection.
MySQL server or network timeout.
fixEnsure `connectionLimit` is set appropriately and handle reconnection logic in your application.
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'user'@'localhost' (using password: YES)
Invalid credentials or host permissions.
fixVerify database user, password, and host permissions in MySQL.
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client
MySQL 8+ default auth plugin (caching_sha2_password) not supported by older mysql2 versions.
fixUpdate mysql2 to latest version or change MySQL user to use mysql_native_password.
Audit
Dependencies
loopback-datasource-jugglerrequiredRequired as peer dependency for LoopBack ORM integration
mysql2requiredUnderlying MySQL driver