天翼云 RDS 数据库反对批改数据库参数。最近遇到几个用户反馈要求天翼云对 MySQL RDS 数据库的库表名批改为大小写不敏感,这能够通过批改 RDS 数据库的参数来实现。明天就用这个实例来解说一下天翼云 RDS 如何批改数据库参数。
MySQL 数据库对库表名称大小写是否敏感和 MySQL 运行的操作系统无关,因为 Windows 操作系统对大小写不敏感所以运行在 Windows 上的 MySQL 数据库对大小写也不敏感,而 Linux 操作系统对大小写敏感所以运行在 Linux 上的 MySQL 数据库默认状况下对大小写敏感。天翼云 MySQL RDS 数据库的库表名称默认对大小写敏感,这意味着在数据库里 users 表和 Users 表被视为两个表,那么应用软件在进行数据库连贯时必须确保数据库表名称的大小写是正确的。
举个例子,当初有一个数据库名为 Test,外面有一个表名称是 Users,如果应用 sql 语句 select from test.users 查问,MySQL 将返回提醒 test.users 表不存在,必须应用 select from Test.Users 才能够查问到正确的后果。
mysql> select * from test.users;
ERROR 1146 (42S02): Table ‘test.users’ doesn’t exist
mysql> select * from Test.Users; |
---|
name |
张三 |
李四 |
2 rows in set (0.00 sec)
因为各种起因,开发人员疏忽了大小写问题,就会造成在开发环境下能失常运行的程序移植到天翼云 RDS 数据库后有问题。
上面咱们就来通过配置天翼云 RDS 数据库的 lower_case_table_names 参数来解决这个问题。
一、将数据库的库表名称都改为小写
如果须要使 MySQL 数据库疏忽大小写,须要先手动把数据库的库名、表名都改成小写。
库名如果有大写,须要从新建库来解决。表名能够应用 rename 命令来批改,本文不再探讨。
如果只是批改其它参数,可略过第一步。
二、创立一个新的 RDS 参数组
首先登录天翼云关系型数据库控制台,点击进入参数组配置。
参数组中曾经有 MySQL、PostgreSQL 和 SQLServer 数据库的默认参数组。默认参数组不能批改,因而咱们须要创立一个新的参数组。
点击页面上方的“创立参数组”按钮,而后抉择须要创立的数据库型号及版本。本例中应用的数据库为 MySQL 5.6,因而参数组系列要抉择 MySQL 5.6。点击确定实现创立。
三、批改参数
在参数组列表中找到刚刚新建的参数组,点击编辑按钮进入参数编辑模式。
进入编辑模式后,页面已列出该数据库反对的所有参数。页面上“是否可批改栏”栏显示为“是”的参数,示意这个参数能够批改。“是否须要重启”栏显示为“是”的参数,示意这个参数批改后,须要重启 RDS 数据库能力失效,显示为“否”的参数能够立刻失效,不须要重启。同时列表中还对参数的性能有简略的形容。
对应到文章结尾提到的设置库表大小写不敏感,须要批改 lower_case_table_names 参数由 0 改为 1。能够在右上角的搜寻框中输出 lower_case_table_names,疾速找到这个参数。点击值这一列,设置 lower_case_table_names 这个参数为 1,而后点击保留按钮使配置失效。
四、利用参数组到数据库实例
当初 RDS 数据库还是应用的默认参数组,须要把参数组改为方才通过批改的参数组。
点击进入 RDS 实例治理,找到正在应用 RDS 实例。点击主实例行所在的“治理按钮”
抉择到“配置参数组”页面,在“新参数组”下拉中抉择第二步创立的参数组,再点击提交。
五、重启 RDS 数据库实例使配置失效
因为 lower_case_table_names 这个参数是须要重启 RDS 实例能力失效的,因而还须要重启 RDS 实例。
回到 RDS 实例治理,点击“重启”按钮使配置失效。
六、验证
等 RDS 实例重启后,MySQL 数据库就对大小写不敏感了,select from Test.Users 和 select from test.users 两条 SQL 语句都能胜利执行了。
mysql> select * from Test.Users; |
---|
name |
张三 |
李四 |
2 rows in set (0.00 sec)
mysql> select * from test.users; |
---|
name |
张三 |
李四 |
2 rows in set (0.00 sec)
总结
天翼云 RDS 数据库默认曾经对数据库进行了很多优化和配置,如果想依据业务需要批改更多的高级配置,就能够依据本文的办法进行进一步的优化配置