docker容器mysql大小写敏感、重启失败、连接数修改

这篇博文主要说标题中提到的三个问题:1是linux环境下的大小写敏感问;2是docker环境下mysql配置文件修改后重启失败问题解决;3是连接数过多问题解决

进入容器,安装vim

文章参考:docker修改容器的mysql配置文件(大小写敏感)https://www.cnblogs.com/ljincheng/p/13581326.html

因linux环境下mysql默认是大小写敏感的,想着就将它屏蔽了,但因为是在docker环境下,从而度娘得到上文,操作如下。

docker exec -it 容器名称(或者容器id) bash
apt-get update
apt-get install -y vim

#若顺利进入容器,则编辑my.cnf文件(/etc/mysql目录)
vi my.cnf
# 加上内容,设置为大小写不敏感
lower_case_table_names=1

mysql重启失败,解决重启问题

  1. 但是,修改完文件后,本来想通过docker restart 容器名称重启容器的,而docker ps表明容器没有启动成功。继而通过docker logs  -f --tail 10 容器名称查看日志信息,发觉是配置文件修改有误。。。而没有启动的容器是无法进入的,那如何修改配置文件呢?此时度娘得到这篇:docker+mysql 更改配置后重启不了的解决方案https://blog.csdn.net/wenhao24725/article/details/103852547
  2. 通过1.的文章,按照方案1操作,find / -name my.cnf,发觉有多个地方有,然后逐一打开,发觉都不是我的菜。。。方案1作废。
  3. 通过1.的文章,按照方案2操作,通过docker cp命令,将容器中配置文件拷贝到主机,在主机编辑完成后,将配置文件覆盖到容器。但是这个操作,复制得到的my.cnf文件有问题,显示红色,没有考虑这个红色是啥意思,但明显是一个废弃文件。怎么办呢?

虽然方案2作废了,但是它给了我另外一个思路,我新建一个my.cnf的空文件传送到容器是否可以?(或者是在网上找一份初始的my.cnf文件),幸好,通过docker cp ./my.cnf 容器名称:/etc/mysql/my.cnf操作后,运行docker start 容器名称,最后docker ps,完美!

大小写敏感解决

这个问题解决之后,回归到大小写敏感问题,打开/etc/mysql/mysql.conf.d目录,修改配置文件,设置lower_case_table_names=1,重启后大小写问题已经屏蔽了。通过show global variables like 'lower%'; 命令查询lower_case_table_names取值(参考:mysql too many connections 解决方法https://www.jianshu.com/p/fc40067c4dc9),发觉取值已改变,至此,大小写敏感问题就屏蔽了。

大小写问题迁出的连接数问题

大小写设置后,需要重启mysql服务,但重启mysql服务后,发觉在命令行设置的max_connections参数变为了默认值。

show global variables like 'max_connections';
set global max_connections=1000;

从而需要修改配置文件。打开/etc/mysql/mysql.conf.d目录,修改配置文件,添加max_connections=1000,重启后在命令行查看最大连接数,设置的已生效。

docker下mysql时区问题

+ 失败操作(可跳过):在mysql命令行,通过使用show variables like '%zone%',查看默认获取时间为系统时间,按照度娘参考,修改my.cnf文件,设置default-time_zone='+8:00',重启后没有效果。

+ 成功操作:既然Mysql默认取得是系统时间,则只需修改该容器的系统时间即可。度娘得知,将主机的/etc/localtime文件复制到容器的/etc/localtime文件,通过 docker cp /etc/localtime 容器名称:/etc/localtime 操作,重启该容器(docker restart 容器名称),继而进入容器(docker exec -it 容器名称 bash),通过date查询到时间已同步到本地时间了。至此Mysql时区问题已解决。

文章参考:https://www.cnblogs.com/tongtong198808/archive/2004/01/13/14071993.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要增加 Docker 容器MySQL 的最大连接数,你可以通过修改容器中的 MySQL 配置来实现。以下是一种常见的方法: 1. 运行 MySQL 容器:首先,确保已经运行了 MySQL 容器。你可以使用以下命令来启动一个 MySQL 容器: ```bash docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -d mysql:tag ``` 请将 `mysql-container` 替换为你的容器名称,`your_password` 替换为你的 MySQL root 密码,`tag` 替换为你想要使用的 MySQL 版本标签。 2. 进入容器:使用以下命令进入运行中的 MySQL 容器: ```bash docker exec -it mysql-container bash ``` 这将为你提供一个 shell 窗口,让你可以在容器中执行命令。 3. 修改配置文件:在容器内部,找到 MySQL 的配置文件 `my.cnf`。通常,它位于 `/etc/mysql/my.cnf` 或 `/etc/my.cnf` 目录下。使用文本编辑器(如 vi 或 nano)打开配置文件。 4. 找到 `max_connections` 参数:在配置文件中找到 `max_connections` 参数,它控制了 MySQL 数据库的最大连接数。该参数通常位于 `[mysqld]` 部分下。 5. 修改 `max_connections` 参数:将 `max_connections` 参数的值增加到你想要的最大连接数。你可以根据你的应用程序需求和服务器资源来设置合适的值。 6. 保存并退出配置文件。 7. 重启 MySQL 服务:在容器内部,使用以下命令重启 MySQL 服务: ```bash service mysql restart ``` 这将使配置更改生效。 8. 验证最大连接数:连接到 MySQL 数据库并执行以下查询语句来验证最大连接数是否已经增加: ```sql SHOW VARIABLES LIKE 'max_connections'; ``` 查询结果中的 `Value` 字段将显示当前的最大连接数。 通过以上步骤,你应该能够增加 Docker 容器MySQL 的最大连接数。请确保你的容器有足够的资源来支持所需的连接数,并注意监控容器的性能以及调整其他相关参数,如线程缓存、内存等。 希望这些信息能够帮助到你。如有其他疑问,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值