docker-compose.yml

version: "3.5"
services:
    mysql:
        image: mysql:8.0.29
        container_name: mysql:8.0
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: 123456789
        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
        ports:
          - 3310:3306
        volumes:
          - /root/my-test-db/MySQL/data:/var/lib/mysql
          - /root/my-test-db/MySQL/conf:/etc/mysql/conf.d
          - /root/my-test-db/MySQL/logs:/logs

    es:
        image: elasticsearch:7.3.0
        container_name: es
        restart: always
        hostname: es
        ports:
            - '9600:9200'
        environment:
            - "discovery.type=single-node"
            - "ES_JAVA_OPTS=-Xms100m -Xmx200m"
        volumes:
            - /root/my-test-db/ES/data/:/usr/share/elasticsearch/data/

MySQL 数据库

  • 为安全性考虑需要禁用root用户
# 进入数据库
mysql -u root -p

# 切换数据库
use mysql

# 查询用户
select user,host from user;

# 创建新用户
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';

# 设置权限
GRANT ALL ON *.* TO '用户名'@'%';

# 删除 root 用户
delete from user where user='root' and host='%';

# 刷新权限
FLUSH PRIVILEGES;

Elasticsearch 数据库

  • 鉴于es版本原因需要给 data 目录最高权限
# /root/my-test-db/ES/data/
cd /root/my-test-db/ES/
sudo chmod 777 data/