码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker安装MySQL并使用Navicat连接


    思维导航

    • MySQL简单介绍
    • 查看可用的MySQL版本:
    • 拉取最新版本的MySQL镜像
    • 验证MySQL镜像是否成功拉取到本地:
    • 创建并运行一个MySQL容器
    • 验证MySQL容器是否创建并运行成功
    • MySQL开启远程访问权限
    • 服务器配置3306的开放端口
    • Navicat 连接 MySQL8 报错2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded:xxxx;
    • Navicat连接MySQL测试

    MySQL简单介绍:

      MySQL 是一个开放源码的关系数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的大中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。

    查看可用的MySQL版本:

    访问DokcerHub中的MySQL镜像库地址:https://hub.docker.com/_/mysql/tags

    可以通过 Sort by 查看其他版本的MySQL,查看最新版本MySQL镜像(mysql:latest):https://hub.docker.com/_/mysql/tags?page=1&name=latest

     

    此外,我们还可以用docker search mysql命令来查看可用版本: 

    拉取最新版本的MySQL镜像:

    docker pull mysql:latest

    注意:tag是可选的,tag表示标签,多为软件的版本,默认是latest版本(最新版)

    验证MySQL镜像是否成功拉取到本地:

    使用以下命令来查看mysql镜像是否成功拉取到本地:

    docker images

    创建并运行一个MySQL容器:

    docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql

    参数说明:

    • --name:指定了容器的名称,方便之后进入容器的命令行。
    • -itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行。
    • -p:指在本地生成一个随机端口,用来映射mysql的3306端口。
    • -e:设置环境变量。
    • MYSQL_ROOT_PASSWORD=root123456:指定了MySQL的root密码
    • -d mysql:指运行mysql镜像,设置容器在在后台一直运行。

    验证MySQL容器是否创建并运行成功:

    docker ps

    1、进入MySQL容器:

    docker exec -it mysql-test /bin/bash

    2、进入MySQL:

    mysql -uroot -p

    Enter password:root123456

    MySQL开启远程访问权限:

    1、切换数据库

    注意:默认应该就是这个,不切换也行,保险起见还是切换一下

    use mysql;

    2、给root用户分配远程访问权限

    GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

    参数说明:

    • GRANT:赋权命令
    • ALL PRIVILEGES:当前用户的所有权限
    • ON:介词
    • *.*:当前用户对所有数据库和表的相应操作权限
    • TO:介词
    • ‘root’@’%’:权限赋给root用户,所有ip都能连接
    • WITH GRANT OPTION:允许级联赋权

    3、强制刷新权限

    FLUSH PRIVILEGES;

    服务器配置3306的开放端口:

    Navicat 连接 MySQL8 报错:2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded:xxxx;

     

     

    错误问题原因:

      这是因为MySQL8之前密码加密规则为mysql_native_password,而 MySQL8 之后的加密规则为caching_sha2_password,也就是说,如果要用Navicat连接MySQL,其实只需要将密码规则改回 mysql_native_password 即可;

    解决方法:

    1.进入MySQL数据库

    docker exec -it mysql-test /bin/bash
    mysql -uroot -p
    Enter password:root123456

    2.选择数据库

    use mysql;

    3.更改密码加密方式

    IDENTIFIED BY ‘root123456’:连接时输入密码,密码为root123456

    ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER; 

    4.更新用户密码

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456'; 

    5.刷新权限

    FLUSH PRIVILEGES;

    Navicat连接MySQL测试:

     

  • 相关阅读:
    springboot之RestTemplate接口封装的示例分享
    Spring Cloud Alibaba(二)
    【问题解决】npm ERR! code EINTEGRITY
    微信商户平台转账到零钱功能接入实战
    Linux中常用的的API
    LeetCode-813. 最大平均值和的分组【动态规划,前缀和】
    23种设计模式之单例模式
    技术管理进阶——扎心了!老板问我:你们技术部和外包团队有什么区别?
    快进来看看!!!C语言——扫雷小游戏(递归展开无雷区)
    洗衣液行业调研:预计2028年将达到439亿美元
  • 原文地址:https://www.cnblogs.com/Can-daydayup/p/16653879.html
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号