docker pull mysql:8.0.31 版本自己确定
创建mysql容器并运行
docker run --name mysql8 -v /home/docker/mysql/config:/etc/mysql/conf.d -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d --restart always mysql:8.0.31
解释一下:
docker run --name mysql 运行一个docker容器并取名为 mysql 这个名字你可以自己取
-v /home/docker/mysql/config:/etc/mysql/conf.d 将docker容器内的配置挂载到/home/docker/mysql/config,其中/etc/mysql/conf.d 为固定写法,/home/docker/mysql/config 为你想要挂载到的位置,可自定义
-v /home/docker/mysql/data:/var/lib/mysql 同2这是docker中mysql的数据
-e MYSQL_ROOT_PASSWORD=123456 设置数据库root账号的密码为123456,密码可以自定义
-p 3306:3306 将容器内的3306和系统上的3306映射,提供对外访问
-d: 以后台模式运行容器
--restart always: 设置容器自动重启,以便在系统重启后自动启动 MySQL 容器。
mysql:8.0.31 为你docker镜像的名称加版本
docker exec -it my-mysql mysql -uroot -p
密码是你设置的
开启远程连接
因为mysql8.0以上的不支持caching_sha_password加密方式需要改成caching_sha_password
进入mysql
show databases;
use mysql;
select host,user,plugin from user;
alter user 'root'@'%' identified with mysql_native_password by '123456';
分号前面单引号里面的内容就是新密码,可以设置自己想要的密码,也可以与原密码一样。
我的就用123456了
FLUSH PRIVILEGES;
刷新一下
再次用工具连接一下