作者:晨钟暮鼓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中&
要用&
代替
改后:
<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&characterEncoding=UTF-8</property>
原理:
我们添加这个的添加的作用是:指定字符的编码、解码格式。
例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:
存数据时:
数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。
取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。
以上,解决
emm,填坑+2
晚安