Open mysql Command Using Rails Connection Details

Sometimes I need to quickly investigate something on the production server for one of my little apps.

Hunting down the password and trying to copy-paste it into the right mysql incantation is tedious.

So I automated it.

rails_mysql
#!/usr/bin/ruby require 'rubygems' require 'yaml' config = YAML.load(File.read("config/database.yml")) database= config[ENV["RAILS_ENV"] || "development"] unless database["adapter"] =~ /mysql/ puts "Current RAILS_ENV is not a mysql database" exit 1 end cmd = "mysql -h\"#{database['host']}\" -u\"#{database['username']}\" -p\"#{database['password']}\" -P\"#{database['port']}\" -D\"#{database['database']}\"" puts cmd exec cmd

Then you can launch it from the root of a rails app.

Terminal
[/usr/share/www/secretagent.com] [10:47:09 akatakritos]$ rails_mysql mysql -h"database.secretagent.com" -u"bond007" -p"supersEcurepassw0rd" -P"3382" -D"secret_database" Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 676267 Server version: 5.1.56-log MySQL Server Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show tables; +---------------------------+ | Tables_in_secret_database | +---------------------------+ | agents | | blackmail_letters | | enemies | | schema_migrations | | secrets | +---------------------------+ 5 rows in set (0.00 sec)