MySQ问题解决 - 1130、1418、1215、1064、无服务证书警告

1. SSL无服务证书警告

Sun Mar 15 00:25:15 CST 2020 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.


数据库连接时:添加useSSL=false

spring:
    datasource:
        url: jdbc:mysql://localhost:3306/graduation_design?serverTimezone=UTC&useSSL=false

2. 1064 - 再三检查语法没问题,可能是关键字冲突导致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K4eP1h4q-1587799766958)(en-resource://database/29960:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLyc9Ehx-1587799766964)(en-resource://database/29962:1)]

3. 1215 - 不能添加外键约束

① 查看数据类型是否一致

② 如果你需要设置主外键的setNull,则查看列是否是能为null

4. 单表不可group by

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tdRxlTZ-1587799766971)(en-resource://database/31780:1)]

打开mysql配置文件 my.cnf 或者 my.ini - 添加下列配置即可

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

5. 1418 - 函数(自定义函数、存储过程)声明不确定

由于主从复制的原因。导致如果函数的返回值不是确定的,很可能会导致主数据库与从数据库之间的数据不一致。( log-bin变量开启 )

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2K3aJuz-1587799766977)(en-resource://database/31796:1)]

方法类型
1. DETERMINISTIC - 函数不修改数据
2. not deterministic - 返回的值不确定
3. modifies data - 有修改表数据的SQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ht1xLtCh-1587799766984)(en-resource://database/31798:1)]



强制开启可创建函数 - 即可解决

SET GLOBAL log_bin_trust_function_creators = 1;

6. 1130(ip被限制登录)、1045(拒绝登录)

步骤1. mysql配置文件 - 添加下列配置

# 账号登录无需密码 - 主从复制的时候必须把这个配置去掉的哦!
skip-grant-tables

步骤2. 进入mysql

mysql -uroot -p随意字符

use mysql

#user表时复合主键(user、host)
select user,authentication_string,host from user;

# 更新用户密码 - 1045错误解决
UPDATE user
    SET authentication_string = PASSWORD('root'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
    
# 更新用户访问ip - 任何host都可以访问该数据库 - 1130错误解决
 update user set host='%' where user='root';
 
 # 千万别忘这一步 - 刷新
 flush privileges;

步骤3. mysql配置文件 - 删除下列配置

skip-grant-tables

步骤4. 重启服务即可用密码登录了

mysql -uroot -proot;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值