Abp框架連接mysql數據庫
開始想用Abp框架來搭建公司的新項目,雖然一切還沒有定數,但是兵馬未動,糧草先行,我先嘗試一下整個過程,才能夠更好的去爭取機會。
此次技術選型:Abp(Asp.Net core mvc)+mysql(8.0)+docker
Abp官網地址:https://aspnetboilerplate.com/
1、Nuget中安裝mysql相關包,oracle公司提供的mysql包用起來還有問題,所以現在都是用的第三方的mysql包。
pomelo.entityframeworkcore.mysql
pomelo.entityframeworkcore.mysql.design
2、在EntityFrameworkCore層中找到XXDbContextConfigurer,修改DbContext中數據庫配置,默認使用的SqlServer,修改為mysql。
3、修改連接字符串,在Web.Host或是Web.MVC下找到appsetting.json文件並修改其中的連接字符串。
"Default": "Server=xxx.xxx.xxx.xxx; Database=surrounddb;charset=utf8;uid=root;pwd=123456;"
我直接在服務器中的Docker下安裝了一個mysql數據庫,因此在開發環境下也將直接使用該數據庫。
4、開始更新數據庫,可將EntityFrameworkCore層下的Migrations文件夾刪掉不影響,其中的是該版本歷史過程中數據庫遷移所帶來的,於我們而言不重要了。
在程序包管理器控制臺下選中EntityFrameworkCore,並開始輸入命令
PM>Add-Migration name(取一個本次更新的名稱)
提示信息:To undo this action, use Remove-Migration.
PM>Update-Database
沒有差錯下將會提示如下:
提示信息:Applying migration ‘20180809141445_InitAll‘.
Done.
5、啟動網站,成功打開並連接,如有表結構變化,更新數據庫,只需再次運行之前兩行命令即可。
註意:
1、我的mysql數據庫版本已高於5.7,在mysql5.7時會報一些錯誤,諸如:Specified key was too long; max key length is 767 bytes之類的.
是由於該版本的mysql使用的編碼方式不同,選擇提升版本、通過修改mysql的編碼方式解決(https://blog.csdn.net/NikoZhao/article/details/79521812)
2、連接字符串中如果加入了Ssl=None;將會出錯,去掉即可。
2018-08-09,望技術有成後能回來看見自己的腳步
Abp框架連接mysql數據庫