iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Docker安装 Mysql 8.x 版本
  • 766
分享到

Docker安装 Mysql 8.x 版本

dockermysql 2023-09-03 12:09:06 766人浏览 独家记忆
摘要

文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 mysql

文章目录

Mysql 5.x 版本与 mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本

Docker安装 Mysql 8.0.22

# 下载mysql$ docker pull mysql              默认安装最新版本的mysql(注意可能不是稳定版本)$ docker pull mysql:版本号        安装指定版本的mysql                    ## 此处以安装mysql8.0.22为例,命令为:$ docker pull mysql:8.0.22# 创建mysql日志目录、数据目录、配置目录mkdir -p /mydata/mysql/log /mydata/mysql/data  /mydata/mysql/conf# 增加mysql配置(docker外部挂载的mysql配置文件)$ vi /mydata/mysql/conf/my.cnf       # 添加配置文件 my.inf ,每个版本大版本的mysql,配置可能有区别,下面是示例。# MYSQL常用配置[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]user=mysql#默认3306端口,这里改了默认端口port=3308default_authentication_plugin=mysql_native_passWordsecure_file_priv=/var/lib/mysqlexpire_logs_days=7sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONmax_connections=1000init-connect='SET collation_connection = utf8_unicode_ci'init-connect='SET NAMES utf8'default-time_zone = '+8:00'character-set-server=utf8collation-server=utf8_unicode_ci#collation-server=utf8_general_ciskip-character-set-client-handshakeskip-name-resolve# 启动mysql容器,如果没有则自动下载 mysql:8.0.22 镜像 $ docker run -p 3308:3308 --name mysql \--privileged=true \--restart=always \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:8.0.22# 参数解释-p 3308:3308 --name mysql \# 将容器内部3308端口映射到外部主机3308端口--privileged=true \   # 在容器内启用特权模式,以便于执行一些特殊操作--restart=always \# 如果容器停止运行,自动重新启动容器。-v /mydata/mysql/log:/var/log/mysql \# 将宿主机的 /mydata/mysql/data 目录挂载到容器的 /var/lib/mysql 目录,用于存储 MySQL 数据。-v /mydata/mysql/data:/var/lib/mysql \# 将宿主机的 /mydata/mysql/conf 目录挂载到容器的 /etc/mysql 目录,用于存储 MySQL 配置文件。-v /mydata/mysql/conf:/etc/mysql \# 设置 MySQL 的 root 用户的密码为 “root”。你可以根据需要修改为其他密码。-e MYSQL_ROOT_PASSWORD=root \-d mysql:8.0.22# 使用名为 “mysql:8.0.22” 的 Docker 镜像来后台运行容器。  # [可选]滚动查看容器日志$ docker logs -f -t --tail=20 mysql # [可选]重启docker内部的mysql容器,使新增的配置生效。$ docker restart mysql# [可选]设置Docker容器启动,自动启动mysql$ sudo docker update mysql --restart=always# [可选]修改时区 (服务重启后失效。需要修改配置)show variables like '%time_zone%';set global time_zone='+8:00';set time_zone = '+8:00'; flush privileges;

Mysql 创建账号并授权

MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作

方式一:通过 数据库工具 连接 root账号,创建 子账号

方式二:通过命令直接创建子账号并授权

可以任选其一

