#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