使用docker-compose配置mysql数据库并且配置用户密码

下面要求环境:一定要安装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-compose配置mysql数据库并且配置用户密码_第1张图片

你可能感兴趣的:(docker)