1. 程式人生 > 實用技巧 >Docker安裝Mysql(docker-compose.yml)

Docker安裝Mysql(docker-compose.yml)

建立docker-compose.yml檔案

version: '2'
services:
  db:
    image: 'mysql/mysql-server:5.7'
    restart: always
    container_name: mysql57
privileged: true 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
    privileged: true
    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

進入容器建立使用者

#########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>