天南私塾

天行健,君子以自强不息

0%

在项目中执行插入之后发现添到数据库中的时间与实际不一样

例如 我 insert into table (uid,create_time) values(‘a’,’2018-12-20 01:45:00:000’)

执行完毕后,数据库中发现该记录中的create_time值为2018-12-19 17:15:00:000

所有插入的数据都提前了八个小时,并且传入的值确实是2018-12-20 01:45:00:000没错

阅读全文 »

报错如下:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 't.line_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY)

解决:

先查询一下sql_mode

select @@global.sql_mode

它的值为 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

去掉 ONLY_FULL_GROUP_BY,重新设值

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

然后报错就没有了

2018.12.20 1:30更新:

数据库服务重启之后,又会出现此错误

解决方式:

在配置文件中mysqld里面加入:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

例如,我的是windows版本的数据库, 在my.ini中加入

重启服务后就好了.

tomcat启动后,控制台中文乱码

解决方案:

在tomcat配置中,VM options中加入 -Dfile.encoding=UTF-8

重启tomcat,就好了

IDEA安装后

进入网址 http://idea.lanyus.com

点击获取注册码

复制激活码,粘贴到 Activation code

点击OK

之后可能还是破解不成功

前往路径 C:\Windows\System32\drivers\etc

用记事本工具打开hosts文件

在最后一行加入此句

0.0.0.0 account.jetbrains.com

重启后即可

MybatisPlugin插件和ledis(IDEA Redis可视化工具)默认是收费的

之前找到的这个破解方式,作者地址已经被封了,还好还留有破解的包,放硬盘里了

ideaagent v1.2 (破解jar)

Mybatis plugin v3.58 crack (mybatis正版插件)
Iedis v2.56 crack (redis正版插件)
支持 IntelliJ IDEA 2018.1

下载地址:

ideaagent 链接:https://pan.baidu.com/s/1hb7CHytSWsvuOaSBYmwfdw
提取码:bh5g

Mybatis plugin v3.58链接:https://pan.baidu.com/s/1Ffzpe94FDvGJbkMJVc9rrw
提取码:2pkb

Iedis v2.56链接:https://pan.baidu.com/s/1gsFJ4aNrBa-08tZlmLucRg
提取码:nqm3

IntelliJ IDEA 2018.1.3链接:https://pan.baidu.com/s/1evQ12p0dwmBUgukEFdyGUA
提取码:b0y2

我之前有试过其他版本的插件或者其他版本的idea 破解不能成功,所以只能用对应版本的

破解方法

  1. 先安装插件

    进入到setting设置面板,进入plugins,点击安装本地插件Install plugin fromdisk…

分别选择安装Mybatis plugin v3.58Iedis v2.56 crack

可以看到 两个插件已经加入了插件列表 此时重启idea

重启后在此页面可能会卡,我等了很久,最后任务管理器强制关闭了

再次打开以后,可以看到插件是需要付费才给权限

破解

打开 idea.vmoptions (Help -> Edit Custom VM Options…)

最下方插入 -javaagent:E:\ideaagent-1.2.jar

-javaagent: + 破解文件的路径,此路径不可以有中文

然后重启软件

会提示一个认证信息,点击accept

如果idea版本不对,有可能完全打不开程序,点击没反应

去用户目录下,修改idea.exe.vmoptions文件,删除加的那句话即可

破解完成后,破解文件即可删除

方式一 DBExportDoc

在word中,利用ODBC驱动源,OFFICE宏来控制报表输出

作者博客地址:

https://blog.csdn.net/yzsind

下载工具

工具下载:

链接:

https://pan.baidu.com/s/1y1bERGvKM2oftkY_M5zBVg

提取码:mhtd

根据Mysql数据库的版本下载想用的驱动源

也可去官网下载:

https://dev.mysql.com/downloads/connector/odbc/

双击安装ODBC

打开windows控制面板

打开windows控制面板,管理工具,打开ODBC64(请根据版本自行选择)

添加ODBC数据源

点击添加,选择相应版本的Mysql ODBC,点击完成,会出现连接选项

创建数据源

