docker上修改mysql大小写_MySQL表名不区分大小写的设置方法,附Docker修改方法

目录

linux修改配置文件

Docker修改配置文件

MySQL在windows系统下安装默认是对表名大小写不敏感的,但是在linux下,一般需要手动设置。

一、linux修改配置文件

/etc/my.cnf 文件,在[mysqld]节点下,加入一行:lower_case_table_names=1

重启MySQL服务:service mysql restart

PS: lower_case_table_names 参数 0区分大小写,1不区分

二、Docker修改配置文件

如果是Docker安装的MySQL服务,修改略有不同

docker ps #找到要修改的镜像

docker exec -it 容器ID或名称 /bin/bash #进入要修改的容器

cd /etc/mysql #进入要修改的文件目录

#安装vim

apt-get update

apt-get install vim

#修改配置文件,在[mysqld]节点下,加入一行:lower_case_table_names=1

cd mysql.conf.d/

vi mysqld.cnf

#如果要退出bash有2种操作:1)Ctrl + d 退出并停止容器;2)Ctrl + p + q 退出并在后台运行容器;

#重启容器

docker restart 容器ID

附录 Invalid default value for 'UPDATE_TIME错误

Invalid default value for 'UPDATE_TIME 问题原因是因为db 表中update_time的默认时间写成了 '0000-00-00 00:00:00'

update_time timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

因为timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59,

所以必须得把字段UPDATE_TIME 的默认值修改成:1970-01-01 00:00:00 到 2037-12-31 23:59:59 之间的值

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker容器安装MySQL 8.0并配置不区分大小写的查询,首先你需要创建一个Dockerfile,然后在容器运行时进行相应的设置。以下是步骤: 1. **创建Dockerfile**: ```Dockerfile # 使用官方MySQL镜像作为基础 FROM mysql:8.0 # 设置环境变量(MYSQL_ROOT_PASSWORD用于初始化时设置密码,MYSQL_DATABASE用于创建数据库) ENV MYSQL_ROOT_PASSWORD=<your_root_password> ENV MYSQL_DATABASE=mydb ENV MYSQL_USER=root ENV MYSQL_PASSWORD=<your_user_password> # 将配置文件复制到容器,并编辑my.cnf COPY my.cnf /etc/mysql/conf.d/case-insensitive.cnf # 运行容器时启动mysql服务 CMD ["mysqld"] ``` 在这个Dockerfile,`case-insensitive.cnf`是一个自定义配置文件,内容如下: ```ini [mysqld] lower_case_table_names=2 ``` 这表示启用不区分大小写表名。 2. **构建Docker镜像**: 在Dockerfile所在的目录下,运行: ```sh docker build -t your-image-name . ``` 3. **运行容器并映射端口**: ```sh docker run -p <host_port>:3306 -e MYSQL_ROOT_PASSWORD=<your_root_password> -v <path_to_data_volume>:/var/lib/mysql your-image-name ``` 这里 `-p` 参数用于将主机的端口映射到容器的3306端口,`-v` 参数则是为了持久化数据。 4. **初始化数据库和用户**: 首次启动容器时,可以连接到容器并执行必要的初始化操作,例如: ```sh docker exec -it your_container_name bash mysql -u root -p<your_user_password> << EOF CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE; USE $MYSQL_DATABASE; GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'; FLUSH PRIVILEGES; EOF exit ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值