# 进入mysql 容器内部$ docker exec -it mysql /bin/bash# 本地无密码登录root $ mysql -u root --port=3308 -pshow databases; # 显示所有数据库use mysql;    # 使用 mysql数据库select host, user, authentication_string, plugin from user;   # 查询mysql账号# 方式一:通过 数据库工具 连接 root账号,创建 子账号# 修改root账号可以远程连接update user set host = '%' where user = 'root';flush privileges;# 通过 数据库工具 连接 root账号,创建 子账号,略# 创建子账号后,修改root账号只能本地连接update user set host = 'localhost' where user = 'root';flush privileges;#方式二:通过ssh连接数据库,通过命令创建子账号# 进入mysql 容器内部```shell# 进入mysql 容器内部$ docker exec -it mysql /bin/bash# 本地无密码登录root $ mysql -u root --port=3308 -pshow databases; # 显示所有数据库use mysql;    # 使用 mysql数据库select host, user, authentication_string, plugin from user;   # 查询mysql账号# 方式一:通过 数据库工具 连接 root账号,创建 子账号# 修改root账号可以远程连接update user set host = '%' where user = 'root';flush privileges;# 通过 数据库工具 连接 root账号,创建 子账号,【略】# 创建子账号后,修改root账号只能本地连接update user set host = 'localhost' where user = 'root';flush privileges;#方式二:通过ssh连接数据库,通过命令创建子账号# 进入mysql 容器内部$ docker exec -it mysql /bin/bash# 本地无密码登录root $ mysql -u root --port=3308 -pshow databases; # 显示所有数据库use mysql;    # 使用 mysql数据库select host, user, authentication_string, plugin from user;   # 查询mysql账号###### 示例1 :创建只读权限的账户,仅能连接"demo"数据库,#######create user 'demo_only_read'@'%' identified by 'onlyRead@demo'; grant all privileges on demo.* to 'demo_only_read'@'%'   with grant option; # 修改密码加密方式(Mysql 8.x的加密方式与Mysql 5.x的加密方式有很大不同,Mysql8.x新的加密方式,部分数据库可视化工具不支持导致连接不上,这里将 Mysql 8.x的加密方式改为 Mysql 5.x的加密方式)alter user 'demo_only_read'@'%' identified with mysql_native_password by 'onlyRead@demo';# 刷新配置使新配置生效flush privileges;###### 示例2 :创建 demo 完全权限,仅能操作"demo"数据库,不可操作其他数据库 的账号 ###### create user 'demo'@'%' identified by 'read_write@demo'; grant all privileges on demo.* to 'demo'@'%'   with grant option; alter user 'demo'@'%' identified with mysql_native_password by 'read_write@demo';flush privileges;# 登录 demo 账号验证$ mysql -u demo --port=3308 -p 

Mysql 数据迁移

同版本数据迁移

重要:同版本之间可以直接拷贝 data数据文件夹。但跨版本直接拷贝可能会版本冲突,导致数据库数据不可见。

由于是低版本5.x 升级为 8.0.x 因此不能使用数据文件直接拷贝的方式

# 查找本机mysql 文件目录$ find / -name mysql# 或者登录msyql后,执行如下sql查看data数据目录:$ show variables like 'datadir';# 两个服务器之间传输文件  $ scp  -r /var/lib/mysql/  root@IP:/home/xxx/

跨版本数据迁移

  1. 先利用数据库工具,如: DBeaver 先导出数据库表结构 DLL 的sql语句,然后执行;
  2. 将所有表数据通过 DBeaver 导出 。 (如果没有第一步,直接第二步,会丢失数据库索表备注,索引和约束等信息)
    • 选中要导出的表,右键—》导出数据
    • 选择,从A库拷贝到 B库,由于上一步已提前执行了DDL,这一步是导入每个表的表数据
    • [可选]如果你导出的数据很大,则需要调整DBeaver可支配的运行内存,尽量调大,否则会内存溢出而中断。找到DBeaver安装目录,打开dbeaver.ini文件,添加 JVM参数-Xms512m -Xmx3072m 。保存,重启DBeaver。

导出数据

来源地址:https://blog.csdn.net/qq_26820793/article/details/131997717

您可能感兴趣的文档:

--结束END--

本文标题: Docker安装 Mysql 8.x 版本