第二步安装成功之后会出现相应的ODBC

8.0版本的会出现两个,一个是 ANSI driver 和 Unicode driver 两个版本。

Unicode driver 版本提供了更多字符集的支持,也就是提供了多语言的支持。而ANSI driver 版本是只针对有限的字符集的范围。

这里以添加8.0Unicode driver为例

数据源名称起名为mysql8

数据源配置

打开word选项,设置宏

启用所有宏

word连接数据源

解压压缩包,打开DBExportDoc V1.0 For MySQL.doc

连接数据库,修改相应的用户名密码以及数据源名称

解压

连接数据库

修改数据源

连接成功

导出数据库表结构

选择相应的表,并导出

选择表导出

第一次尝试就最后导出的一步一直报错,命令无效

后来重启了电脑又好了,此错不知何因

方式二 动软代码生成工具

动软官网: http://www.maticsoft.com/download.aspx

下载动软代码生成工具并解压安装

网盘下载地址:

链接:https://pan.baidu.com/s/1gLDCjofc9-IV3g_9raan6g

提取码:09hq

解压后运行Codematic2.msi安装,安装成功后,桌面出现

运行动软代码生成器

选择新增数据库服务器,选择相应的数据库并连接

然后重启软件

连接服务器,选择数据库文档生成器

选择数据库和表,点击生成

文档就生成好了

方式三. Mysql2docx

安装python环境

官网:

https://www.python.org/downloads/

安装时,勾选加入环境变量

一定要勾选安装PIP插件

安装Mysql2docx插件

打开CMD命令窗口,输入

pip install Mysql2docx

会自动下载安装Mysql2docx插件

安装完提示你升级PIP18,可以不予理会

生成文档

CMD命令框继续输入

python

进入到了python命令模式

然后分别输入执行以下三条命令

from Mysql2docx import Mysql2docx

m=Mysql2docx()

m.do('127.0.0.1','root','password','db_test',3306)

最终会在C盘用户目录下生成文档

我在连接本地localhost时,生成的文档是空的,不知为何,远程连接数据库是没问题,可能是因为Mysql的版本??

Java项目连接数据库报时区错误

The server time zone value ‘???ú±ê×??±??’

解决方案:

为URL添加参数serverTimezone=CTT即可,这里的时区可以根据自己数据库的设定来设置(GMT/UTC )。

Java项目访问数据库报错

Could not create connection to database server. Attempted reconnect 3 times. Giving up.

尝试连接了三次,最后放弃

一开始可能认为是配置的错误,后来发现不是

本地数据库用的是Mysql8.0的版本,而数据库连接驱动mysql-connector-java是5.7的

去maven仓库升级jar的版本后就好了

公司的项目在家里打开以后发现两个类报错

查询资料后发现,JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中删除。这些JAR中可用的类和资源现在以文件中的内部格式存储在lib目录的命名模块中。 可以使用称为jrt的新方案来从运行时映像检索这些类和资源。 依靠这些JAR位置的应用程序将不再工作。

而我家里用的JDK10, 把项目JDK环境换成1.8的版本,就解决了

在下载新的Mysql8.0安装完成后,通过Navicat、sqlyog、或者程序中连接数据库时,提示:Authentication plugin 'caching_sha2_password' cannot be loaded 的错误

mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。

解决方案:

修改用户的密码和加密方式

1.使用cmd命令框进入mysql的bin目录,登录mysql

输入密码时,刚安装完成的用户密码可能为空,直接回车即可

C:\Users\LinPP>E:

E:\>cd E:\mysql-8.0.11-winx64\bin

E:\mysql-8.0.11-winx64\bin>mysql -u root -p

Enter password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

如图,修改了加密方式,并且将密码改为123456,之后即可连接

虽然那几种连接工具能用了 今天使用一款工具发现又出现了同样的问题

解决方案:

Mysql根目录下寻找配置文件 my.ini

若不存在 ,可自行创建

内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[mysqld]
# 设置3306端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

主要是这句

default_authentication_plugin=mysql_native_password

将Mysql的默认加密方式更改为mysql_native_password

之后即可连接