mysql 使用docker镜像 docker pull mysql 需要使用的环境变量 # MYSQL_ROOT_PASSWORD root密码 需要的挂载 /etc/mysql/my.cnf # 配置文件 /var/lib/mysql # 存储挂载 完整docker-compose.yaml示例 version: '3' services: mysql: image: mysql:5.7 # 一定要写清楚版本号,不同版本之间会出现不兼容 container_name: mysql-1 privileged: true restart: always # 自动重启 ports: - 33309:3306 volumes: - ./mysql:/var/lib/mysql # 文件存储 - ./my.cnf:/etc/mysql/conf.d/my.cnf # 配置文件 environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=123456 # root密码 my.cnf [mysql] user=root default_character_set=utf8 [mysqld] # 不区分表名称大小写 lower_case_table_names=1 # 不在聚合函数列的字段的兼容的GROUP BY sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # 最大连接数 max_connections=5000 # 等待连接超时时间(秒) wait_timeout=600 # mysql 在关闭一个进程前要等待的秒数 interactive_timeout=600 # 一行记录的大小限制,最大为1G,默认值为4M max_allowed_packet=100M # 服务器ID,唯一 server_id=1 # 开启binlog log_bin=binlog # 设置中继日志 relay-log=relay-bin # 开启行日志 binlog_format=ROW # 设置从库为指读模式 # read-only=1 # 开启慢查询日志 slow_query_log=1 # 慢查询日志文件路径 # slow_query_log_file=/var/log/mysql/mysql-slow.log # 如果未设置,可以使用 SHOW VARIABLES LIKE 'slow_query_log_file'查看 # 记录查询执行时间超过30秒的查询 long_query_time=10 创建用户 use mysql; # 创建用户 CREATE USER 'join_web_user'@'%' IDENTIFIED BY 'jo!n141421'; # 查看用户 select * from user # 授权指定库和表 # 语法 GRANT [privileges] on [databasename].[tablename] to ‘user’@‘host’ # privileges SELECT,INSERT,UPDATE,ALL # databasename.tablename 如果全部授权则填写为*或者*.*,databasename.* # ‘user’@‘host’ 登录用户名 GRANT all privileges ON *.* TO 'join_web_user'@'%' # 刷新权限 flush privileges; # 删除权限 # 语法 REVOKE [privileges] ON [databasename].[tablename] from 'join_web_user'@'%' # 其他操作参数的使用与授权一致 REVOKE all ON *.* from 'join_web_user'@'%' # 删除用户 DROP USER 'join_web_user'@'%';