Docker安装Mysql

在docker中安装mysql

1.拉取镜像

java 复制代码
docker pull mysql 8.0.21 //拉取的是8.0.21版本
docker pull mysql  //拉取的是latest

2.创建文件夹 挂载数据卷用

java 复制代码
mkdir -p /data/mysql/{conf,data} //在data文件夹下的mysql文件夹下创建两个文件夹分别是 conf,data

3. 配置my.cnf文件

my.cnf文件内容 将my.cnf放到conf目录下面

java 复制代码
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
 
symbolic-links=0
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
 
##下面为添加的自定义配置
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password
 
 
#主数据库配置
log-bin=mysql-bin
server-id=1

data目录是数据保存到宿主机中,下次需要的时候重启容器,原有数据都能被加载,不会丢失数据

4.创建mysql容器

java 复制代码
--docker创建mysql容器
docker run -d --name mysql -m 5g  --network=prod-net --ip=10.25.100.1 -p 3306:3306  -v /data/mysql/conf/my.cnf:/etc/my.cnf  -v /data/mysql/data:/var/lib/mysql --privileged=true --restart=always  -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai  mysql:8.0.21
java 复制代码
参数介绍
	< -d 后台运行
	< -mane 容器名称
	< -m 设置容器使用内存最大值
	< --network docker网络名称
	< --ip  指定网络
	< -p 指定端口映射 格式为: 主机port:容器port
	< -v 绑定一个卷
	< --restart=always 自启动
	< --privileged=true 赋予容器几乎与主机相同的权限
	< -e 设置环境变量

5.修改mysql允许Navicat远程连接

1.进入mysql容器
java 复制代码
docker exec -it mysql /bin/bash
2.登录mysql服务器,之后输入mysql密码:123456 创建容器时设置的密码
java 复制代码
mysql -u root -p;
3给用户授权
java 复制代码
//mysql8.0以前的
grant all privileges on *.* to root@'%' identified by '123456';
//8.0 以后的
grant all privileges on *.* to root@'%';
4.更新权限后,外部就可以使用native之类的连接软件进行连接了
java 复制代码
flush privileges;
5. 退出mysql
java 复制代码
exit 或者 quit
6.退出容器
java 复制代码
exit
相关推荐
HeXDev30 分钟前
【Docker】一键将运行中的容器打包成镜像并导出
运维·docker·容器
milo.qu2 小时前
ubuntu22.04 安装Docker
linux·运维·docker
lllsure2 小时前
【Docker】镜像
java·spring cloud·docker
悠悠海风2 小时前
解决docker配置了镜像源但还会拉取官方镜像源的问题
docker
一个帅气昵称啊2 小时前
Docker命令大全:从基础到高级实战指南
docker·容器·eureka·架构·.net
*伤^情*2 小时前
docker教程
运维·docker·容器
荣光波比3 小时前
MySQL数据库(一)—— 数据库基础与MySQL安装管理指南
运维·数据库·mysql·云计算
迦蓝叶4 小时前
JAiRouter 0.8.0 发布:Docker 全自动化交付 + 多架构镜像,一键上线不是梦
java·人工智能·网关·docker·ai·架构·自动化
A-刘晨阳4 小时前
【Linux】Docker update 深度解析:命令、常用参数与实战示例
linux·运维·docker
rockmelodies5 小时前
【容器使用】如何使用 docker 和 tar 命令来操作容器镜像
运维·docker·容器