Script to connect to MySQL databases with Google Cloud Proxy support.
Script to connect to MySQL databases with Google Cloud Proxy support.
This is the final result inside your server’s file.
// Get Module
const mysql = require('./connect');
// Start the MySQL Connection
mysql('server-database-name').then(async db => {
db.query('SELECT * FROM test')
// Success
.then(data => {
console.log(data);
// Complete
return;
})
// Fail
.catch(err => {
console.error(err);
// Complete
return;
});
// Complete
return;
}).catch(err => {
console.error(err);
});
// Start the MySQL Connection with multiple databases
mysql(['server-database-name-1', 'server-database-name-2']).then(dbs => {
// Get Database 1
const db = dbs['server-database-name-1'];
// Complete
return;
}).catch(err => {
console.error(err);
});
You will use this module to create a totally easy to use method to create a connection to your database. You just need to insert your database name into the method. Totally simple and easy!
module.exports = function (database = 'main', insertSSL = true) {
return new Promise(async function (resolve, reject) {
// Modules
const mysql = require('@tinypudding/mysql-connector/create');
const getMySQL = require('./get');
// Single Database
if (typeof database === "string") {
// Get MySQL Connection
// If you want to use only the normal connection. Change the "firebase" option to "default".
mysql(require('mysql'), 'firebase', getMySQL(database, insertSSL)).then(resolve).catch(reject);
}
// Nope
else {
// Prepapre Module
const sameUser = require('@tinypudding/mysql-connector/sameUser');
// Prepare Keys
let key;
const keys = [];
// Get Keys
for (const item in database) {
if (Number(item) > 0) {
keys.push(sameUser(database[item], key));
} else { key = getMySQL(database[item], insertSSL); keys.push(key); }
}
// start Connection
mysql(require('mysql'), 'firebase', keys).then(resolve).catch(reject);
}
// Complete
return;
});
};
This module will get the json from your database settings.
module.exports = function (database = 'main', insertSSL = true) {
// Get Key
const key = require('clone')(require('./keys.json'));
// Insert Database Value
key.data.database = database;
// Insert SSL
if(insertSSL) {key.data.ssl = require('./getSSL')();}
// Complete
return key;
};
If you are using SSL. This file will help you to get your SSL data.
module.exports = function (readType) {
// Prepare FS
const fs = require('fs');
const path = require('path');
// Prepare Items
const result = {
ca: fs.readFileSync(path.join(__dirname, '/server-ca.pem'), readType),
cert: fs.readFileSync(path.join(__dirname, '/client-cert.pem'), readType),
key: fs.readFileSync(path.join(__dirname, '/client-key.pem'), readType),
rejectUnauthorized: true
};
// Send Result
return result;
};
This is the file that will contain all the default connection settings for your database.
{
"google_cloud": {
"socketPath": "/cloudsql/{project-name}:{region}:{database-server-id}"
},
"default": {
"host": "public-database-server-ip",
"port": 3306
},
"data": {
"database": "server-database-name",
"user": "root",
"password": "example123"
}
}