You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "jack (JIRA)" <ji...@apache.org> on 2019/01/27 13:45:00 UTC
[jira] [Commented] (AIRFLOW-3593) Allow '@' in usernames.
[ https://issues.apache.org/jira/browse/AIRFLOW-3593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16753389#comment-16753389 ]
jack commented on AIRFLOW-3593:
-------------------------------
Is this an issue with Airflow?
The way to deal with this is to escape the
{code:java}
@{code}
to
{code:java}
%40 {code}
Which Airflow do as can be seen in your log.
This is the way to do it in many databases for example:
[https://stackoverflow.com/questions/14335978/handle-in-mongodb-connection-string]
[https://stackoverflow.com/questions/23406953/how-do-i-escape-letter-from-sql-password-in-connection-uri]
[https://stackoverflow.com/questions/1423804/writing-a-connection-string-when-password-contains-special-characters]
Could it be that the problem relays on the driver?
> Allow '@' in usernames.
> -----------------------
>
> Key: AIRFLOW-3593
> URL: https://issues.apache.org/jira/browse/AIRFLOW-3593
> Project: Apache Airflow
> Issue Type: Bug
> Components: configuration
> Affects Versions: 1.10.1
> Reporter: will-beta
> Priority: Major
>
> The username provided by *Azure Database for PostgreSQL server* has a '@'.
> But *sql_alchemy_conn* and *result_backend* in the *airflow.cfg* do not allow it.
> {panel:title=exception info"}
> (virtualenv-airflow) AirFlowTest@AirFlowTest:~/airflow$ airflow initdb
> [2018-12-29 11:00:40,925] {settings.py:174} INFO - setting.configure_orm(): Using pool settings. pool_size=5, pool_recycle=1800
> [2018-12-29 11:00:41,418] {__init__.py:51} INFO - Using executor CeleryExecutor
> DB: postgresql+psycopg2://admin%40pg-test1:***@pg-test1.postgres.database.chinacloudapi.cn/airflow
> [2018-12-29 11:00:41,620] {db.py:338} INFO - Creating tables
> Traceback (most recent call last):
> File "/home/AirFlowTest/virtualenv-airflow/bin/airflow", line 32, in <module>
> args.func(args)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/airflow/bin/cli.py", line 1011, in initdb
> db_utils.initdb(settings.RBAC)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/airflow/utils/db.py", line 92, in initdb
> upgradedb()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/airflow/utils/db.py", line 346, in upgradedb
> command.upgrade(config, 'heads')
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/alembic/command.py", line 174, in upgrade
> script.run_env()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/alembic/script/base.py", line 416, in run_env
> util.load_python_file(self.dir, 'env.py')
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 93, in load_python_file
> module = load_module_py(module_id, path)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/alembic/util/compat.py", line 79, in load_module_py
> mod = imp.load_source(module_id, path, fp)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/airflow/migrations/env.py", line 91, in <module>
> run_migrations_online()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/airflow/migrations/env.py", line 78, in run_migrations_online
> with connectable.connect() as connection:
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2091, in connect
> return self._connection_cls(self, **kwargs)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 90, in __init__
> if connection is not None else engine.raw_connection()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2177, in raw_connection
> self.pool.unique_connection, _connection)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2151, in _wrap_pool_connect
> e, dialect, self)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1465, in _handle_dbapi_exception_noconnection
> exc_info
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
> reraise(type(exception), exception, tb=exc_tb, cause=cause)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect
> return fn()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 328, in unique_connection
> return _ConnectionFairy._checkout(self)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 768, in _checkout
> fairy = _ConnectionRecord.checkout(pool)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 516, in checkout
> rec = pool._do_get()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 1140, in _do_get
> self._dec_overflow()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
> compat.reraise(exc_type, exc_value, exc_tb)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 1137, in _do_get
> return self._create_connection()
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 333, in _create_connection
> return _ConnectionRecord(self)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 461, in __init__
> self.__connect(first_connect_check=True)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/pool.py", line 651, in __connect
> connection = pool._invoke_creator(self)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 105, in connect
> return dialect.connect(*cargs, **cparams)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 393, in connect
> return self.dbapi.connect(*cargs, **cparams)
> File "/home/AirFlowTest/virtualenv-airflow/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 130, in connect
> conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
> sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "admin"
> FATAL: password authentication failed for user "admin"
> {panel}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)