Docker安装Mysql详细步骤
一、安装Docker环境
安装Docker环境看官网文档吧,在此不做赘述。
二、安装Mysql
docker pull mysql/mysql-server:latest
#创建mysql01容器
Code
1 |
|
#参数解读
d 后台运行
p 端口映射
MYSQL_USER 创建的用户
MYSQL_PASSWORD 用户密码
MYSQL_ROOT_PASSWORD root用户密码
name 容器名 镜像名
character 数据库字符集
collation-server 数据库排序规则
#1.查看mysql01容器运行日志
docker logs mysql01
#2.进入mysql01容器
docker exec -it mysql01 bash
#3.连接到mysql
mysql -u haojy -p
#4.输入密码:`rootroot`
#5.查看用户数据
select host,user,plugin from mysql.user;
#6.查看字符集(utf8解决中文乱码)
show variables like '%char%';
1.navicat连接mysql报错
1.先通过命令行进入mysql的root账户:
mysql -u root -p
2.更改加密方式,修改密码(注意修改你要远程连接的用户)
ALTER USER 'haojy'@'%' IDENTIFIED WITH mysql_native_password BY 'rootroot';
3.刷新
FLUSH PRIVILEGES;
2.修改MYSQL 默认字符集
#1.修改my.cnf文件
vi /etc/my.cnf
#2.录入以下配置
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#3.保存退出,重启容器
docker restart mysql01
3.mysql 挂载资料卷,在容器外操作mysql配置
#1.创建映射的文件目录
mkdir -p /docker/mysql/config/
mkdir -p /docker/mysql/config/data
cd /docker/mysql/config/
vi my.cnf
#2.录入以下配置
[mysql]
user=mysql
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#3.1mount 方式挂载(推荐使用)
docker run -d -p 3306:3306 -
e MYSQL_USER="username" -
e MYSQL_PASSWORD="password" -
e MYSQL_ROOT_PASSWORD="password" --
mount type=bind,source=/docker/mysql/config/my.cnf,target=/etc/my.cnf --
mount type=bind,source=/docker/mysql/config/data:/var/lib/mysql,target=/var/lib/mysql --
name mysql01 mysql/mysql-server
#3.2volume 方式挂载
docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/config/data:/var/lib/mysql mysql/mysql-server
#4.进入mysql01容器
docker exec -it mysql01 bash
#5.连接到mysql
mysql -u haojy -p
#6.查看字符集
show variables like '%char%';
#7.字符集配置成功
4.如果镜像下载特别慢,请自行百度docker镜像加速
。
5.创建用户,设置权限
CREATE USER 'test'@'localhost' IDENTIFIED BY 'pwd123';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;
CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
6.修改密码
#6.1 mysql5.7版本语法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
#6.2 mysql5.7之后版本语法:
ALTER user 'root'@'localhost' IDENTIFIED BY 'password'
三、连接Mysql
1、使用Network方式连接Mysql
1.1 Bridge方式(单台)
#1.创建network
docker network create -d bridge mybridge
#2.查看network
docker network ls
#3.运行core01容器连接到mybridge网络
docker run -d -p 5000:5000 --net mybridge --name core01 mycore
#4.将mysql01连接到mybridge网络
docker network connect mysql01 mybridge
#5.查看mysql01网络
docker inspect mysql01
#6.查看core01网络
docker inspect core01
#7.docker内安装ping命令工具
yum install iputils-ping
appsetting.json文件
"ConnectionStrings":{
"MysqlStr":"server=[IpAddress];port=3306;database=MysqlTest;userid=haojy;password=rootroot"
}
#1.改配置文件方式
[IpAddress] 替换成 mysql01 的 IpAddress地址
"ConnectionStrings":{
"MysqlStr":"server=db;port=3306;database=MysqlTest;userid=haojy;password=rootroot"
}
#2.改容器名称
docker rename mysql01 db
1.2 Overlay方式(多台)
待补充…
网络桥接图
2、使用 Link方式连接Mysql
docker run -d -p 5000:5000 -name core01 mycore --link mysql01:db
#验证数据库是否可以连接,可通过 ping db 检测
docker exec -it core01 bash
ping db
appsetting.json文件
"ConnectionStrings":{
"MysqlStr":"server=db;port=3306;database=MysqlTest;userid=haojy;password=rootroot"
}
博主博客:Docker部署NetCore