Docker安装MySQL并使用Navicat连接

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Docker安装MySQL并使用Navicat连接

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

1336199-20220912224155449-346546659.png

 

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


1336199-20220912224458373-740620849.png

拉取最新版本的MySQL镜像:

docker pull mysql:latest

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

1336199-20220912224805976-1673035520.png

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

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

docker images

1336199-20220912224917717-101269275.png

创建并运行一个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镜像,设置容器在在后台一直运行。

1336199-20220912230427858-971704032.png

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

docker ps

1336199-20220918120452822-1276733082.png

1、进入MySQL容器:

docker exec -it mysql-test /bin/bash

1336199-20220918120528311-2002572540.png

2、进入MySQL:

mysql -uroot -p
Enter password:root123456

1336199-20220918120603586-1935355365.png

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;

1336199-20220918173344404-1973222608.png

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

1336199-20220913225458847-942466253.png


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

1336199-20220918173645552-937200458.png

错误问题原因:

  这是因为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;

1336199-20220918175245746-293950069.png

Navicat连接MySQL测试:

1336199-20220918175326223-695278308.png

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
7天前
|
Linux 虚拟化 Docker
Windows12安装Docker
Windows12安装Docker
35 2
|
7天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
30 4
|
1天前
|
关系型数据库 MySQL 数据安全/隐私保护
安装mysql和远程连接
安装mysql和远程连接
8 0
|
1天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
13 2
|
1天前
|
运维 Linux 虚拟化
Docker详解(三)——Docker安装与部署
Docker详解(三)——Docker安装与部署
30 4
|
3天前
|
关系型数据库 MySQL 数据安全/隐私保护
使用Navicate连接Mysql过程详解
使用Navicate连接Mysql过程详解
13 0
|
3天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
13 0
|
3天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
6 0
|
4天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
18 0