URL中useUnicode=true&characterEncoding=UTF-8 的作用
简单来说:就是设置编码集为UTF-8,并开启自动重新连接;
复杂来说:指定字符的编码、解码格式;
例如:
mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。
这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,
那么作用有如下两个方面:
1.存数据时:
数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,
然后再将解码后的字节码重新使用GBK编码存放到数据库中。
2.取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,
然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。
注意:
在xml配置文件中配置数据库utl时,要使用&的转义字符也就是&
例如:
<property name="url" value="jdbc:mysql://localhost:3306/mysql
?useUnicode=true&characterEncoding=UTF-8" />
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者
mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
在网络上反复找,终于找到一个可行的解决办法:
方法操作很简单,如下:
//停止mysql服务的运行
/etc/init.d/mysqld stop
//跳过受权表访问
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
//登录mysql
mysql -u root mysql
修改密码
在mysql5.7以下的版本如下:
mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root';
mysql> FLUSH PRIVILEGES;
//把空的用户密码都修改成非空的密码就行了。
在mysql5.7版本如下:
update mysql.user set authentication_string=password('123456') where user='root' ;
mysql> FLUSH PRIVILEGES;
//离开并重启mysql
#/etc/init.d/mysqld restart
#mysql -uroot -p
Enter password: <输入新设的密码newpassword> 。
Mysql设置允许那个ip用那个用户和密码进行登录设置
GRANT ALL PRIVILEGES ON . TO ‘test1’@‘112.49.116.157’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO ‘test1’@‘127.0.0.1’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO ‘test1’@‘119.29.58.114’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO ‘test1’@‘localhost’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
flush privileges;.
Mysql重新安装以后,程序一直无法连接数据库操作
mysql安装完以后,需要重启系统,才能通过tomcat连接
停止:
/usr/local/mysql/bin/mysqladmin -uroot -p shutdow
#123456
启动:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
查看是否启动:netstat -ntulp
这样就可以了
mysql导入txt文件命令
linux导入文件脚本
1、先找到mysqlimport
whereis mysqlimport
2、进入目录,并导入数据
mysqlimport -h 服务器IP地址 -u 用户名 -p密码 数据库名 --fields-terminated-by='分隔符' --columns='字段列表' --local
例如
mysqlimport -h 186.245.12.54 -u test1 -pT123456! sjck
--fields-terminated-by='\@' '/home/test1.txt'
--columns='a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,a12,a13,a14,a15,a16,a17' --local
windows环境导入脚本一样,但是要去掉引号。