• docker 安装配置mysql5.7.18


    最近公司测试服务器要迁移,而且是报废式迁移,北京的服务器全部不再使用,位于北京测试机器上的服务和数据库需要自己重新搭建到上海的测试服务器去。。。。关于服务器其他的相关配置在之前的docker文章中已陆续记录,本次只单独记录docker中安装配置mysql,为了保证系统的稳定与兼容,仍然使用旧版本mysql5.7.18。

    系统环境:centos 7.6.1810 (Core)

    image版本:mysql:5.7.18 (该版本显示5年前已停止更新)

    安装步骤参考文章:https://www.cnblogs.com/shisanye/p/15685263.html

    1、拉取镜像:https://hub.docker.com/_/mysql?tab=tags&page=1&name=5.7.18

    docker pull mysql:5.7.18

    2、创建主宿机映射目录

    mkdir -p /data/docker_container/mysql5.7.18 #配置文件映射
    mkdir -p /data/docker_container/mysql5.7.18/data #数据文件映射

    3、随便运行一个容器,然后将里面的配置方便拷出来

    docker run -di --name=mysql_test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.18
    docker cp mysql_test:/etc/mysql /data/docker_container/mysql5.7.18

    4、删掉这个要拷的docker

    docker stop mysql_test
    docker rm mysql_test

    5、运行容器

    docker run -dit --name mysql_test -p 3306:3306 --restart=always -e TZ="Asia/Shanghai" -v /data/docker_container/mysql5.7.18/mysql:/etc/mysql -v /data/docker_container/mysql5.7.18/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root2022 mysql:5.7.18

    网上的文章大多没有设置 --restart=always -e TZ="Asia/Shanghai",导致mysql无法开机自启动,并且时间不是中国时间会慢8小时。

    别的文章介绍还要修改root初始密码和连接权限什么的,但我发现安装完成后直接用navicat就可以远程连接,无需其它配置,不知道是为什么。后面有问题再来记录。

    然后我们创建新用户并赋予权限即可,这里我们假设赋予账号全部权限且全部地址可以访问:

    grant all privileges on *.* to '你的账号'@'%' identified by '你们密码' with grant option;
    flush privileges;

    以上运行没问题了,但是使用后会发现一些配置问题需要修改,比如group_concat长度限制,中文乱码等问题。

    网上查资料发现很乱,而且各个版本之间差别很大,不同服务器之间也有差异,本文仅说明tencos7.* 下docker mysql5.7.18对应配置文件。

    上面我们已经把配置文件夹映射到本地了,只需要修改本地配置文件即可。

    在很早的版本(或者是windows版本)中可能配置的是my.ini文件,而直接在linux安装mysql当前的版本(非docker中)对应的配置文件是my.conf文件,而我们在docker中的配置文件发现映射到本地后的my.cnf文件无法修改,通过ll(或ls -l)可看到my.cnf文件是红色的,根据该问答(https://developer.aliyun.com/ask/129850?spm=a2c6h.13159736)说是因为软连接的原因。然后最终发现/etc/mysql/mysql.conf.d/mysqld.conf 文件为真正的可修改配置文件。

    以下为配置/etc/mysql/mysql.conf.d/mysqld.conf 映射文件的简单配置,其他配置可以继续添加修改:

    [mysqld]
    #...其它配置内容

    #设置group_concat限制长度 group_concat_max_len
    = 18446744073709551615 #设置字符集 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4

    参考文章:

    修改docker中mysql配置文件:https://www.cnblogs.com/lambdadog/p/15473596.html

    彻底修改中文乱码问题:https://blog.csdn.net/u012410733/article/details/61619656


    2022.05.19补充:

    几个月前公司使用navicat被官方通知说再使用就发律师函了,所以被迫卸载navicat,重新找了dbeaver代替,是实话比不上navicat,但至少是开源免费的,还算可以。

    昨天同事说有个存储过程传中文参数用dbeaver报乱码错误,但实际上我之前已经按上面的配置设置了编码格式,而且用代码连接传参也是正常的,所以问题肯定是出在dbeaver身上,经过一番艰难查资料,终于找到答案,现记录下来:使用mysql.jdbc.Driver,参考文章:https://blog.csdn.net/Schaffer_W/article/details/121789508

  • 相关阅读:
    kafka的一些坑
    文件上传到七牛云oss并刷新cdn
    docker swarm集群常用操作
    kubernets中jenkins使用清华源加速插件安装
    获取jenkins插件最新版本
    kubeadm安装集群系列-7.部署jenkins
    kubeadm安装集群系列-6.ingress-nginx安装
    docker清理
    kubeadm安装集群系列-5.其他操作
    kubeadm安装集群系列-4.证书更新
  • 原文地址:https://www.cnblogs.com/jying/p/15852845.html
Copyright © 2020-2023  润新知