.NET 웹 어플리케이션을 개발하는 도중 MySQL Server의 데이터와 연동을 해야하는 일이 필요했다.
우선 Nuget Package를 통해서 MySQL 관련 라이브러리 (MySql.Data.dll, MySql.Data.Entities, MySql.Web)를 설치를 했다.
그리고 web.config에서 MSSQL 접근 방식과 다를게 없이 connectionString설정을 하고 ProviderName를 MySql로 변경을
했다.
이래저래 비지니스 로직을 작성 하고 빌드 후 디버깅을 했더니~~~
시원하게 아래와 같이 오류를 뿜어 주신다.
mysql connector net no longer supports server versions prior to 5.0
처음에는 이게 뭔가 싶었다. MySQL Connector .NET을 최신 버전으로 다시 깔아보기도 하고 web.config 코드도 변경해보고
반나절을 삽질을 했지만 결과는 그대로......
다음날 모닝 커피를 하면 곰곰히 생각해보니 MySQL의 버전이 의심이 들었다.
역시나 "select version()"을 날려줬더니 4.0이란다...
타 팀의 서버라 "업그레이드 해주세요!! 작업하기 힘들어요" 하기도 그랬다.
MySQL Server를 설치하고 데이터 / 스키마등을 Export 하고 Import하고 여간 귀찮게 아닌다.
개발 환경이 VS2012인데 MySQL Connector .NET 하위 버전을 쓰기는 싫고 성공적으로 연동이 될꺼라는 보장도 없다.
Connector/Net version | ADO.NET version supported | .NET Framework version required | MySQL Server version supported | Currently supported |
---|---|---|---|---|
6.7 | 2.x+ | 2.x+ for VS 2008, 4.x+ for VS 2010 / VS 2012, .NET RT for VS 2012 | 5.7, 5.6, 5.5, 5.1, 5.0 | Yes |
6.6 | 2.x+ | 2.x+ for VS 2008, 4.x+ for VS 2010 / VS 2012 | 5.7, 5.6, 5.5, 5.1, 5.0 | Yes |
6.5 | 2.x+ | 2.x+ for VS 2008, 4.x+ for VS 2010 | 5.7, 5.6, 5.5, 5.1, 5.0 | No |
6.4 | 2.x+ | 2.x+, 4.x+ for VS 2010 | 5.6, 5.5, 5.1, 5.0 | No |
6.3 | 2.x+ | 2.x+, 4.x+ for VS 2010 | 5.6, 5.5, 5.1, 5.0 | No |
6.2 | 2.x+ | 2.x+ | 5.6, 5.5, 5.1, 5.0, 4.1 | No |
6.1 | 2.x+ | 2.x+ | 5.6, 5.5, 5.1, 5.0, 4.1 | No |
6.0 | 2.x+ | 2.x+ | 5.5, 5.1, 5.0, 4.1 | No |
5.2 | 2.x+ | 2.x+ | 5.5, 5.1, 5.0, 4.1 | No |
5.1 | 2.x+ | 2.x+ | 5.5, 5.1, 5.0, 4.1, 4.0 | No |
5.0 | 2.x+ | 2.x+ | 5.0, 4.1, 4.0 | No |
1.0 | 1.x | 1.x | 5.0, 4.1, 4.0 | No |
출처 : http://dev.mysql.com/doc/refman/5.6/en/connector-net-versions.html
자자 MySQL Server 버전이 4.0이고
MySQL Connector .NET을 쓰면 오류를 뿜어내고 어떡하지 생각하다가
결국 ODBC를 쓰기로 결정했다.
http://dev.mysql.com/downloads/connector/odbc/ (최신버전)
http://dev.mysql.com/downloads/connector/odbc/3.51.html (ODBC ver3.51)
이곳에서 ODBC Connector ver 3.51을 설치(왜 최신버전이 아닌 하위버전이냐고?? MySQL Server 버전이 4.0이니깐.ㅜㅜ)하고
제어판의 ODBC Administrator에서 MySQL 서버를 시스템 DSN에 등록을 하고
web.config에서
<add name="mysql_conn" connectionString="DSN=MYSQL21;" providerName="System.Data.Odbc" />
이렇게 등록만 하면 비지니스 로직에서 개발하기 위한 준비는 끝이다.
참고로 ODBC를 사용하게 되면 .NET Entity Framework를 사용하지 못한다는 사실!!!! 두둥...
마지막으로 참고로 Window7 x64 환경에서 디버깅을 하게 되면 또 다른 런타임 오류가 나타날 것이다.ㅎㅎㅎ
그것은 바로 전 포스팅을 참고 하면 되겠다^^