<p dir="auto">Really curious to explore this tool.  Unfortunately, although my connection tests okay (Seems OK!), as soon as I save the db connection, and re-test it, the connection fails with a backtrace.  I am suspecting a problem with the way that the encrypted password is stored.</p>
<p dir="auto">I'm using OSX.  Connection string is:</p>
<p dir="auto">mysql://root:PASSWORD@{BLAH}.rds.amazonaws.com:3306/db_name</p>
<p dir="auto">Seems OK!</p>
<p dir="auto">Once I save the connection, the password displayed n the connection string changes to XXXXXXX, I can not see any tables from the db, and I get the following backtrace when trying to re-test the connection:</p>
<p dir="auto">Traceback (most recent call last):<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/caravel/views.py", line 1029, in testconn<br>
engine.connect()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2018, in connect<br>
return self._connection_cls(self, **kwargs)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 72, in <strong>init</strong><br>
if connection is not None else engine.raw_connection()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2104, in raw_connection<br>
self.pool.unique_connection, _connection)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2078, in _wrap_pool_connect<br>
e, dialect, self)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1405, in _handle_dbapi_exception_noconnection<br>
exc_info<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause<br>
reraise(type(exception), exception, tb=exc_tb, cause=cause)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2074, in _wrap_pool_connect<br>
return fn()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 318, in unique_connection<br>
return _ConnectionFairy._checkout(self)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 713, in _checkout<br>
fairy = _ConnectionRecord.checkout(pool)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 480, in checkout<br>
rec = pool._do_get()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 1060, in _do_get<br>
self._dec_overflow()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in <strong>exit</strong><br>
compat.reraise(exc_type, exc_value, exc_tb)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 1057, in _do_get<br>
return self._create_connection()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 323, in _create_connection<br>
return _ConnectionRecord(self)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 449, in <strong>init</strong><br>
self.connection = self.**connect()<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/pool.py", line 607, in __connect<br>
connection = self.__pool._invoke_creator(self)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 97, in connect<br>
return dialect.connect(_cargs, <em>_cparams)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 385, in connect<br>
return self.dbapi.connect(_cargs, <em>_cparams)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/MySQLdb/__init</em></em>.py", line 81, in Connect<br>
return Connection(_args, *_kwargs)<br>
File "/Users/jkeller/.virtualenvs/muck/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in <strong>init</strong><br>
super(Connection, self).<strong>init</strong>(_args, *_kwargs2)<br>
OperationalError: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'root'@'10.0.3.253' (using password: YES)")</p>
<p dir="auto">Because the password is substituted with Xs. Could be an easy patch for someone willing to start contributing.</p>