Accessing a MySQL Database via a Static IP from Node.js

    You can route all database traffic via a Static IP in Node.js using XLRoutes.

    Currently there is a limitation in that you can’t use the built in connection pooling, so this is not recommended for high traffic applications.

    var mysql = require('mysql2');
    var url = require("url");
    var SocksConnection = require('socksjs');
    var remote_options = {
      host:'your-database.eu-west-1.rds.amazonaws.com',
      port: 3306
    };
    var proxy = url.parse(process.env.STATICA_URL);
    var auth = proxy.auth;
    var username = auth.split(":")[0]
    var pass = auth.split(":")[1]
    
    var sock_options = {
      host: proxy.hostname,
      port: 1080,
      user: username,
      pass: pass
    }
    var sockConn = new SocksConnection(remote_options, sock_options)
    var dbConnection = mysql.createConnection({
      user: 'dbuser',
      database: 'dbname',
      password: 'dbpassword',
      stream: sockConn
    });
    dbConnection.query('SELECT 1+1 as test1;', function(err, rows, fields) {
      if (err) throw err;
    
      console.log('Result: ', rows);
      sockConn.dispose();
    });
    dbConnection.end();
    

    Any issues? Reach out at Support so we can help.