美文网首页
Docker安装MySQL5.7并挂载到宿主机

Docker安装MySQL5.7并挂载到宿主机

作者: 王小児 | 来源:发表于2021-12-01 11:42 被阅读0次

    1.docker中拉取Mysql镜像

      docker pull mysql:5.7
    

    2.在宿主机创建用于挂载的目录

      mkdir –p /data/mysql/logs /data/mysql/conf /data/mysql/data
    

    3.使用镜像创建容器

    #将容器中MySQL的3306端口映射到本地的3307端口,并设置登录密码为:123456
    docker run --name mysql5.7 -p 3307:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7:
    

    参数解析:

    • --name:容器名
    • --p:映射宿主主机端口
    • -v:挂载宿主目录到容器目录
    • -e:设置环境变量,此处指定root密码
    • -d:后台运行容器

    4. 进入容器

    docker start 容器ID
    docker exec -it 容器名字 /bin/bash
    
    [root@iZf8z14idfp0rzrwd3y22vZ mysql]# docker ps
    CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS         PORTS                               NAMES
    33ddd7fb4b8c   mysql:5.7                "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   33060/tcp, 0.0.0.0:3307->3306/tcp   mysql5.7
    [root@iZf8z14idfp0rzrwd3y22vZ mysql]# docker exec -it 33ddd7fb4b8c  /bin/bash
    root@33ddd7fb4b8c:/# mysql -uroot -p123456
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.36 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2021, Oracle and/or its affiliates.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    
    

    5.配置mysqld.cnf文件

    在宿主机上该目录下:/data/mysql/conf创建一个mysqld.cnf
    内容如下

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    #
    
    [client]
    port=3306
    socket          = /var/run/mysqld/mysqld.sock
    #default-character-set = utf8mb4
    
    [mysqld]
    user            = mysql
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    port            = 3306
    basedir         = /usr
    datadir         = /var/lib/mysql
    tmpdir          = /tmp
    lc-messages-dir = /usr/share/mysql
    log_output      = FILE
    
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
    symbolic-links=0
    
    lower_case_table_names=1
    default-storage-engine=INNODB
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    event_scheduler=ON
    default-storage-engine=INNODB
    max_allowed_packet = 16M
    wait_timeout    = 31536000
    interactive_timeout = 31536000
    connect_timeout = 20
    
    back_log = 512
    max_connections = 2048
    max_connect_errors = 128
    open_files_limit = 8192
    
    key_buffer_size = 1024M
    
    sort_buffer_size = 32M
    read_buffer_size = 32M
    join_buffer_size = 32M
    read_rnd_buffer_size = 8M
    bulk_insert_buffer_size = 32M
    
    myisam_max_sort_file_size = 100G
    myisam_sort_buffer_size=64M
    
    thread_cache_size = 64
    thread_stack = 512k
    
    query_cache_limit = 4M
    query_cache_size = 128M
    query_cache_min_res_unit= 2k
    
    tmp_table_size = 256M
    max_heap_table_size = 256M
    max_tmp_tables = 512
    bulk_insert_buffer_size = 16M
    skip-name-resolve
    skip-grant-tables
    slow_query_log
    long_query_time = 0.1
    
    innodb_open_files = 20480
    
    #memlock
    innodb_buffer_pool_instances=4
    innodb_buffer_pool_size = 245M
    innodb_log_file_size = 64M
    innodb_file_per_table = 1
    innodb_lock_wait_timeout = 50
    innodb_flush_log_at_trx_commit = 0
    innodb_flush_method = O_DIRECT
    innodb_write_io_threads = 8
    innodb_read_io_threads = 8
    innodb_thread_concurrency = 16
    innodb_log_files_in_group = 3
    innodb_max_dirty_pages_pct = 90
    
    server-id = 1
    log-bin = /var/lib/mysql/mysql-bin
    expire_logs_days = 7
    relay_log_info_file = /var/lib/mysql/relay_info.log
    binlog_format = ROW
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    binlog-ignore-db=test
    log-slave-updates
    
    [mysqldump]
    quick
    max_allowed_packet = 48M
    
    [isamchk]
    key_buffer = 128M
    sort_buffer_size = 128M
    read_buffer = 2M
    write_buffer = 2M
    
    [myisamchk]
    key_buffer = 128M
    sort_buffer_size = 128M
    read_buffer = 2M
    write_buffer = 2M
    
    #[mysqld_safe]
    #log-error=/var/log/mysqld.log
    #pid-file=/var/run/mysqld/mysqld.pid
    
    

    如果是在阿里云服务器上。还需要在安全组里面添加3307端口

    相关文章

      网友评论

          本文标题:Docker安装MySQL5.7并挂载到宿主机

          本文链接:https://www.haomeiwen.com/subject/rprsxrtx.html