MariaDB是MySQL源代码的一个分支,因为MySQL先后被Sun、Oracle收购,虽然目前它还是开源的,但出于对未来的担忧,开发者将它作为MariaDB分离了出来。现在很多公司(比如Fedora)出于商业上的考虑,都准备将MariaDB作为Mysql的替代。而老版本的(5.5.6之前的)mysql向MariaDB基本可以实现无缝切换。
下面介绍下在SSM项目(maven)中切换的方法,总得来说还是很简单的。基本不存在语法上的问题,除非是跨越了比较大的版本。
首先,在pom.xml中,将mysql的driver改为mariadb的:
org.mariadb.jdbc mariadb-java-client 1.1.7
关于版本号,最好自己去官网check一下对应的mysql版本。然后refresh maven,下载依赖包。
由于spring集成了数据库连接管理,所以直接在applicationContext.xml配置:
org.mariadb.jdbc.Driver jdbc:mariadb://XXX.XXX.XXX.XXX:3306/databaseName?characterEncoding=UTF-8 username password
可以看到和mysql的差别仅在于,数据库驱动driverClass不同了(这是肯定的),url的写法改变了。
很多情况下,服务器改用了mariadb(克隆了数据库),没有改动项目配置,可能也是没有问题的。但是注意,如果要改动配置,不要只改一个不改另一个,比如driverclass改了,url没改,这就肯定报错了。
在服务器上安装及配置mariadb,和mysql差别不大,安装(centOS 7):
#yum -y install mariadb-server
命令行连接mariadb,和mysql一样,root密码默认root:
# mysql -u root -pEnter password: Welcome to the MariaDB monitor.
增加用户和权限控制命令也雷同,不再赘述。
关于mariadb的性能,业界众说纷纭。Oracle测试说它不如mysql,mariadb团队测试说它比mysql各方面都提升了,因为都是利益相关方所以也不能全信。经过项目的实测,两者基本没啥差距(和mysql5.1.6相比),但是10.X版本以后,mariadb加上了自行开发的新功能,也许会有新的体验。