群晖docker中mysql 修改表名区分大小写问题
关于mysql表名区分大小写的问题
序、
mysql表名是否区分大小写是通过lower_case_table_names参数来设置,登录mysql后可通过show Variables like ‘%table_names’ 来查看默认的值。
不同系统,该参数的默认值是不同的。
lower_case_table_names = 1
表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names = 0
表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 2
表名存储为给定的大小写但是比较的时候是小写的。
1:windows环境默认 0:linux环境默认 2:macos环境默认
一、关于linux镜像中的mysql参数 lower_case_table_names
上面说到linux系统的lower_case_table_names = 0 默认为0,但是通常开发测试过程中习惯性的sql语句是不区分大小写的,需要修改该参数。但是在/etc/mysql/my.cnf中直接修改lower_case_table_names = 1 是不可以的!重启mysql直接导致docker无法启动!
我们需要在初始化mysql前修改好此参数。
二、开始修改mysql镜像lower_case_table_names参数
1、登录到mysql docker控制台
选择“容器”->“mysql镜像”->“终端机”->新增bash
2、在docker中安装工具
docker中可能没有相关vim工具,需要自己安装
apt-get update
apt-get install vim
3、修改mysql默认路径
为了方便日后管理,以及初始化数据库,重新设置mysql的data路径
mkdir -p /home/data
mkdir -p /home/logs
chown -R mysql:mysql /home/data
chown -R mysql:mysql /home/logs
chmod -R 755 /home
chmod -R 755 /home/data
chmod -R 755 /home/logs
4、修改mysql配置文件
cd /etc/mysql/
vi my.cnf
配置文件中在[mysqld]下增加
[mysqld]
datadir=/home/data
log-error=/home/logs/error.log
lower_case_table_names=1
注意:该操作完成后千万不要重启docker,否则将无法启动!
5、重新初始化数据库
/usr/sbin/mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --basedir=/usr/local/mysql --datadir=/home/data
这里要等待一段时间
初始化完成后可以查看日志,主要默认的root密码为空。
vi /home/logs/error.log
该步骤完成后,重启docker,如果没有失败说明设置已经生效。
6、登录验证参数
mysql -h localhost -u root -p
Enter password: 直接回车
mysql> show variables like ‘%table_names’
lower_case_table_names参数已经变为1
7、新增用户
由于默认初始化的’root’@‘localhost’ 用户是不能远程访问的。
如果想创建一个远程访问的root用户可以使用创建语句进行创建
mysql> CREATE USER ‘root’@’%’ IDENTIFIED BY ‘密码’;
8、验证
show variables like ‘%table_names’
或尝试执行sql语句
9、完成
10、鸣谢
群辉docker中mysql 区分表名大小写问题-顾培
群晖docker中mysql 修改表名区分大小写问题相关推荐
- MySQL修改表名注释
MySQL修改表名注释 alter table test1 comment '修改后的表的注释';
- oracle在线的表名修改,oracle中如何修改表名
当原来的数据所在表不想被删除的时候我们就需要重新创建一个一个相同表名的表,但是为了更好的区分,因此我们就需要修改表名,那么你知道在oracle中如何修改表名吗?现在我们一起去看看吧. answer1: ...
- mysql修改表名几种方式_Oracle数据库中修改表名的几种方式
Oracle数据库中修改表名的几种方式如下:answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)answer2: ...
- linux mysql 修改表名_Linux下mysql怎么设置表名?
Linux下mysql可以通过"ALTER TABLE 旧表名 RENAME [TO] 新表名;"语句来修改表名:还可以通过配置my.cnf文件,修改"lower_cas ...
- mysql修改表名,列名,列类型,添加表列,删除表列
alter table test rename test1; --修改表名alter table test add column name varchar(10); --添加表列alter table ...
- MySQL 修改表名
MySQL 版本信息: mysql> status; -------------- mysql Ver 14.14 Distrib 5.7.17, for Win64 (x86_64) Serv ...
- mysql 修改表名 判断表是否存在_判断数据库表是否存在以及修改表名的方法
一.判断数据库表是否存在: 首先要拿到数据库连接conn,调用DatabaseMetaData dbmd = conn.getDataMeta();之后调用如下方法: 代码如下: /** * 根据表名 ...
- MySql修改 表名
京东2016实习生招聘 Java开发工程师 在MySql中,如果要修改表的列名,下列语句的语法正确的是 A ALTER TABLE 表名字 CHANGE 列名称 新列名称 B ALTER TAB ...
- MySQL修改表名和字段名大小写
记录一下,根据工作中项目交付要求,要将MySQL数据库中的表名和字段名中做一个规范,其中就有将表名和字段名统一做小写处理. 废话不多说,直接上MySQL脚本: 批量修改数据库下的表名(大写改小写): ...
最新文章
- Virtual Box6.1安装并创建CentOS-6.5虚拟机以及网络配置(静态IP)、防火墙关闭、yum源配置、安装JDK8、安装perl
- Delphi2010组件/控件安装方法
- openlayer 3 在layer上添加feature
- 【思考】一次交付项目小结
- 多主机Docker容器的VLAN划分
- 有趣的守萝卜的兔子卡通动画404页面源码 自适应
- Freemarker输出$和html标签等特殊符号
- C++基础::typeid、type_info
- 2017 ACM-ICPC南宁网络赛: I. GSM Base Station Identification(线性变换)
- git bash上传代码到github
- excel宏教程_篇四、CFD Coding之后处理(VBA/EXCEL)
- 不存在R上的连续函数f,它在无理数集R\Q上是一一映射,而在有理数集Q上不是一一映 射。
- 使用C# .net开发微信公众号之服务器URL配置
- termux目录_手机学编程(2)目录管理命令
- Python构造虚数矩阵报警告ComplexWarning: Casting complex values to real discards the imaginary part
- 推荐系统-推荐引擎的架构
- RuntimeError: could not create a descriptor for a dilated convolution forward propagation primitive
- BART model
- 入门微信小程序开发(三)数据绑定的几种用法
- 前端开发没拿到接口该如何模拟数据呢?