小十的个人博客

@小十

born for design, do what you want, and carpe diem

文章 343
朋友 17
来访 1840

LATEST POSTS

RANKINGS

    • http://www.xiaoten.com
    • 网站成立5377天

    小十

    • 努力著

    VS2013 EF6连接MySql

    目前的项目涉及到数据库的问题,原先的方案是使用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.inimy.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;

     

     

    Comments | NOTHING

      游客,你好 修改资料

    *邮箱和昵称必须填写