查看mysql版本

    1. sudo curl https://registry.hub.docker.com/v1/repositories/mysql/tags | tr -d '[\[\]" ]' | tr '}' '\n' | awk -F: -v image='mysql' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

    选择安装mysql:8.0.16

    下载镜像

    1. docker pull mysql:8.0.16

    创建挂在目录

    1. #存放配置文件
    2. mkdir -p /usr/local/volumes/mysql/conf
    3. mkdir -p /usr/local/volumes/mysql/yshop/{conf,data,logs}
    4. #存放数据
    5. mkdir -p /usr/local/volumes/mysql/data
    6. #存放日志
    7. mkdir -p /usr/local/volumes/mysql/logs

    创建配置文件

    1. vim /usr/local/volumes/mysql/conf/my.cnf
    2. #默认的配置文件
    3. [mysqld]
    4. pid-file = /var/run/mysqld/mysqld.pid
    5. socket = /var/run/mysqld/mysqld.sock
    6. datadir = /var/lib/mysql
    7. secure-file-priv= NULL
    8. # Disabling symbolic-links is recommended to prevent assorted security risks
    9. symbolic-links=0
    10. # Custom config should go here
    11. !includedir /etc/mysql/conf.d/

    设置sql_model

    1. #默认的配置文件
    2. [mysqld]
    3. pid-file = /var/run/mysqld/mysqld.pid
    4. socket = /var/run/mysqld/mysqld.sock
    5. datadir = /var/lib/mysql
    6. secure-file-priv= NULL
    7. # Disabling symbolic-links is recommended to prevent assorted security risks
    8. symbolic-links=0
    9. # Custom config should go here
    10. !includedir /etc/mysql/conf.d/
    11. sql_mode =
    12. #去掉了ONLY_FULL_GROUP_BY
    13. STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

    启动docker

    1. docker run --restart=always -d --name mysql \
    2. -v /usr/local/volumes/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    3. -v /usr/local/volumes/mysql/data:/var/lib/mysql \
    4. -e TZ="Asia/Shanghai"
    5. -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ray@9099 mysql:8.0.4

    修改密码以及访问主机

    1. #进入容器
    2. $ docker exec -it mysql /bin/bash
    3. #连接mysql,这句会报错 Access denied for user 'root'@'localhost' (using password: YES)
    4. #直接输入mysql 即可
    5. $ mysql -uroot -p
    6. #使用mysql库
    7. $ mysql> use mysql
    8. #修改访问主机以及密码等,设置为所有主机可访问
    9. $ mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'ray123!2021';
    10. #刷新
    11. $ mysql> flush privileges;