Docker安装MySQL

164 阅读3分钟

背景

  • SystemOS:MacOS 12.3
  • 芯片:M1 Pro
  • 安装方式:Docker
  • 安装版本:5.7

安装步骤

  1. 镜像安装

    # 拉取官方镜像(版本自行设置,本教材已5.7为例)
    docker pull mysql:5.7
    # 针对M1芯片的Mac系统 需要使用以下指令,且安装容器指令最后一行需要随之修改镜像名称(版本自行设置,本教材已5.7为例)
    docker pull mysql/mysql-server:5.7
    
    # 查看是否拉取成功
    docker images
    
  2. 创建容器

    • 无需挂载目录

      # 创建MySQL容器
      docker run --name mysql -p 3306:3306  \
      -e MYSQL_ROOT_PASSWORD=123456 \
      -d mysql:5.7
      

      参数说明

      • –name:容器名

      • -e:配置信息,此处配置mysql的root用户的登陆密码

      • -p:端口映射,此处映射 主机3306端口 到 容器的3306端口

      • -d:后台运行容器,保证在退出终端后容器继续运行

    • 配置挂载目录

      1. 创建挂载目录(此路径根据个人喜好选择)

        # 切记不要提前创建好data目录,会导致MySQl初始化失败
        mkdir -p ~/dev/docker/mysql/conf
        
        # 赋予挂载目录权限(只要是创建需要挂载目录的镜像,就应该进行权限授予)
        chmod -R 777 ~/dev/docker/mysql
        
      2. 准备配置文件

      重要的事情说三遍

      必须提前上传my.cnf文件到/zking/mysql/conf目录,并且它与window中的配置文件my.ini后缀名是不一样

      必须提前上传my.cnf文件到/zking/mysql/conf目录,并且它与window中的配置文件my.ini后缀名是不一样

      必须提前上传my.cnf文件到/zking/mysql/conf目录,并且它与window中的配置文件my.ini后缀名是不一样

      cd ~/dev/docker/mysql/conf
      touch my.cnf
      
      # 修改权限为只有root用户可以读可写配置文件
      chmod 644 ~/dev/docker/mysql/conf/my.cnf  
      
      # 如果是Mac,可以直接使用open打开文本,如果是Linux,可以选择vi或vim指令编辑
      open my.cnf
      
      # 复制切割线之间的内容后保存(可自行修改,包括注释)
      [client]     
      port=3306   
      default-character-set=utf8
      [mysql]   
      default-character-set=utf8
      [mysqld]
      character_set_server=utf8
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      # 配置大小写不敏感
      lower_case_table_names=1
      

      参数说明

      -v: 主机和容器的目录映射关系,":"前为主机目录,之后为容器目录

    1. 创建容器

      docker run -p 3306:3306 --name mysql \
      -v ~/dev/docker/mysql/conf:/etc/mysql \
      -v ~/dev/docker/mysql/logs:/var/log/mysql \
      -v ~/dev/docker/mysql/data:/var/lib/mysql \
      -e MYSQL_ROOT_PASSWORD=123456 \
      --restart=always \
      -d mysql/mysql-server:5.7
      
  3. 授权

    安装完成容器后,本地电脑暂时是无权限去连接MySQL的,所以需要调整权限

    1. 进入MySQl容器

      docker exec -it mysql bash
      # PS:如果使用的是Docker客户端,可以直接在客户端中点击进入
      
    2. 登录MySQL

      # 123456是创建MySQl容器时设置的密码,根据实际情况填写
      mysql -uroot -p123456 
      
    3. 修改权限(登录成功后)

      # 注意以下每一条指令最后都要接“;”,否则MySQL为认为你的指令还没输完
      # 选择mysql库
      USE mysql;
      # 修改root用户访问权限为所有地址
      UPDATE USER SET host = '%' WHERE USER = 'root';
      # 刷新权限
      flush privileges;
      # 退出MySQL
      exit
      # 退出容器
      exit
      
  4. 验证

    使用链接工具尝试连接