• 项目部署到Linux上遇到的坑


    作者:晨钟暮鼓c
    个人微信公众号:程序猿的月光宝盒

    1.本地Navicat for MySQL无法连接至服务器(Centos 7 x86_64 bbr)

    1045错误:

    图片

    解决步骤:

    ​ 1.查看用户名密码是否错误

    ​ 2.用户名密码无误的情况下,远程登录服务器进入mysql,

    mysql> use mysql;
    Database changed
    mysql> grant all privileges  on *.* to root@'%' identified by "password";
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select host,user,password from user;
    +--------------+------+-------------------------------------------+
    | host         | user | password                                  |
    +--------------+------+-------------------------------------------+
    | localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    | %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    +--------------+------+-------------------------------------------+
    3 rows in set (0.00 sec)
    

    grant all privileges on *.* to root@'%' identified by "password";

    以上这句话,表示所有的ip可以以用户名root密码password远程访问该机器上的MySql.当然可以自定义密码.

    以上,问题基本解决(我就是这么解决了,如果你的还没解决就再google吧)

    2.部署到服务器上后(Centos 7 x86_64 bbr)表单提交乱码问题

    这个问题,简直恶心....因为本地开发环境是tomcat7开发,我的服务器是tomcat8,网上查了一大堆...什么7-->8要在service.xml改配置编码...都没用,打算放弃...以为是国外服务器的编码原因...然后...突然想起来,在jdbc连接数据库的时候 URL后面可能会有问题

    原来的

    <property name="user">root</property>
    <property name="password">root</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://ip地址:3306/class3</property>
    

    jsbcUrl添加参数?useUnicode=true&characterEncoding=UTF-8
    但是,在xml中&要用&amp;代替
    改后:

    <property name="user">root</property>
    <property name="password">root</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://ip地址:3306/class3?useUnicode=true&amp;characterEncoding=UTF-8</property>
    

    原理:

    我们添加这个的添加的作用是:指定字符的编码、解码格式。

    例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

    存数据时:

    数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

    取数据时:

    在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

    以上,解决

    emm,填坑+2

    晚安

  • 相关阅读:
    Android基础知识
    使用Android Studio和Genymotion模拟器搭建Andriod开发环境
    【原】Java开发环境搭建
    【转】JavaScript顶级对象参考模型
    【转】在.Net中关于AOP的实现
    【转】各版本IIS下ASP.net请求处理过程区别
    【转】我们应该如何去了解JavaScript引擎的工作原理
    Linux系统编程(27)——线程控制
    Linux系统编程(26)——守护进程
    Linux系统编程(25)——终端
  • 原文地址:https://www.cnblogs.com/jsccc520/p/11669377.html
Copyright © 2020-2023  润新知