docker安装mysql5.7,并使用EF Core || Dapper 连接
## docker 安装 MySQL
参考链接:[菜鸟教程](https://www.runoob.com/docker/centos-docker-install.html) [官网教程](https://docs.docker.com/engine/install/)
~~~shell
#示例
docker run --name mysql57 -p 3306:3306 -v /home/mysql/custom:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# --name mysql57 设置Docker容器名称
# -p 3306:3306 设置使用的主机端口号和对应容器内的端口号
# -v /mysql/custom:/etc/mysql/conf.d 把系统的配置文件挂载出来
# -v home/mysql/data:/var/lib/mysql 把数据挂载出来
# -e MYSQL_ROOT_PASSWORD=123456 设置密码
# -d mysql:5.7 指定MySQL的版本
# 挂载文件,就是把docker里面的文件放出来,会自己同步
#docker 就是一个小系统,如果系统坏了,里面的数据拿不到,所以挂载出来是非常非常有必要的
~~~
tip: 如果执行有问题(提示未找到目录),先执行下面的
~~~shell
mkdir /home/mysql/custom -p
mkdir /home/mysql/data -p
~~~
### MySQL配置
~~~shell
# 进入Docker容器中
docker exec -it mysql57 /bin/sh
# 登录MySQL,其中 -p 后面的123456为密码,中间没有空格
mysql -u root -p123456
~~~
### MySQL基本操作 => [MySQL教程](https://www.runoob.com/mysql/mysql-tutorial.html)
~~~shell
# 查询所有的库
show databases
# 切换库
use demo
# 创建库 --Tip:一定要设置数据库编码格式,在创建数据库、表、字段 时,添加 character set utf8 避免出现中文乱码
create database demo character set utf8;
# 查询表
show tables;
# 创建一个测试表
CREATE TABLE `Userinfo` (
`userid` int(11) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
`address` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`userid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8;
# 查看表结构
DESC Userinfo;
~~~
## MySQL 对接 .NET 代码,使用 EF Core DB
参考链接:[官网教程](https://docs.microsoft.com/zh-cn/ef/core/)
~~~shell
# 在NuGet包管理器中 安装以下包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tool
Pomelo.EntityFrameworkCore.MySql
Microsoft.VisualStudio.Web.CodeGeneration.Design
# 通过工具生成代码
找到 NuGet 控制台,执行
Scaffold-DbContext -Connection "Server=192.168.2.22;Port=3306;Database = demo; User ID =root ; Password =123456" -Provider "Pomelo.EntityFrameworkCore.Mysql" -OutputDir Models
tip:如果执行指令有问题,则先把不相干的类库给他卸载掉
~~~
## mysql 使用dapper
~~~shell
Dapper
Dapper.Contrib
MySql.Data
#加三个包
~~~
先写这些。。。