目前的项目涉及到数据库的问题,原先的方案是使用Access数据库,因为数据量不大,界面友好,而且软件使用C#编写,就认为用微软自家的东西会更安全可靠一些。
但是,这几天在学习的过程中才发现Entity Framework竟然不支持Access数据库,而且linq to sql也不支持。但还是希望尽量能用上强大的EF框架。
由于EF6直接支持的是SQL Server数据库,一个是因为收费,另外是感觉大材小用,故而转向MySQL数据库,但是默认情况下是不支持的,但是网上有一些插件可以解决这一问题,下面是解决的简单步骤:
使VS和EF6支持MySQL
1.安装mysql server
进入http://dev.mysql.com/downloads/mysql/
下载,可以选择自己需要的版本进行下载
2.安装MySql的VS插件
进入http://dev.mysql.com/downloads/windows/visualstudio/
下载mysql数据库的VS插件
3.安装用于.net连接程序
进入http://dev.mysql.com/downloads/connector/
下载连接程序,因为我用到的是.net平台,因此选择其中的.net连接程序
4.使用Nuget Packages(Nuget 程序包管理器)安装EF
使用命令 Install-Package EntityFramework
5.可选项安装mySql ef6 支持
Install-Package MySql.Data.Entity.EF6
这个东西在安装connector后就有了。
6.修改app.config(这一步骤在新版本中已经不需要了)
<entityFramework> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>
MySQL服务的绿色安装
一、MySQL的下载
Mysql官方网站:http://www.mysql.com/
,MySQL(GPL版)的下载地址:http://dev.mysql.com/downloads/mysql/
。从官方网站可以找到两种文件包,一种是msi安装程序,另一种是zip压缩包。本人喜欢清爽的方式,所以下载的是ZIP压缩包。
二、MySQL的安装
解压出下载的文件mysql-5.6.29-win32.zip
(有x86和x64两个版本)到任一目录,防止出现未知问题,最好放在非系统盘的非中文目录下,我的位置C:\Program Files\mysql-5.6.29-win32
。打开文件夹复制一份my-default.ini
为my.ini
的配置文件。
打开my.ini
文件,相关配置修改如下
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. #mysql根目录 basedir ="C:\Program Files\mysql-5.6.29-win32" #数据文件存放目录 datadir ="C:\Program Files\mysql-5.6.29-win32\data" # port = ..... 端口,默认3306 # server_id = ..... 服务实例的唯一标识 # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #服务端的编码方式 character-set-server=utf8 [client] #客户端编码方式,最好和服务端保存一致 loose-default-character-set = utf8 [WinMySQLadmin] Server = "C:\Program Files\mysql-5.6.29-win32\bin\mysqld.exe"
上面设置为了保证服务正常运行,根据自己需要调整参数,修改后要重启服务。
三、注册MySQL服务
开始——运行——cmd(以管理员身份运行),然后cd到mysql安装目录的bin下面,我的目录就是C:\Program Files\mysql-5.6.29-win32\bin
,然后执行mysqld -install
,提示服务安装成功!运行services.msc
一看,确实有一个名为MySQL的服务了,启动它。有时启动失败,根据情况调整参数即可。
到这儿mysql安装就算完成了。
四、登录维护MySQL
MySQL的默认用户名是root,密码为空。
怎么登录?还是开始——运行——cmd,cd到bin目录下,然后执行mysql -u root -p
,提示输入密码,由于第一次运行,密码为空可以直接回车。
还是给数据库设个密码吧。输入exit退出登录。然后运行C:\Program Files\mysql-5.6.29-win32\bin\mysqladmin -uroot -p password <新密码>
,将<新密码>
替换为你的自定义密码,然后按回车。这时会提示输入密码,其实是指的原密码,原密码因为是空,所以这里再回车即可完成设置。然后用上面的方法和新密码登入mysql,即可正常工作。
运行show variables like '%version%'
查看数据库相关信息
至此,整个数据库的安装完成。
五、开启远程登录
mysql安装完成后默认只能本机(就是localhost)登录, 我们需要开启远程登录才方便使用。开启方法有很多,我说一下其中一个方法:
x:\>mysql -u root -p 密码 //登录系统 mysql> use mysql; //切换数据库 mysql> update user set host = '%' where user = 'root'; //上面这句话有时出现一个错误 ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' //不过这时你查询一下user表发现已经更新一条记录了,下面这句话 mysql> select host, user from user; //直接执行这句,其实就是刷新权限 mysql> flush privileges;