跳转到主要内容

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/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'@'%';