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
相关推荐
小码农 - 初5 小时前
MySQL 增删改查
mysql
五阿哥永琪11 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善11 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
Ai拆代码的曹操16 小时前
MySQL GROUP BY 性能优化:执行计划分析 + 索引重构实战
mysql·性能优化·重构
小小洋洋16 小时前
OpenWrt 从U盘迁移到内置 eMMC,并完成扩容与 Docker 安装
java·docker·eureka
Eloudy17 小时前
docker build 与 docker buildx build 的应用场景
docker·构建
瞬间&永恒~17 小时前
【Docker】(三)联合文件系统UnionFS + Overlay2
docker·云原生·容器
数据知道20 小时前
主机入侵检测(HIDS):OSSEC / Wazuh 部署与规则编写
安全·网络安全·docker
安_20 小时前
MySQL SQL 调优完整指南
数据库·sql·mysql
逐光老顽童21 小时前
第 5 章:搞懂 K8s Service:从 ClusterIP 到负载均衡
docker·云原生·容器