Mac 通过Navicat访问Ubuntu虚拟机上的MySQL数据库

Ubuntu基于docker安装MySQL数据库

通过docker容器技术安装mysql数据库:

docker安装

第一种方法从Ubuntu的仓库直接下载安装:
安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装。

$ sudo apt install docker.io
$ sudo systemctl start docker
$ sudo systemctl enable docker

查看是否安装成功

$ docker -v
Docker version 18.09.7, build 2d0083d

第二种方法从Docker仓库下载安装:
1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update

2.安装需要的包

sudo apt install apt-transport-https ca-certificates software-properties-common curl

3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"

4.添加成功后更新软件包缓存

sudo apt update

5.安装 Docker-ce

sudo apt install docker-ce

6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)

sudo systemctl enable docker
sudo systemctl start docker

7.测试运行

sudo docker run hello-world

8.添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)

sudo groupadd docker
sudo usermod -aG docker $USER

9.测试添加用户组(可选)

docker run hello-world

解决docker使用过程中Get Permission Denied问题

解决方法1
使用sudo获取管理员权限,运行docker命令

解决方法2
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用## 新的改变

docker安装MySQL

1.首先下载安装mysql镜像

docker pull mysql

2.用 docker images指令 查看docker镜像是否已下载mysql
在这里插入图片描述
3.使用docker ps -a 指令查看所有的容器
在这里插入图片描述
4.创建mysql容器,并启动

docker run --name meeting-manage -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql

备注 :–name 服务启动别名设置 -p端口映射 宿主机端口:镜像运行端口 -d 镜像名:tag 使用守护进程模式启动 -e:设置root帐号密码

5.用docker ps 指令查看启动的docker容器
在这里插入图片描述
备注:后期启动电脑后,用docker ps指令会查询不到启动的容器,可以先用docker ps -a 查看是否已创建容器,如果已存在,则通过以下指令启动/停止mysql容器

docker start meeting-manage #启动名为meeting-manage的容器
docker stop meeting-manage #停止名为meeting-manage的容器

如果docker中存在不需要的容器信息,可以通过以下指令进行删除容器

docker rm meeting-manage #删除名为meeting-manage的容器

docker操作MySQL

1.进入镜像 运行mysql

#docker exec -it mysql8.0 /bin/bash

备注:exec docker进入容器命令
-it 容器中服务别名
/bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式
进入容器中如图所示变化如下
在这里插入图片描述
2.进入系统预装的可执行程序文件夹下

cd /usr/bin

在这里插入图片描述
3.进入MySQL

mysql -u root -p

备注:mysql命令,mysql -h主机地址 -u用户名 -p密码
在这里插入图片描述

Mac访问虚拟机上的MySQL数据库

Mac设定(ParallelsDesktop15)

parallels端口映射设定,Mac的3306端口映射到Ubuntu虚拟机上的3308端口,
Ubuntu的docker容器对外映射的端口是3308端口
在这里插入图片描述

Navicat访问数据及问题解决

直接添加本地地址和端口信息就可以
在这里插入图片描述
备注:连接数据库时报错2059错误,发生此错误的原因是从mysql5.7版本之后,默认采用了caching_sha2_password验证方式。需要改成mysql_native_password验证方式
在这里插入图片描述
修改方法如下:
1.进入到mysql数据库内
在这里插入图片描述
2.查看当前root用户对应的插件

SELECT `user`, `host`, `authentication_string`, `plugin` FROM mysql.user;

在这里插入图片描述
3.修改root账号的密码验证插件类型为mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下host为localhost对应root用户的密码 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下host为%对应的root用户的密码 
FLUSH PRIVILEGES; #刷新权限 

4.查看修改后的结果

SELECT `user`, `host`, `authentication_string`, `plugin` FROM mysql.user;

在这里插入图片描述
连接成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值