Я пытаюсь подключиться к Microsoft SQL Server 2008 SP3 с помощью Liquibase и Microsoft JDBC Driver 4.1. Я получаю различные исключения и ни одного успешного способа аутентификации на сервере через командную строку. С тем же именем пользователя и паролем я смог войти в базу данных через клиент MS SQL. Таким образом, это не проблема, связанная с проблемами входа в систему для этого пользователя. Я считаю, что проблема связана с драйвером JDBC.
Версии:
1) SQL Server 2008 с пакетом обновления 3 (SP3)
2) Ликвибаза v3.3.2
3) Драйвер JDBC - «Драйвер Microsoft JDBC 4.1 для SQL Server» - http://www.microsoft.com/en-us/download/details.aspx?id=11774
4) Версия JDK - 1.7.0_71 "[Среда выполнения Java (TM) SE (сборка 1.7.0_71-b14), 64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 24.71-b01, смешанный режим)]
Что я проверил:
1) TCP / IP разрешен, помечено "ДА", порт 1433
2) MS SQL 2008 SP3, установленный для решения проблемы «2976923 2994310 FIX: сбой агента распространителя для подписки Oracle при использовании SQL Server 2008 R2 или SQL Server 2008» - http://support.microsoft.com/kb/2653857
3) Проверка подлинности сервера SQL и проверка подлинности Windows включены для пользователя.
Ошибки и ввод в командной строке:
1 "com.microsoft.sqlserver.jdbc.sqlserverexception не удалось войти в систему для пользователя"
Ввод в командной строке -
а. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = "jdbc: sqlserver: // DBServer" --username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
б. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = "jdbc: sqlserver: // DBServer; databaseName = DBName;" --username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
c. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = "jdbc: sqlserver: // DBServer; databaseName = DBName;" ; --username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
2 - Непредвиденная ошибка при запуске Liquibase: com.microsoft.sqlserver.jdbc.SQLServerException: номер порта 1433 \ DBName недействителен.
Командная строка ввода -
а. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = sC: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ qljdbc4.jar --url = "jdbc: sqlserver: // DBServer: 1433 / DBName" - -username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
б. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = "jdbc: sqlserver: // DBServer: 1433 \ DBName" - -username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
c.liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = "jdbc: sqlserver: // DBServer \ DBName" - -username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
3 Непредвиденная ошибка при запуске Liquibase: com.microsoft.sqlserver.jdbc.SQLServerException: соединение TCP / IP с хостом DBServer / DBName, порт 1433 не выполнено. Ошибка: «null. Проверьте свойства соединения. Убедитесь, что на узле запущен экземпляр SQL Server и принимает соединения TCP / IP на порту. Убедитесь, что соединения TCP с портом не блокируются брандмауэром.».
Ввод в командной строке -
а. liquibase --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ MicrosoftJDBC \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = jdbc: sqlserver: // DBServer / DBName "--username = abcd --password = abcd123 --changeLogFile = db-changelog.xml обновить
Мне требуется разрешение с помощью аргументов командной строки Liquibase, а не с помощью Java или Maven. Мне удалось успешно пройти аутентификацию с одним и тем же пользователем через Java и Maven, но это не решает мою задачу по автоматизации развертываний. Пожалуйста, помогите решить эту проблему. Спасибо!