Сбой подключения к адаптивному серверу Airflow

#sql #sql-server #airflow

#sql #sql-сервер #воздушный поток

Вопрос:

Я хочу подключить свой Airflow и Microsoft SQL Server. Я настроил свое соединение на панели «подключения» в окне «Администратор», как указано в следующей ссылке:http://airflow.apache.org/howto/manage-connections.html

Но когда я запускаю свою задачу Dag, которая связана с SQL Server, немедленно завершается ошибкой:

 [2019-03-28 16:16:07,439] {models.py:1788} ERROR - (18456, "Login failed for user 'XXXX'.DB-Lib error message 20018, severity 14:nGeneral SQL Server error: Check messages from the SQL ServernDB-Lib error message 20002, severity 9:nAdaptive Server connection failed (***.***.***.28:1433)n")
  

Мой код из DAG для подключения Micrososft Sql выглядит следующим образом:

 sql_command = """
select * from [sys].[tables]
"""
t3 = MsSqlOperator( task_id = 'run_test_proc',

                    mssql_conn_id = 'FIConnection',

                    sql = sql_command,

                    dag = dag)
  

Я проверил тип конфигурации ip-адреса и номера порта, установив соединение через библиотеку pymssql со своего локального компьютера. Тестовый код следующий:

 pymssql.connect(server="***.***.***.28:1433",
                    user="XXXX",
                    password="XXXXXX"
                    ) as conn:
                    df = pd.read_sql("SELECT * FROM [sys].[tables]", conn)
                    print(df)
  

Не могли бы вы, пожалуйста, поделиться, сталкивались ли вы с этой проблемой?

Кстати, я использую VirtualBox в Ubuntu 16.04 LTS

Комментарии:

1. Похоже, вам нужно проверить комбинацию имени пользователя и пароля.

2. Я попробовал использовать ту же комбинацию имени пользователя и пароля в моем тесте pymssql, это сработало. Я изменил его на xxxx по соображениям безопасности 🙂

3. Ну, конечно, вы бы не стали публиковать здесь реальные значения. Суть в том, что сообщение об ошибке сообщает вам, что пользователь не может подключиться с предоставленными учетными данными. Существует ли пользователь? Вы дважды проверяли имя пользователя и пароль?

4. извините за недопонимание. Да, я много раз проверял имя пользователя и пароль, как я сказал выше, я проверил вход с теми же значениями в моем скрипте python.

5. Привет, Нихад, ты можешь опубликовать свое исправление? где находится имя базы данных, указанное выше? Заранее спасибо. Бхарат

Ответ №1:

У меня была та же проблема, потому что freetds-dev отсутствовал в Linux:

apt-get install freetds-dev