Docker安装mysql 8

我装的是mysql 8.0.28,装其他版本,改名命令后面的版本即可

docker拉取镜像

sudo docker pull mysql:8.0.28

启动容器, /mydata目录是我提前在服务器上创建的文件夹

-p 指定在容器内部的端口 以及对外暴露的端口,冒号前面的是宿主机的端口,后面的是容器的端口,如果是3307:3306则代表把宿主机的3307端口映射给容器的3306,对外访问连接时则需要通过3307才能连接到容器的mysql

--name 设置服务器名称

--restart 是否运行跟随docker一起启动

--network 容器之间内部通信网络,默认就是bridge,可以不写此命令

-v 挂载命令 将容器中的配置挂载在外部来方便修改,其中有一些mysql的配置文件挂载,数据文件夹等

-d 指定版本

-e 修改配置

-e 指定root的密码为Abc?123456, 可根据自己需求更改为其他

docker run -p 3306:3306 --name mysql --restart=always --network bridge -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=Abc?123456 -d mysql:8.0.28

查看容器是否启动正常, docker ps -a执行后看到下图所示,则代表启动成功,如果图片中STATUS为Exited或者一直Restarting,则需要寻找原因,可使用docker logs 

docker ps -a


修改配置文件,由于启动容器加了挂载配置文件到宿主机 -v /mydata/mysql/conf:/etc/mysql/conf.d, 所以我们可以直接在宿主机/mydata/mysql/conf对mysql配置文件进行处理,会同步到docker容器里,我们打开mysql.cnf文件进行配置增加,如果该文件存在则编辑,不存在则新增,都是会同步到容器中

cd /mydata/mysql/conf

sudo vi mysql.cnf


我增加如图片中部分配置,大家可以根据实际需求进行添加

保存配置文件后,重启mysql即可

docker restart mysql

接下来就跟平时装mysql一样,创建一个支持远程访问的账号等,首先进入容器内部,进入后,我们看到就跟正常linux服务器一样的构造

docker exec -it mysql /bin/bash

进入容器后,我们再进入mysql,然后执行mysql -uroot -p,再输入设置的密码即可

mysql -uroot -p

创建一个user的账号,  xxxxxxxx为密码

create user 'user'@'%'identified by 'xxxxxxxx';

grant all privileges on *.* to 'user'@'%' with grant option;

更改加密方式,可提供可视化工具链接

alter user 'user'@'%' identified with mysql_native_password;

alter user 'user'@'%' identified by 'xxxxxxxxx' password expire never;

刷新

flush privileges;

退出mysql后,再退出容器,重启mysql

Ctrl + d

exit

docker restart mysql

此时应该是可以使用远程可视化工具连接mysql了,如果还是连接错误,查看防火墙是否开启mysql的默认端口3306,防火墙 firewalld 规则请自行百度,若本教程有错误地方,请指正,谢谢!好了,看完了,赶紧跟着教程动起来吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容