스프링에서 오라클을 연동했던것 처럼, 마리아 DB도 연동하여 사용할 수 있습니다. 방법은 오라클 연동과 크게 다르지 않습니다. Show
또한 마리아 DB는 MySQL과 연결 방법이 동일하므로, 이 게시물에 있는 방법을 사용하면 MySQL도 동일하게 연동시킬 수 있습니다.
먼저, 만약이라도 발생할 에러를 방지하기 위해 새로운 스프링을 사용합니다.
프로젝트를 생성하고, 필요하다면 서버도 추가합니다. 여기서는 서버를 사용하지 않기 때문에 굳이 추가할 필요는 없습니다.
마리아 DB용 라이브러리를 이용합니다. 설명에 나와있는데, 위에서 언급했듯 마리아 DB는 물론 MySQL에도 적용됩니다.
pom.xml의 디펜던시스(depandencies) 내부에 코드를 추가합니다. <!-- maria bd --> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>2.3.0</version> </dependency> <!-- org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!-- spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> <scope>test</scope> </dependency>
기존에 있는 junit test의 버전을 4.12로 변경합니다.
src/test/java 하위에 새로운 클래스를 생성하고, 코드를 추가합니다. 이 테스트용 클래스를 이용하여 마리아 DB의 접속을 확인할 수 있습니다. package com.kuzuro.controller; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"}) public class CTest { final String DRIVER = "org.mariadb.jdbc.Driver"; final String URL = "jdbc:mariadb://127.0.0.1:3306"; final String USER = "kuzuro"; final String PASSWORD = "1111"; @Test public void mariaTest() throws Exception{ Class.forName(DRIVER); try(Connection con = DriverManager.getConnection(URL, USER, PASSWORD)){ System.out.println(con); } catch(Exception e) { e.printStackTrace(); } } } 테스트시 변칙을 주기 위해 DRIVER, URL, USER, PASSWORD의 전역 변수를 이용했습니다.
테스트용 어노테이션 @Test 가 사용된 메서드를 우클릭 한 후, Run As → JUnit test를 클릭합니다.
정상적으로 접속하는데 성공된다면 콘솔(Console)창에는 연결 정보가 출력되고, JUnit창에는 이상없이 실행되었다는 에러가 없는 녹색바가 보입니다.
만약 DRIVER드라이버가 잘못되었을 경우 콘솔창에는 연결 정보가 출력되지 않으며, JUnit창에는 에러가 표시됩니다.
URL, USER, PASSWORD가 잘못되었을 경우 콘솔창에 에러가 표시되고m, JUnit창에는 특이하게도 이상없이 실행되었다며 에러가 없고 녹색바가 보입니다. DRIVER에 의해 마리아 DB에 접근을 하는데까진 성공했지만 URL, USER, PASSWORD가 맞지 않아 로그인이 실패한것입니다. 이런 경우가 발생된다면 pom.xml에 라이브러리가 제대로 입력되지 않았거나, 마리아 DB의 포트번호를 잘못 입력했거나, 아이디 또는 패스워드가 틀린 경우이므로 다시 한번 확인하여 올바르게 수정하면 해결됩니다. MariaDB는 MySQL을 즉시 교체할 수 있는 바이너리입니다.모든 실용적인 목적에서 MariaDB는 동일한 MySQL 버전을 즉시 교체할 수 있습니다. (예를 들어 MySQL 5.1은 MariaDB 5.1, MariaDB 5.2, MariaDB 5.3과 호환되며, MySQL 5.5은 MariaDB 5.5와 호환된다.) 이는 다음과 같은 것을 의미합니다.
이는 대체로 MySQL을 삭제 한 뒤, MariaDB를 설치해도 잘 작동한다는 것을 의미합니다. (동일한 메인 버전에서는 데이터 파일을 변환할 필요없다.) 우리는 매 달 MySQL 코드를 병합하여 호환성을 보장하며 오라클이 추가하는 기능 및 버그 수정도 MariaDB에 포함됩니다. 우리는 업그레이드 스크립트에 많은 작업을 완료하여 MySQL 5.0에서 MySQL 5.1로 업그레이드하는 것보다 MySQL 5.0에서 MariaDB 5.1로 업그레이드하는 것이 더 쉽도록 하였습니다. 하지만, MariaDB는 MySQL에 없는 새로운 옵션, 확장, 저장 엔진, 버그 수정도 많이 포함하고 있습니다. 서로 다른 MariaDB 버전별 기능은 MariaDB 릴리즈별 차이 에서 확인할 수 있습니다. MariaDB 5.1과 MySQL 5.1의 비호환성경우에 따라 MariaDB는 MySQL보다 더 많은 정보를 보여주기 위하여 비호환성을 허용하고 있습니다. 다음 목록은 MySQL 5.1 대신 MariaDB 5.1을 사용하는 경우에 알려진 모든 사용자 레벨의 비호환성 목록입니다.
MariaDB 5.2와 MySQL 5.1의 비호환성Incompatibilities between MariaDB 5.2 and MySQL 5.1MariaDB 5.1과 MySQL 5.1의 비호환성과 동일하며 1가지가 추가된다.
모든 실용적인 목적에서 MySQL 5.2는 MariaDB 5.1과 MySQL 5.1을 즉시 대체 가능하다. MariaDB 5.3, MySQL 5.1, MariaDB 5.2의 비호환성
MariaDB 5.3과 MySQL 5.3의 비호환성XtraDBXtraDB를 제공하는 Percona는 5.5 코드 기반에게 초기 기능의 모든 것을 제공하지 않았다. 따라서 MariaDB 5.5 또한 그 기능을 제공하지 못한다. 5.5에 없는 XtraDB 옵션들다음의 옵션들은 XtraDB 5.5에서 지원되지 않는다. 만약 당신이 my.cnf에서 아래의 옵션을 사용 중이라면 5.5로 업그레이드 전에 제거해야 한다.
기본 값이 변경된 XtraDB의 옵션XtraDB options that has changed default valueXtraDB 5.5의 새로운 옵션다음의 옵션들은 XtraDB / InnoDB 5.5에 새롭게 추가된 옵션이다. (Listed here just to have all XtraDB information in the same place)
5.5로 업그레이를 위한 Percona의 가이드 도 참조하는 것이 좋다. MariaDB 5.5, MariaDB 5.3과 MySQL 5.5의 비호환성
MariaDB 10.0과 MySQL 5.6의 비호환성
지원되지 않는 설정
MySQL RPM 교체만약 MySQL RPM을 제거하고 MariaDB를 설치하고자 하는 경우 MySQL RPM은 MariaDB를 설치한 뒤에는 다음과 같이 MySQL RPM 당시의 my.cnf를 복원할 수 있다. mv -vi /etc/my.cnf.rpmsave /etc/my.cnf MariaDB와 MySQL-Proxy의 비호환성MySQL 클라이언트 API는 MySQL-Proxy를 통하여 MariaDB에 연결할 수 있다. 그러나 MariaDB 클라이언트 API는 "진행 보고(progress reporting)"을 MySQL-Proxy가 지원하지 않는다는 정보를 받게 된다. 완벽한 호환성을 위해서는 "진행 보고"를 클라이언트 측이나 서버 측에서 중지시키면 된다. |