JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2900
  • Score
    100M100P100Q116482F
  • License MIT

Execute mysql commands over an ssh tunnel.

Package Exports

  • mysql-ssh

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mysql-ssh) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

MySQL SSH

Sets up a MySQL connection inside an SSH tunnel. This is practical when you want to reach a database which is only accessible through a webserver. Even if the database server is not located on the webserver itself.

Greenkeeper badge

API

.connect(obj sshConfig, obj dbConfig)

  • sshConfig should be an object according to the ssh2 package.
  • dbConfig should be an object according to the mysql2 package.
  • Returns a Promise, containing a connection from the mysql2 package.

Usage

Don't forget to .close() the tunnel connection when you're done querying the database.

const mysqlssh = require('mysql-ssh');
const fs = require('fs');

mysqlssh.connect(
    {
        host: 'my-ssh-server.org',
        user: 'me-ssh',
        privateKey: fs.readFileSync(process.env.HOME + '/.ssh/id_rsa')
    },
    {
        host: 'my-db-host.com',
        user: 'me-db',
        password: 'secret',
        database: 'my-db-name'
    }
)
.then(client => {
    client.query('SELECT * FROM `users`', function (err, results, fields) {
        if (err) throw err
        console.log(results);
        mysqlssh.close()
    })
})
.catch(err => {
    console.log(err)
})