Docker 安装 MySQL 并通过 Navicat 连接 MySQL 的步骤简单易懂
首先得安装好docker,网上教程很多,可自行搜索,建议版本不能太低,容易出问题。
1 拉取MySQL镜像
docker pull mysql:5.7.5
注意:因为mysql8使用的是caching_sha2_password加密方式,而mysql8之前使用的加密方式是“mysql_native_passowrd",后续可能会报错/出问题。
如果不想这么麻烦就安装mysql8版本以下。
拉取镜像可能得等个小半分钟
2 创建 MySQL 容器
docker run -d \
--name my-mysql-container \
-e MYSQL_ROOT_PASSWORD=my-secret \
-p 3306:3306 \
-v /my/host/path/datadir:/var/lib/mysql \
mysql:5.7.5
#my-secret改为要设置的密码
#/my/host/path/datadir改为你主机实际的目录
第五行 -v /my/host/path/datadir:/var/lib/mysql \ : -v 是为了数据持久化;这里麻烦这里可不选
3 检查是否创建成功
docker ps
查看是否成功创建容器,没显示mysql容器名就是没成功
ss -tunlp | grep 3306
netstat -tunlp | grep 3306
#两条命令均可
查看是否成功监听端口,没显示就是没成功
4 进入Mysql并修改配置及权限
docker exec -it b8b2222fd0fe2d bash
#容器idb8b2222fd0fe2d要换成自己容器的id
mysql -uroot -p
#输入密码
输入以下三条命令来开启root远程权限:
use mysql;
#1 切换数据库
GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
#2 给root用户分配远程访问权限
FLUSH PRIVILEGES;
#3 强制刷新权限
5 打开navicat新建连接
主机改为虚拟机的ip,不知道的可以 ip a 查看;端口3306;root用户以及密码
最后,连接成功。
注:Mysql8版本连接要麻烦点,要原因是因为mysql8使用的是caching_sha2_password加密方式,而mysql8之前使用的加密方式是“mysql_native_passowrd",
修改密码方式:
连接进入mysql后执行如下语句:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root123';
这句话意思是:修改加密方式为mysql_native_password并将数据库密码改为“root123”