linux服务器设置mysql5.7版本数据库忽略数据表名大小写

9 篇文章 0 订阅
3 篇文章 0 订阅

最初的问题

vue前端能够发送正确的请求路径,后端也设置了允许跨域。
请求时出现 net::ERR_CONNECTION_REFUSED 错误。但是我的本地是没有问题的,使用如下测试代码:

<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
    $(function(){
        $.ajax({
          //  url:"http://172.17.172.45:8089/account/admin/consumeRecord/getlist",
            // url:"http://172.17.172.45:8089/account/admin/consumeRecord/getlist", ok
            url:"http://172.17.172.45:8089/account/doLogin",
            data:JSON.stringify({account: "pan", password: "123456"}),
            dataType: "json", // 表示返回类型
            type:"POST",   // 请求方式
            crossDomain:true,  //是否跨域  可后端设置
            contentType:"application/json;charset=UTF-8", 
            //contentType: "application/x-www-form-urlencoded",
            success:function(data){
                console.log(data);
            }
        });
    });
</script>

当我访问本地时,可以正常的返回登陆结果。但是访问远程服务器部署的地址就提示拒绝连接。
我是使用微服务类型进行启动springboot项目的。
命令如下:

nohup java -jar account.jar &

这个命令执行后就可以关闭窗口,进程会在后台执行,另外也不会有日志出现,这就导致了无法知道在部署过程中产生了什么错误。之后改变了执行方法。

java -jar account.jar

从而可以观察到访问过程中会出现哪些错误。

从提示错误中看到说无法找到account.T_SYS_USER,但是我的数据库中明明有这个表。把执行的查询语句替换,在navicate中执行,大写的表名不行,然后将表名改成小写,再执行sql语句,可以进行查询。所以问题就是linux上对表名大小写敏感。

解决方法

故要做的就是配置MySQL,让mysql忽略大小写。
查看当前的mysql配置是否忽略大小写:

  • 登陆mysql
  • show variables like “%case%”;
***************************************
mysql> show variables like "%case%";

+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   | 
| lower_case_table_names | 0     | 
+------------------------+-------+
2 rows in set (0.00 sec)

******************************************

lower_case_table_names=0说明对表名大小写敏感,故需要进行配置。

mysql 5.6版本参考
我的mysql版本是5.7,故位置有些不一样。
位置可以使用locate命令进行查找,大致在安装目录下。
1.进入修改配置文件

vim /etc/mysql/mysql.conf.d/mysql.cnf

2.在[mysqld]下加入一行:lower_case_table_names=1
备注:0,区分大小写; 1,不区分
3.重新启动数据库即可
sudo /etc/init.d/mysql restart

这时候就可以通过ajax正常的访问到登陆方法了。使用vue也可以正常登陆了。

问题总结

1.项目部署时应该先在控制台中进行输出日志,保证基本方法请求没问题。
2.linux上的mysql是对大小写敏感的,故在后端写代码时对表名的命名最好保持一致,不会导致测试时有的接口可以有的不可以,还不知道错误在哪。
3.本次部署对mapper.xml中写的实体类别名没有识别出来,最后是直接指定了具体的路径作为别名(可能没有配置成功)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值