IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    mysql安装 ( docker )

    John Doe发表于 2023-08-23 02:17:42
    love 0

    Mysql5.X安装

    拉取镜像

    docker pull  mysql:5.7.31

    创建挂载文件

    mkdir /data/mysql/{cnf,logs,mysql}

    创建配置文件

    vi /data/mysql/cnf/my.cnf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #写入下面配置
    [mysqld]
    pid-file= /var/run/mysqld/mysqld.pid
    socket= /var/run/mysqld/mysqld.sock
    datadir= /var/lib/mysql
    log-error= /var/log/mysql/error.log

    default-time_zone='+8:00'

    skip-name-resolve

    log-bin=mysql-bin
    binlog-format=ROW
    server_id=2

    symbolic-links=0
    expire_logs_days=7

    max_connections = 2000
    max_user_connections = 1900
    max_connect_errors = 100000
    max_allowed_packet = 50M
    lower_case_table_names=0
    sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

    [client]
    default-character-set=utf8

    [mysql]
    character-set-server=utf8

    编写docker-compose文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    version: '3.5'
    services:
    web:
    image: mysql:5.7.31
    container_name: mysql-5.7.31
    restart: always
    ports:
    - 3306:3306
    environment:
    - TZ=Asia/Shanghai
    - MYSQL_ROOT_PASSWORD=root
    #目录挂载
    volumes:
    - /data/mysql/conf:/etc/mysql/conf.d
    - /data/mysql/logs:/logs
    - /data/mysql/mysql:/var/lib/mysql

    启动

    docker-compose up -d#查看日志docker-compose logs -f 

    配置远程访问

    #进入mysql容器docker exec -it mysql-5.7.31 bash#登录mysqlmysql -uroot -proot#创建用户并添加权限grant all privileges on 库名.* to 登录名@'%' identified by '123456';#刷新mysql权限FLUSH PRIVILEGES;#退出exit;

    Mysql8.X安装

    拉取镜像

    docker pull mysql:8.0.31

    创建挂载文件

    mkdir /data/mysql/{cnf,logs,mysql}

    创建配置文件

    vi /data/mysql/cnf/my.cnf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #写入下面配置
    [mysqld]
    pid-file= /var/run/mysqld/mysqld.pid
    socket= /var/run/mysqld/mysqld.sock
    datadir= /var/lib/mysql

    default-time_zone='+8:00'
    skip-name-resolve

    log-bin=mysql-bin
    binlog-format=ROW
    server_id=1

    symbolic-links=0
    expire_logs_days=7

    max_connections = 2000
    max_user_connections = 1900
    max_connect_errors = 100000
    max_allowed_packet = 50M
    lower_case_table_names=0
    sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

    编写docker-compose文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    version: '3.5'
    services:
    mysql-3310:
    image: mysql:8.0.31
    container_name: mysql-3310
    privileged: true
    restart: always
    ports:
    - 3310:3306
    environment:
    - TZ=Asia/Shanghai
    - MYSQL_ROOT_PASSWORD=root
    - character-set-server=utf8mb4
    - collation-server=utf8mb4_general_ci
    #目录挂载
    volumes:
    - /data/mysql/cnf:/etc/mysql/conf.d
    - /data/mysql/logs:/logs
    - /data/mysql/mysql:/var/lib/mysql

    启动

    docker-compose up -d# 查看日志docker-compose logs -f 

    配置远程访问

    # 进入mysql容器docker exec -it mysql-5.7.31 bash# 登录mysqlmysql -uroot -proot# 在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权. # 先创建一个用户create user 'test'@'%' identified by '123123';   # 再进行授权grant all privileges on *.* to 'test'@'%' with grant option;# 修改远程加密规则:ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123123';# 刷新权限:FLUSH PRIVILEGES;#OK,设置完成,再次使用 Navicat 连接数据库


沪ICP备19023445号-2号
友情链接