Skip to content

GhyslainBruno/mysql-ssh

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)
})

About

npm package to execute mysql command over an ssh tunnel. https://www.npmjs.com/package/mysql-ssh

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%