在M1芯片的Macbook上使用docker-compose启动mysql,并利用 NaviCat Premium 客户端进行连接

在M1芯片的Macbook上使用docker-compose启动mysql,并利用 NaviCat Premium 客户端进行连接

1、查看芯片版本

  先打开控制台,使用 uname -m 来查看自己CPU芯片的架构

  yourPrj % uname -m

  arm64

  苹果的M系列芯片使用的是ARM64架构,因此,需要安装相应版本的一些列工具。

2、安装docker

        因为我是M1芯片,所以安装docker desktop时候,当然要安装Apple silicon版本,这样也可以下载支持ARM的mysql镜像了。

        顺便说一下,直接使用VSCode的插件功能安装docker desktop,会给安装成amd64版本,很奇怪。

        docker desktop下载主页:https://docs.docker.com/desktop/install/mac-install/

        Apple silicon版安装包下载地址: https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-arm64

        Intel chip版安装包下载地址: https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64

        M1也可以安装amd64版本的docker desktop,但是就不能安装arm的镜像了。

3、安装mysql

        登录hub.docker.com,搜索mysql,查看支持arm64的镜像。

发现只有mysql8及以上的版本才支持arm64。

         我手头只有NaviCat 11 premium 连接,不能使用最新的MySql8.0镜像,否则会报错说client版本过低。

        解决方法只有两个:

          A、docker desktop不安装Apple silicon版本,安装Intel chip的;然后就可以安装MySql 5.7,然后NaviCat 11 就可以用了;

          B、升级NaviCat版本。

        方案B显然比较容易,上Navi主页www.navicat.com上一看,好家伙,最新版 NaviCat 16 premium 买断价是11999,也可以1799月付。如果只买Mysql版本,个人用也需要1099。果然是土豪才能用的工具啊。以后再也不敢小看这个贵妇猫了。

 

        方案A的话虽然试过可以安装成功,但m1芯片安装amd的docker,再拉amd的mysql心里十分纠结。想想方案B换个路子,也许能更香。

        访问mac.mac89.com/mac/3447.html ,可以继续愉快的使用MySQL,且是最新的8了。

 

4、mysql8和5.7的区别(来自ChatGPT3.5)

MySQL 8 和 MySQL 5.7 是两个不同的版本,它们之间有一些显著的差异。

以下是它们之间的一些区别:

  1、数据字典:MySQL 8 中引入了数据字典,它是一个用于存储数据库对象信息的内部系统表,MySQL 5.7 中没有数据字典。

  2、角色管理:MySQL 8 引入了角色管理系统,可以创建、管理和分配角色,MySQL 5.7 中没有角色管理系统。

  3、加密功能:MySQL 8 中增强了加密功能,支持使用密钥管理系统(Keyring)加密数据和日志文件,MySQL 5.7 中没有这个功能。

  4、JSON 支持:MySQL 8 对 JSON 的支持更好,提供了更多的函数和操作符,MySQL 5.7 对 JSON 的支持相对较少。

  5、改进的性能:MySQL 8 对 InnoDB 存储引擎进行了改进,包括更快的索引和查询优化,比 MySQL 5.7 更高效。

总的来说,MySQL 8 比 MySQL 5.7 更加先进和高级,但是也需要更高的系统配置和更好的硬件支持来实现更好的性能表现。对于一些较为简单的项目或者要求较低的项目,MySQL 5.7 也可以胜任。

  -------------------------------------------------

5、如果拉取的是mysql5.7镜像,还需要进入容器修改权限,不然无法使用IP登录

  -------------------------------------------------

  进入容器,修改权限,不然无法使用IP登录

  py % docker exec -it mysqldb bash

  bash-4.2mysql -uroot -p

  Enter password: (此处要输入你启动docker时候设定好的密码)

  Welcome to the MySQL monitor.  Commands end with ; or \g.

  Your MySQL connection id is 18

  Server version: 5.7.41 MySQL Community Server (GPL)

 

  Copyright (c) 2000, 2023, Oracle and/or its affiliates.

 

  Oracle is a registered trademark of Oracle Corporation and/or its

  affiliates. Other names may be trademarks of their respective

  owners.

 

  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

  mysql> update mysql.user set Host = '%' where User = 'root';

  Query OK, 1 row affected (0.05 sec)

  Rows matched: 1  Changed: 1  Warnings: 0

 

  mysql> flush privileges;

  Query OK, 0 rows affected (0.02 sec)

 

  mysql>

6、成品docker-compose内容,亲测可用

# 名称:docker-compose.yml

# 说明:在M1芯片的Macbook上使用docker-compose启动mysql,并利用 NaviCat Premium 客户端进行连接

# 作者:讨厌夏天

# 邮箱: 4857819@qq.com

# 日期:2023.04.30



version: '3.9'

services:

  mysqldb:

    image: mysql:8.0.33

    platform: linux/arm64/v8

    container_name: mysqldb

    volumes:

      # 相对路径映射方法(左侧本地:右侧容器)

      - ./data/mysql:/var/lib/mysql

    restart: always

    ports:

      - "33080:3306"

    environment:

      MYSQL_ROOT_PASSWORD: Qwer!@#$

      MYSQL_DATABASE: mysqldb

      MYSQL_USER: mysql

      MYSQL_PASSWORD: Qwer!@#$

      TZ: Asia/Shanghai

完毕

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Docker Compose可以轻松地启动和停止多个容器,并且可以通过一个简单的配置文件来定义容器之间的关系和依赖关系。在引用中提到的docker-compose启动mysql,是指使用Docker Compose来启动一个MySQL数据库容器。通过配置docker-compose.yml文件,可以指定MySQL容器的镜像、端口、数据卷等信息。启动后,可以使用docker-compose ps命令查看容器状态,使用docker-compose stop命令停止容器使用docker-compose restart命令重启容器使用docker-compose down命令关闭容器并删除相关资源。除了使用Docker Compose,还可以使用其他方式来启动MySQL容器,如使用Helm启动MySQL高可用集群、使用Docker Compose启动单节点MySQL等。同时,Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Docker Compose可以轻松地启动和停止多个容器,并且可以通过一个简单的配置文件来定义容器之间的关系和依赖关系。在引用中提到的docker-compose启动mysql,是指使用Docker Compose来启动一个MySQL数据库容器。通过配置docker-compose.yml文件,可以指定MySQL容器的镜像、端口、数据卷等信息。启动后,可以使用docker-compose ps命令查看容器状态,使用docker-compose stop命令停止容器使用docker-compose restart命令重启容器使用docker-compose down命令关闭容器并删除相关资源。除了使用Docker Compose,还可以使用其他方式来启动MySQL容器,如使用Helm启动MySQL高可用集群、使用Docker Compose启动单节点MySQL等。同时,还可以使用web管理工具如phpMyAdmin来管理MySQL数据库。在测试和开发环境中,使用Docker Compose启动MySQL容器可以方便地进行开发和测试。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值