最近項目任務不多就琢磨著把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版本
三、配置MySql
1.數據庫和表名在 Windows 中是大小寫不敏感的,需要修改配置文件,修改完重啟MySql服務
my.ini 裡面的mysqld部分加入 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切換,目前生產環境運行穩定