Docker基本命令及获取mysql镜像请参考:Docker 入门教程_xiaolyuh123的博客-CSDN博客
启动mysql实例
docker run --name some-mysql -p 33261:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag --lower_case_table_names=1
- some-mysql: 容器别名
- -e MYSQL_ROOT_PASSWORD=123456:初始化设置的root用户的密码为123456
- --lower_case_table_names=1:启动时就指定大小写不敏感
- tag:mysql的版本,不写默认使用最新版
- -p 33261:3306:表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为33261(第一个)
- -d:表示detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作;
docker run -d -p [本机端口]:[docker服务器端口] --name container-name image-name
--name参数:是为容器取得名称;
-d:表示detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作;
image-name:是要使用哪个镜像来运行容器。
-p:端口映射
本机端口,即对外暴露的端口
docker服务器端口, 各各应用占用的端口,比如redis占用6379
停止已启动的容器
docker stop container-name
启动已停止的容器
#不要再docker run,否则报错:The container name "/mysql8" is already in use by container
docker start container-name
解决Mysql8密码验证方式
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。
客户端不支持新的加密方式。
先登录Mysql
mysql->输入
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;