在docker中安装和部署MySQL
1. 拉取MySQL镜像
bash
# 指定版本
docker pull mysql:8.0.36
# 最新版本
docker pull mysql:latest
2. 运行MySQL容器
bash
docker run \
-d \
--name mysql-8.0.36 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0.36
3. 在docker容器中设置MySQL远程连接
3.1 进入MySQL容器
bash
docker exec -it mysql-8.0.36 bash
# 登录MySQL
mysql -uroot -proot
3.2 进入MySQL库
bash
use mysql;
3.3 在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
bash
select host, user, authentication_string, plugin from user;
3.4 再执行授权语句:
bash
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
GRANT ALL ON *.* TO 'root'@'%';
3.5 执行以上语句之后再执行:
bash
flush privileges;
4. 使用Navicat连接MySQL报2059错误
解决方法
4.1 进入MySQL容器
bash
docker exec -it mysql-8.0.36 bash
4.2 进入MySQL库
bash
mysql -uroot -proot
4.3 修改加密规则
bash
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
4.4 更新root用户密码
bash
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
4.5 刷新权限
bash
FLUSH PRIVILEGES;
OK,设置完成,再次使用 Navicat 连接数据库,oh yeah~