本文链接: https://www.lsjlt.com/news/392201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker安装 Mysql 8.x 版本
    文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql...
    99+
    2023-09-03
    docker mysql
  • Centos环境 使用docker 部署MySQL 8.X详细版本
    文章目录 安装docker配置docker 阿里镜像加速阿里云容器镜像服务ACR配置镜像源 安装部署MySQL拉取MySQL镜像创建挂载文件测试部署部署MySQL进入容器将它的mysql配...
    99+
    2023-09-04
    docker centos mysql
  • Docker中安装MySQL 8
    前言 上一期在Windows中安装好了Docker环境,这一期在Docker中完成MySQL 8安装和配置。 启动Docker Desktop后在cmd窗口中输入docker -v即可查看到安装的do...
    99+
    2023-08-31
    docker mysql 容器
  • CentOS7下源码安装MySQL 8.x
    会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧。 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存不足的...
    99+
    2022-10-18
  • CentOS7.x安装php7.x或php.8.x
    CentOS 7.x默认安装的是PHP 5.x系列版本,想升级可以按照以下步骤,以PHP7.4为例: 移除旧版PHP: yum -y remove php* 添加EPEL (Extra Packa...
    99+
    2023-09-06
    php apache 开发语言
  • Windows怎么安装MySQL8.0.x 版本
    今天小编给大家分享一下Windows怎么安装MySQL8.0.x 版本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • Windows安装MySQL8.0.x版本教程
    目录一、下载二、安装1 解压2 配置环境变量右击此电脑选择属性双击系统环境变量的Path3 配置my.ini4 命令行启动mysqlWIN+R 输入cmd 进入window命令行cd...
    99+
    2022-11-13
  • 怎么在Windows环境中安装 MySQL 8.X
    本篇文章给大家分享的是有关怎么在Windows环境中安装 MySQL 8.X ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。下载MySQL进入...
    99+
    2022-10-18
  • Python环境版本中怎么安装3.X版本
    本篇内容介绍了“Python环境版本中怎么安装3.X版本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python环境版本在与日俱增的发展进...
    99+
    2023-06-17
  • 在 macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive
    因个人能力有限,文章难免存在错误,望斧正,感谢。 版本: macOS 11.3 Intel版本 MySQL 8.0.24 Compressed TAR Archive 一、准备所需文件 前往 https://dev.mysql.co...
    99+
    2021-01-21
    macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive
  • (8版本)mysql数据库安装教程(自用保存)
    博主简介:想进大厂的打工人博主主页:@xyk:所属专栏: mysql 参考csdn大神们的文章, 总结出来的详细用法~~~  目录 文章目录 一、下载MySQL8.0.33 二、配置初始化文件my.ini(重点) 三、初始化...
    99+
    2023-09-03
    mysql 数据库
  • CentOS 8如何安装docker
    这篇文章主要为大家展示了“CentOS 8如何安装docker”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS 8如何安装docker”这篇文章吧。centos8安装docker官方文...
    99+
    2023-06-25
  • MySQL 8.1版本安装
    主要参考:MySQL详细安装教程,关于msi版和zip版详解,Windows - 知乎 (zhihu.com) 1. MySQL 下载 进入MySQL官方下载:MySQL :: Download My...
    99+
    2023-09-02
    mysql adb 数据库
  • 为Centos安装指定版本的Docker
    安装 Docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。 Docker CE 即社区免费版,Do...
    99+
    2022-11-13
  • Linux安装MySQL-MariaDB版本
    分享一个安装相比MySQL5.7版本更加简便,更加快速的版本:MariaDB。实验开始前先关闭防火墙:service firewalld stopsetenforce 0之后配置ALI云源:wget -O ...
    99+
    2022-10-18
  • docker安装ElasticSearch6.x实例分析
    今天小编给大家分享一下docker安装ElasticSearch6.x实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-05
  • 如何快速安装MySQL5 - 8各版本脚本内容
    这篇文章将为大家详细讲解有关如何快速安装MySQL5 - 8各版本脚本内容,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL 5.5.62#如果之前有...
    99+
    2022-10-18
  • MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】
    MySQL8.0.x 安装 一、下载 MySQL官网下载链接:https://downloads.mysql.com/archives/community/ 选择版本后下载zip文件 博主选择的是8.0.13 二、安装 1 解压 把下载...
    99+
    2015-04-02
    MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】
  • Linux下安装配置MongoDB 3.0.x 版本数据库
    说明:操作系统:CentOS 6.X 64位IP地址:192.168.1.111实现目的:安装配置MongoDB数据库具体操作:一、关闭SElinux、配置防火墙1、vi /etc/selinux/conf...
    99+
    2022-10-18
  • MySQL基础:8.0版本安装
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relati...
    99+
    2021-10-14
    MySQL基础:8.0版本安装
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作