最近项目任务不多就琢磨着把SqlServer换成MySql(数据访问使用的ado.net),初步想了下方案有2种:
方案一:继续使用ado.net,重写所有的sql语句
优势:数据访问效率高,改写Sql不多
劣势:项目不断迭代,sql语句写起来也挺麻烦的,开发速度没有ORM快
方案二:替换ado.net,改为EntityFramework,sql语句改为EF
优势:数据访问效率打点折扣,特别是有些复杂的sql语句不好写
优势:开发速度快,以后迭代更方便
基于上述的比较和实际项目相结合,我们选择了方案二,如果效率真的影响很大可能是数据库设计的不够合理或者可以用其他替代方案
一、改写Sql语句
所有Sql语句改为SqlServer EntityFramework访问,改写完成后Sqlserver EntityFramework改为MySql EntityFramework
二、安装MySql
MySql官方下载地址:http://dev.mysql.com/downloads/mysql/,我们服务器操作系统为Server2012,可以下载MSI版本或ZIP版本
- MSI:安装比较方便,向导式的一步一步往下
- ZIP:参考网址http://blog.csdn.net/super_mt/article/details/52813353
三、配置MySql
1.数据库和表名在 Windows 中是大小写不敏感的,需要修改配置文件,修改完重启MySql服务
加入 lower_case_table_names=2
2.1130远程连接没有权限
-- 更改root用户的登录主机为任意主机
UPDATE USER
SET Host = '%'
WHERE User = 'root';
-- 更改权限(root为账户名,%为主机名(任意主机),525099302为密码)
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "525099302";
-- 刷新权限,mysql直接生效
flush privileges;
四、EntityFramework provider 改为Mysql
1.删除EntityFramework SqlServer相关类库
2.安装MySql EntityFramework类库,参考网站:http://www.cnblogs.com/24la/p/ef6-mysql.html
通过以上四部完成数据库从SqlServer到MySql切换,目前生产环境运行稳定