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
相关推荐
百***92026 小时前
【MySQL】MySQL库的操作
android·数据库·mysql
心灵宝贝6 小时前
如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程)
数据库·mysql·macos
想睡hhh6 小时前
mysql索引——理解索引机制及操作
mysql
剑动山河6 小时前
ubuntu 升级mysql由mysql5.7.42 升级到8.4.0
mysql·ubuntu·adb
计算机小手6 小时前
快速搭建一个 GitHub 开源项目导航网站,提供便捷的信息抓取、智能摘要、分类管理功能
经验分享·docker·github·开源软件
FREE技术8 小时前
学生成绩管理系统 基于java+springboot+vue实现前后端分离项目并附带万字文档(源码+数据库+万字详设文档+软件包+安装教程)
java·vue.js·spring boot·mysql
('-')9 小时前
《从根上理解MySQL》第一章学习笔记
笔记·学习·mysql
EelBarb9 小时前
sqlite数据库迁移至mysql
数据库·mysql·sqlite
wuxuanok9 小时前
Debug —— 部署微服务中微服务的配置文件及本地注册Nacos没问题但部署到Docker中就注册失败
docker·微服务·架构
曦樂~9 小时前
【Docker】Dockerfile自定义镜像
运维·docker·容器