docker 安装mysql8.0.29

1、拉取镜像

#docker pull mysql:8.0.29

2、启动容器

#docker run -p 3306:3306 --name mysql8.0.29 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.29

-p 将本地主机的端口映射到docker容器端口(因为本机的3306端口已被其它版本占用,所以使用3307)

--name 容器名称命名

-e 配置信息,配置root密码

-d 镜像名称

注意:-d放在前面就启动不了mysql服务,容器可以起来,容器里面的mysql服务没起来。不知道为啥,知道的吱一声

 不需要做目录映射的直接到第3步

创建目录

#mkdir -p /data/mysql/{etc,data,logs}

拷贝配置文件

#docker cp mysql:/etc/mysql /data/mysql/etc/

删除容器

#docker stop mysql

#docker rm mysql

启动容器

注意:mysql8之后,初始化数据库之后不能修改大小敏感,如果要设置的话启动容器时就要设置,否者删除数据,重新初始化数据库

docker run -p 3306:3306 --name mysql --privileged=true -v /data/mysql/etc/mysql:/etc/mysql -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.29  --lower_case_table_names=1

-p 端口映射

--privileged=true 挂载文件权限设置

-v /data/mysql/etc/mysql:/etc/mysql 挂载配置文件

-v /data/mysql/logs:/logs \ 挂载日志

-v /data/mysql/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,

-v /etc/localtime:/etc/localtime 容器时间与宿主机同步

-e MYSQL_ROOT_PASSWORD=123456 设置密码

-d mysql:8.0.29 后台启动,mysql

 --lower_case_table_names=1                       1:大小写不敏感,默认0::区分大小写

 3、登录mysql容器

#docker exec -it mysql8.0 bash

4、登录容器中的mysql

#mysql -uroot -p

注意:-uroot 之间不能有空格,踩坑记录

 

使用navicat访问数据库

>use mysql;

>UPDATE user SET HOST = '%' WHERE USER ='root';

失败,查看user表

>select host,user,plugin from user;

root的host已经是%,跳过

 

>ALTER user 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;

>ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

>FLUSH PRIVILEGES;

 

 

 打开navicat,填写信息

 

 

 

posted @ 2022-05-11 16:26  leihongnu  阅读(1518)  评论(0编辑  收藏  举报