天翼云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数据库默认曾经对数据库进行了很多优化和配置,如果想依据业务需要批改更多的高级配置,就能够依据本文的办法进行进一步的优化配置