[物語を忘れました]°のブログへようこそ

项目部署到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

晚安

posted @ 2019-10-14 03:20  故事我忘了°  阅读(608)  评论(0编辑  收藏  举报