Docker安装Mysql(docker-compose.yml)

 

前置条件

请先安装Docker 

 

创建docker-compose.yml文件

version: '2'
services:
  db:
    image: 'mysql/mysql-server:5.7'
    restart: always
    container_name: mysql57
    environment:
      MYSQL_USER: yunwisdom
      MYSQL_PASSWORD: password123
      MYSQL_DATABASE: database
      MYSQL_ROOT_PASSWORD: password123
    ports:
      - '3337:3306'

将以上文件保存为docker-compose.yml文件

 

其他配置文件:

version: '3'
services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M;
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql

 

启动docker-compose脚本

docker-compose up

启动docker-compose(后台模式-不打印日志)
docker-compose up -d

启动日志

C:\Workspace\Docker\MySQL>docker logs bac
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Initializing database
[Entrypoint] Database initialized
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
[Entrypoint] ignoring /docker-entrypoint-initdb.d/*
[Entrypoint] Server shut down
[Entrypoint] MySQL init process done. Ready for start up.
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11
[Entrypoint] MySQL Docker Image 5.7.26-1.1.11
[Entrypoint] Starting MySQL 5.7.26-1.1.11

 

进入容器创建用户

#########Docker命令查看对应MySQL容器的ContainerID/Image等信息#########
C:\Workspace\Docker\MySQL>docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                       PORTS                               NAMES
bac300781058        mysql/mysql-server:5.7   "/entrypoint.sh mysql"   2 days ago          Up About an hour (healthy)   33060/tcp, 0.0.0.0:3337->3306/tcp   mysql57


#########################通过Docker容器进入MySQL##############
C:\Workspace\Docker\MySQL>docker exec -it bac300781058 bash


#########################登陆Mysql并新建用户#######################
bash-4.2# mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 123
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


#########################创建用户并分配权限#######################
mysql> create user 'admin001'@'%' identified by 'password123';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'admin001'@'%' identified by 'password123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> create database database001;
Query OK, 1 row affected (0.00 sec)

mysql>create database database002 default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

#######################        删除用户及权限       #########################
mysql>drop user 'admin001'@'localhost'
mysql>drop user 'admin001'@'%'

####################### 新建用户后,使用admin001登陆 #########################

bash-4.2# mysql -u admin001 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 142
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

使用图形化界面连接MySQL数据库

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