1. 安装环境: 阿里云centos7.9
    podman1.6.4
    mysql8.0.28

一、安装podman

yum install podman

中途出现

输入 y 敲enter继续

安装podman完成

二、拉取并启动mysql

  1. 通过podman搜索mysql
    podman search mysql
    
  2. 从结果里找到自己想要的镜像然后进行拉取
    podman pull docker.io/library/mysql
    
  3. podman images 查看镜像列表
  4. 创建mysql8挂载路径,并赋予相应权限
    mkdir -p /usr/local/mysql8/conf /usr/local/mysql8/data /usr/local/mysql8/log
    
    chmod -R 744 /usr/mysql/
    
  5. mysql配置文件: /usr/local/mysql8/conf/my.cnf 详情
    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    # basedir=/usr/local/mysql8
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql8/data
    # 允许最大连接数
    max_connections=1000
    # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
    max_connect_errors=100
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8mb4
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    authentication_policy=mysql_native_password
    #是否对sql语句大小写敏感,1表示不敏感  需要在初始化时设置
    # lower_case_table_names = 1
    #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
    #MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
    interactive_timeout = 1800
    wait_timeout = 1800
    #Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
    #执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
    lock_wait_timeout = 3600
    #内部内存临时表的最大值。
    #比如大数据量的group by ,order by时可能用到临时表,
    #超过了这个值将写入磁盘,系统IO压力增大
    tmp_table_size = 64M
    max_heap_table_size = 64M
    # MySQL服务端字符集
    character_set_server = utf8mb4
    # 设置默认存储引擎为InnoDB
    default-storage-engine = InnoDB
    # 默认为ON,设置为OFF,关闭事务自动提交
    autocommit = OFF
    transaction_isolation = READ-COMMITTED
    # 错误日志存放路径
    log_error = /usr/local/mysql8/log/log.err
    # 全局动态变量,默认3,范围:1~3
    # 表示错误日志记录的信息,1:只记录error信息;2:记录error和warnings信息;3:记录error、warnings和普通的notes信息
    log_error_verbosity = 2
    
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8mb4
    
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8mb4
    
  6. 核心代码:
    [root@iZuf6eyirg61o0pawi6yk6Z /]# podman run -itd --name mysql8 \
    -e TZ="Asia/Shanghai" \
    -v /usr/local/mysql8/conf/my.cnf:/etc/my.cnf \
    -v /usr/local/mysql8/data:/var/lib/mysql \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql --lower_case_table_names=1
    
    # -e MYSQL_ROOT_PASSWORD: 设置mysql密码
    # /etc/my.cnf mysql配置文件,有的是/etc/mysql/my.cnf
    # -v /usr/local/mysql8/data: /var/lib/mysql: 挂载磁盘实现数据持久化
      /var/lib/mysq由来: podman inspect xxx(镜像id)  结果里查找
      "Volumes": {
                 "/var/lib/mysql": {}
             }
    # --lower_case_table_names=1: 忽略大小写,podman mysql默认区分大小写的
    
  7. 通过 podman ps 查看正在运行的容器;
    podman logs mysql8 查看运行日志;

三、连接mysql

  1. 进入mysql容器
    podman exec -it mysql8 /bin/bash
    
  2. 登录mysql
    mysql -uroot -p
    
  3. podman mysql默认支持远程连接,使用Navicat远程连接,查看配置忽略大小写是否成功
    SHOW GLOBAL VARIABLES LIKE '%lower_case%';
    
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