下面要求环境:一定要安装docker-ce和docker-compose才能进行下面步骤
linux找到你要放mysql的目录 创建一个docker-compose.yml
以下配置了外部数据卷、外部配置文件、外部初始化文件(文件名必须以.sh或者.sql结尾)
这样配置之后,数据库本地直接连接得上去,而且使用的是你配置的账号密码。
version: '3'
services:
db:
image: 'mysql/mysql-server:5.7'
restart: always
container_name: mysql
volumes:
- /u01/data:/var/lib/mysql
- ./mysql/config/my.cnf:/etc/my.cnf
- ./mysql/init:/docker-entrypoint-initdb.d/
ports:
- '3306:3306'
volumes:
data:
driver: local
#/u01/data可以改成你需要存放mysql的目录
然后在本目录创建/mysql/config/my.cnf
填写数据库的格式utf-8
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后在创建你要在容器mysql你要创建的用户和密码,然后授予所有权限,创建这个文件/mysql/init/init.sql
CREATE USER 'luna'@'%' IDENTIFIED BY 'pwdluna';
GRANT All privileges ON *.* TO 'luna'@'%';
#luna是用户,pwdluna是密码
第二步是授权,一定要和你创建的用户相对应,给他所有权限
最后一步:创建
docker-compose up -d
在后台执行,创建容器mysql
然后我们进入数据库
docker ps
查看容器mysql的id,我这里的id是2e067484c148
进入docker exec -it 2e067484c148 /bin/bash
然后进入数据库
mysql -uphoebus -p123456
这里是你/mysql/init/init.sql设置的用户和密码
然后你会发现你的数据库连接上了
使用第三方连接使用你暴露的ip和端口号连接

本文详细介绍了如何使用Docker和docker-compose在Linux环境下部署MySQL数据库。通过配置docker-compose.yml文件,实现外部数据卷、配置文件及初始化脚本的挂载,确保数据库能够使用自定义的账号密码,并支持本地直连。同时,文章提供了创建用户、授予权限的具体步骤,以及通过docker-compose启动容器的方法。
2192

被折叠的 条评论
为什么被折叠?



