docker安装 mysql 8.0.32

首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭

命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld

如果不想重启虚拟机 可以执行 systemctl stop mysqld

//指定版本

docker pull mysql:8.0.32

// 拉取最新的mysql

docker pull mysql:latest

二、查看镜像

docker images

三、创建要挂载的文件夹

root@\~\]# mkdir -p /opt/docker/mysql8/conf/ \[root@\~\]# mkdir -p /opt/docker/mysql8/logs/ \[root@\~\]# mkdir -p /opt/docker/mysql8/data/ # 拷贝一份配置文件,先随便启动一个镜像 docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=5255 -d mysql:8.0.32 # 启动成功后,进入容器内部拷贝配置文件,到宿主主机 docker cp mysql8:/etc/mysql /opt/docker/mysql8/conf # 删除刚才的容器,重新创建容器 # 先停止容器 docker stop mysql8 # 再删除容器 docker rm mysql8

启动mysql ,挂载配置文件,数据持久化到宿主主机

docker run -itd -p 3306:3306 --name mysql8 -e character-set-server=utf8mb4 --privileged=true --restart unless-stopped -v /opt/docker/mysql8/conf/mysql:/etc/mysql -v /opt/docker/mysql8/logs:/logs -v /opt/docker/mysql8/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=5255 -d mysql:8.0.32 --lower_case_table_names=1

命令解释:

-p 端口映射

--name 容器名字,自定义

--privileged=true 挂载文件权限设置

--restart unless-stopped 设置 开机后自动重启容器

-v /opt/docker/mysql8/conf/mysql:/etc/mysql 挂载配置文件

-v /opt/docker/mysql8/logs:/logs \ 挂载日志

-v /opt/docker/mysql8/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,

-v /etc/localtime:/etc/localtime 容器时间与宿主机同步

-e MYSQL_ROOT_PASSWORD=123456 设置密码

-d mysql:8.0.32 后台启动,mysql

--lower_case_table_names=1 要加在镜像名后面,镜像名前面是参数,后面是mysql配置,不然会报错

查看容器状态

docker ps

五、配置远程连接

进入容器

docker exec -it mysql8 /bin/bash

打开MySQL 命令行 密码 5255

mysql -uroot -p

use mysql;

创建账户

CREATE USER 'adminx'@'%' IDENTIFIED BY '123456';

授权账户

GRANT ALL ON *.* TO 'adminx'@'%';

刷新权限

FLUSH PRIVILEGES;

退出 mysql客户端 exit 或者ctrl+c

六、密码正确,登录错误

2、进入容器

$ docker exec -it mysql bash

1

3、修改配置文件

3.1 进入 /etc/mysql/conf.d 文件目录:

$ cd /etc/mysql/conf.d

1

3.2 创建MySQL配置文件:mysql.cnf

$ touch mysql.cnf

1

3.3 在 mysql.cnf 配置文件中填充以下内容

echo mysql.cnf [mysqld] \ skip-grant-tables >>

mysqld

跳过密码登录

skip-grant-tables

1

2

3

3.4 退出容器,重启mysql容器

$ exit

$ docker restart mysql

七、配置mysql的字符集

需要创建 vim /opt/mysql.cnf

并复制以下内容

client

default-character-set=utf8mb4

mysql

default-character-set=utf8mb4

mysqld

跳过密码登录

#skip-grant-tables

#bind-address = 127.0.0.1

init_connect='SET collation_connection = utf8mb4_general_ci'

init_connect='SET NAMES utf8mb4'

character-set-server=utf8mb4

collation-server=utf8mb4_general_ci

skip-character-set-client-handshake

lower_case_table_names=1

然后执行

docker cp /opt/mysql.cnf mysql8:/etc/mysql/conf.d

安装完以后测试本地windows系统上的 navicat

相关推荐
Kevin不想说话9261935 分钟前
WSL2 Ubuntu Docker 完整部署指南
docker
一只笨猫猫44 分钟前
MySQL中InnoDB存储引擎底层原理与MySQL日志机制深入解析
数据库·mysql
江畔独步1 小时前
Doris与DS结合实现MySQL侧的Upsert功能
数据仓库·mysql·doris·upsert
hymuuuu1 小时前
【源码】研学报名小程序开发功能分析案例
mysql·php·需求分析
啃火龙果的兔子1 小时前
在服务器上使用 Docker 部署 Node.js 后端服务和前端项目
服务器·docker·node.js
风清再凯2 小时前
docker-compose容器单机编排
docker·容器·dubbo
Detachym2 小时前
CentOS7下MySQL8.0的安装到基本操作
大数据·mysql·linux学习·学习日志
键盘歌唱家2 小时前
mysql索引失效
android·数据库·mysql
ℳ₯㎕ddzོꦿ࿐2 小时前
Ubuntu 24.04 上安装与 Docker 部署 Sentinel
ubuntu·docker·sentinel
neoooo3 小时前
🎯 深入理解:JOIN 中 ON vs WHERE 条件差异
java·后端·mysql