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

相关推荐
0xDevNull2 小时前
MySQL数据冷热分离详解
后端·mysql
一江寒逸2 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain2 小时前
linux个人心得22 (mysql)
数据库·mysql
功德+n3 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
做个文艺程序员3 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
小敬爱吃饭4 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
MaCa .BaKa4 小时前
47-心里健康咨询平台/心理咨询系统
java·spring boot·mysql·tomcat·maven·intellij-idea·个人开发
一江寒逸4 小时前
零基础从入门到精通MySQL(上篇):筑基篇——吃透核心概念与基础操作,打通SQL入门第一关
数据库·sql·mysql
木子欢儿4 小时前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
爱莉希雅&&&5 小时前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper