docker安装mysql5.7

  1. 下载镜像

    docker pull mysql:5.7
    
  2. 创建映射文件夹

    mkdir -p /docker/mysql/conf
    mkdir -p /docker/mysql/logs
    mkdir -p /docker/mysql/data
    
  3. 创建容器

    docker run  --privileged=true -p 3306:3306  --name mysql  -v /docker/mysql/conf:/etc/mysql/conf.d  -v /docker/mysql/logs:/var/log/mysql  -v /docker/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=223345 -d mysql:5.7 
    
  4. -p 3306:3306 主机端口跟容器端口映射

  5. –name mysql 设置容器名字

  6. -v /docker/mysql/conf:/etc/mysql/conf.d 挂载配置文件

  7. -v /docker/mysql/logs:/var/log/mysql 挂载日志

  8. -v /docker/mysql/data:/var/lib/mysql 挂载数据文件,持久化到主机

  9. -e MYSQL_ROOT_PASSWORD=223345 设置密码

  10. -d mysql:5.7 后台启动,使用的镜像为mysql:5.7

  11. 配置my.cnf

    #创建my.cnf
    cd /docker/mysql/conf/
    vim my.cnf 
    
    ```bash
    #插入配置
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci' 
    init_connect='SET NAMES utf8' 
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    

    注意

    上面这里一定不能有任何换行的操作

  12. 重启mysql

    docker restart mysql
    

docker 安装mysql8.0

  1. 下载镜像

    docker pull mysql:8.0
    
  2. 创建映射文件夹

    mkdir -p /docker/mysql8/data
    mkdir -p /docker/mysql8/logs
    mkdir -P /docker/mysql8/conf
    
  3. 创建容器

    docker run  --privileged=true -p 3307:3306  --name mysql8  -v /docker/mysql8/conf:/etc/mysql/conf.d  -v /docker/mysql8/logs:/var/log/mysql  -v /docker/mysql8/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=223345 -d mysql:8.0
    
  4. 设置root账户外网可访问

    # 进入容器
    docker exec -it mysql8 bash
    
    #进入mysql终端
    mysql -uroot -p
    
    #设置root账户外网可访问
    use mysql;
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    flush privileges;
    
    #退出
    exit
    exit
    
  5. 配置my.cnf

    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection=utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
  6. 重启mysql

    docker restart mysql8