问题如下: 比如上图中的PERSON表,查询SQL语句中如果表名是小写,就会报错说person表不存在。 因为Linux环境下的MySQL数据库的表名默认是区分大小写的,可以查看Linux上的MySQL的配置文件/etc/my.cnf:
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@VM_219_131_centos tomcat7]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [root@VM_219_131_centos tomcat7]# |
如果要使用数据库表名不区分大小写的话,就需要在[mysqld]下面添加一行配置,即 lower_case_table_names=1:
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@VM_219_131_centos tomcat7]# vi /etc/my.cnf [mysqld] lower_case_table_names=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
网上对该项配置的说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
lower_case_table_names参数详解: 其中 0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。 3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种: A、创建时设置: CREATE TABLE T( A VARCHAR(10) BINARY ); B、使用alter修改: ALTER TABLE`tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; C、mysql tableeditor中直接勾选BINARY项。 |
修改完配置之后,一定要重启数据库:
1 2 3 |
[root@VM_219_131_centos tomcat7]# service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] |
然后使用Navicat工具重新连接MySQL数据库,再次查询perosn表,这时发现不管查询SQL语句中的表名是大写还是小写都提示找不到person表了。 原因是修改配置之后,会导致原来的大写的表名PERSON无法识别,所以这一点要特别注意。 解决办法是: (1)在修改配置之前一定先将所有表的表结构和表数据导出做备份; (2)删除原来的表; (3)修改配置; (4)将表结构和表数据导入。 按照上面的步骤操作之后,再次查询person表,表名就不区分大小写了。 from:https://www.cnblogs.com/jun1019/p/7073227.html
View Details公司现在有个区域吗,需要实现两个不同阿里云账号下,但是在同一个区域里的ECS内网互联。 搜索了一下资料,一共三步就可以实现,官网资料:https://www.alibabacloud.com/help/zh/doc-detail/65901.htm 步骤如下 一;开启A账户的云企业网络 点击到【云企业网】控制器,同区域下云企业免费的。跨区域的需要购买带宽包 https://cen.console.aliyun.com/ 在云企业网实例页面,单击创建云企业网实例。 配置云企业网实例: 名称:云企业网实例的名称。 加载网络实例: 账号:选择同账号。 实例类型:选择要互通的实例,支持加载专有网络和边界路由器实例。本操作输入专有网络实例。 地域:选择所选实例的地域。本操作选择华北1。 实例:选择要加载的实例。本操作选择一个VPC实例。 获取已创建的云企业网实例ID。本操作的云企业网实例ID为cen-xxxxxxxxxx4l7。 步骤二 账号B授权账号A加载其网络实例 使用账号B登录VPC管理控制台。例如我的是杭州区域: https://vpcnext.console.aliyun.com/vpc/cn-hangzhou/vpcs 然后单击目标VPC的实例ID,在云企业网跨账号授权信息区域,单击云企业网跨账号授权。 步骤三 账号A加载网络实例 使用账号A登录云企业网管理控制台。 在云企业网实例页面,单击已创建的云企业网实例的操作列下的管理。 3.在加载网络实例页面,单击加载网络实例,配置网络实例: 4.在A的云企业网实例网络加载中,加载B账号中同区域的VPC网络 现在在被加载到云企业网中的任何一台ECS中去ping另外一台服务器,发现ping通了(服务器不能禁ping),则可以用了 否则则有可能是: 1、不在同一区域内 2、没有加载授权到对应 云企业网络中去,请按照上面的过程检查设置。 from:https://blog.csdn.net/umufeng/article/details/85992496
View Details