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

相关推荐
奥尔特星云大使1 分钟前
CentOS 7 安装 MySQL 8
mysql·centos·mysql 8
lang201509281 小时前
MySQL FIPS模式:安全合规全解析
mysql
一只叫煤球的猫3 小时前
建了索引还是慢?索引失效原因有哪些?这10个坑你踩了几个
后端·mysql·性能优化
jianghx10244 小时前
Docker部署ES,开启安全认证并且设置账号密码(已运行中)
安全·elasticsearch·docker·es账号密码设置
2503_930123936 小时前
Kubernetes (四)网络插件详解:Flannel 与 Calico 的原理、数据流向与实战对比
网络·容器·kubernetes
yumgpkpm6 小时前
华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
大数据·数据库·mysql·华为·oracle·kafka·cloudera
程序员云帆哥7 小时前
MySQL JDBC Driver URL参数配置规范
数据库·mysql·jdbc
ZHE|张恒8 小时前
Docker 安装 RabbitMQ
docker·rabbitmq
三三木木七8 小时前
mysql拒绝连接
数据库·mysql
唐古乌梁海8 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql