当前位置: 首页 > news >正文

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 

http://www.lryc.cn/news/284591.html

相关文章:

  • OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换
  • 【数据库学习】ClickHouse(ck)
  • Springboot之策略模式
  • HTTP 协议和 TCP/IP 协议之间有什么区别?
  • 【Effective C++】让自己习惯C++
  • 第十一章 请求响应
  • 【React】脚手架创建项目
  • 力扣70. 爬楼梯(动态规划 Java,C++解法)
  • Wpf 使用 Prism 实战开发Day13
  • 62 C++ 多线程 -- mutex互斥量只能使用一次的问题分析-----以及解决方案递归mutex:recursive_mutex。
  • Chrome Devtools 调试指南
  • 【Qt5】QString的成员函数chop
  • Spring中的注解
  • JavaScript 中的事件
  • hasattr、getattr、setattr
  • 构建高可用消息队列系统 01
  • 十本你不容错过的Docker入门到精通书籍推荐
  • 【AI接口】语音版、文心一言大模型和AI绘图、图片检测API
  • VUE 中的 v-for 和 v-if 是否可以共存
  • kubernetes 权限控制
  • vue中父组件异步传值,渲染问题
  • 09前后端分离+SSM整合的小案例
  • 模仿ProTable创建ProTable组件
  • 新品发布 | 多通道总线记录仪TLog1004,是你期待的吗?
  • Double数据类型保留3位小数
  • 08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)
  • 基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现
  • VUE---自定义指令
  • 开发安全之:Cross-Site Scripting (XSS) 漏洞
  • 代码随想录算法训练营第二十四天| 77. 组合