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
相关推荐
渣渣灰飞23 分钟前
MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第二节:WHERE 条件查询
sql·学习·mysql
不知疲倦的仄仄2 小时前
ShardingSphere:高效管理数据库集群的终极方案
sql·mysql·oracle·database
Java小白笔记3 小时前
MySQL中存储过程大表分批删除历史数据
android·mysql·adb
数据库小学妹3 小时前
MySQL慢SQL优化实战指南:EXPLAIN分析+索引优化+8个真实案例
sql·mysql·mysql优化·数据库性能·索引优化
无小道4 小时前
Redis——redis和mysql的数据同步
数据库·redis·mysql
渣渣盟4 小时前
Docker 运维常用命令手册(含扩容与实战)
运维·docker·容器
小尘要自信4 小时前
小米摄像头怎么接入RTSP?Go2RTC转流、EasyNVR录像与公网访问教程
人工智能·docker·开源
linuxoffer5 小时前
MYSQL回收碎片空间
数据库·mysql
我叫张小白。6 小时前
一个微服务电商+社区项目(瓷韵app)的技术深度复盘
docker·微服务·云原生·架构
小巧的蜡烛6 小时前
对CSS中的Position、Float属性的一些深入探讨
数据结构·mysql