Docker-安装Mysql 8.0设置字符集并使用第三方工具登录Navicat

一、概述

  1. windows环境下使用Docker安装mysql 8.0
  2. 设置字符集为utf8
  3. 开放第三方工具登录端口(如:Navicat)
  4. 以及开发过程中涉及的知识点

二、步骤

  1. 拉取mysql镜像

    docker pull mysql
    
  2. 查看所有镜像

    docker images
    
  3. 创建mysql容器(docker run 参数详往下翻)

    docker run -d -i --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mysql
    
  4. 进入mysql容器中

    docker exec -it mysql bash
    
  5. 连接mysql (这里的登录密码是步骤3设置的密码password)

    mysql -u root -p
    

    在这里插入图片描述

  6. 查看字符集

    show variables like'character%';
    

    在这里插入图片描述

  7. 设置字符集(退出mysql [exit])

    cd /etc/mysql
    vim my.cnf
    报错bash: vim: command not found请执行以下命令安装vim
    apt-get update 
    apt-get install -y vim
    
  8. 在my.cnf文件中添加下面代码

    [client]
    default-character-set=utf8
     
    [mysql]
    default-character-set=utf8
     
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    

    在这里插入图片描述

  9. 保存文件,重启msql

    :wq 保存文件
    exit 退出容器
    docker restart mysql 重启mysql(如果重启有问题往下翻)
    
  10. 查看字符集

    docker exec -it mysql bash重新进入容器
    mysql -uroot -p 重新链接数据库
    show variables like'character%'; 查看字符集
    

    在这里插入图片描述

三、涉及知识点

  1. docker run 参数详解

    docker run -d -i --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mysql
    -i:表示运行容器
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    --name :为创建的容器命名。
    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
    创建守护式容器
    -p 3307:3306  第一个是映射出去的端口号  第二个是mysql自己的端口号
    -e 代表初始化一个mysql用户   password = 填密码
    
  2. 安装vim

    apt-get update   
    apt-get install -y vim
    
  3. 查看错误日志

    docker logs mysql
    
  4. 重启有问题,很大一部分原因mysql配置文件写错了

     mysql容器没有启动无法直接修改my.cnf文件,可以使用方法如下
     docker cp mysql:/etc/mysql/my.cnf d:/my.cnf 将mysql容器里面的my.cnf复制到D盘中进行修改
     
     修改完成后执行
     docker cp d:/my.cnf mysql:/etc/mysql/my.cnf
    
     重新启动
     docker start mysql
    
  5. 使用第三方工具Navicat登录

    mysql -uroot -p
    grant all on *.* to 'root'@'%' ; //允许第三方工具登录
    alter user 'root'@'%' identified with mysql_native_password by 'password'; 第三方工具不支持,Mysql8新增加的加密方式caching_sha2_password
    flush privileges;
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎玩儿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值