docker部署MySQL

1、安装MySQL

以下安装可能会有Navicat (版本不兼容)连接不上问题:
建议直接跳到 3、指定版本安装。如果已经安装了也阔以走这一步
不用跳过也行,以下也有避免方法:

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
mysql //改为:mysql:5.7 就是指定版本安装

命令解读:

docker run :创建并运行-一个容器,-d是让容器在后台运行

--name 起名

-p 端口映射 前面是宿主机(此处可指 linux)端口 后者是容器端口

-e 设置环境变量
MYSQL_ROOT_PASSWORD=root  root用户密码为root

mysql 指定运行的镜像名字,
正常情况后面跟上版本号:没写默认最新版
mysql:5.7

在这里插入图片描述

1-1、可能遇到端口被占用

原因:你的 linux 中安装过mysql,产生了冲突,解决办法就是修改上述命令的端口

docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
mysql

2、Navicat for MySQL 访问 docker 的 MySQL

2-1、连接

在这里插入图片描述

2-2、可能遇到的错误

原因可能是版本不兼容之内的–》多半应该是docker安装mysql版本过高
在这里插入图片描述

2-2-1、如何判断是不是以上原因

在这里插入图片描述

2-2-2、解决思路

1、Navicat for MySQL 更新,使其能够兼容
2、docker 删除 mysql 安装指定的低版本使其兼容
3、不做任何处理,直接用mysql语句(舍弃界面)
4、进入docker的MySQL修改插件,如果你在 2-2-1 没报错说明你成功了,再尝试Navicat 连接
5、下载指定版本,换一个端口号

3、指定版本安装

3-1、命令

1)安装MySQL

docker pull mysql:5.7	

2)运行MySQL镜像

docker run  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql镜像ID

-p 后面的端口是本机端口,映射到docker中MySQL的3306端口,后面设置了root密码

-d 是后台运行

3)查看容器ID

docker ps

4)上传数据库脚本到Linux,然后将脚本复制到docker的root目录中

docker cp bookdb.sql 21db7dd6618e:\root

5)进入docker容器

docker exec -it  21db7dd6618e bash

6)进入MySQL

mysql -uroot -p123456

7)设置编码、创建数据库

set names utf8;
create database bookdb;
use bookdb;

8)导入sql脚本

source /root/bookdb.sql;

9)修改远程访问权限:

select host,user,plugin,authentication_string from mysql.user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
  1. 退出mysql和docker
exit

3-2、步骤图

在这里插入图片描述
如果不是mysql_native_password

修改远程访问权限插件:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';  //注意这里改为root 
flush privileges;

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值