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
相关推荐
写后端的胖头鱼2 小时前
【高频面试题】FullText 全文索引(MySQL)
数据库·mysql·索引·全文索引
更深兼春远4 小时前
第2篇:Dify 部署保姆级教程:用 Docker跑起来
docker·容器·dify
code_whiter4 小时前
01-MySQL数据库基础
数据库·mysql
vx_Biye_Design7 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物
做运维的阿瑞7 小时前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
小白的码BUG之路8 小时前
Docker -- No space left on device
运维·docker·容器
java1234_小锋8 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据库基本操作
数据库·mysql
专业程序开发源8 小时前
springboot生命故事书制作小程序65290-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·小程序·课程设计
程序员老陆9 小时前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器
jason.zeng@15022079 小时前
canal做mysql的异步传输工具
数据库·mysql·linq