mysql 重建mysql_mysql重建数据库后配置修改

1.用户root用户登陆mysql数据库

# mysql -h127.0.0.1 -uroot -pmysql@123 -P 3306

切换到mysql数据库

>user mysql

912aed86ea8b

查询用户的权限信息

>SELECT host,user,password_expired,Grant_priv,Super_priv FROM user;

如果我们用Navicat通过IP的方式访问,是访问不到mysql数据库的。

可以看到,用户对应的主机是localhost,而不是%,所以不能连接。

处理方法:

2、授权root用户可以远程登陆

>GRANTALLON*.*TO'root'@'%';

'%' - 所有情况都能访问

‘localhost’ - 本机才能访问

’111.222.33.44‘ - 指定 ip 才能访问

3.创建用户

>create user 'test'@'%' identified by 'xxxxxx'

4.创建数据库

>create database if not exists bufftify default character set = 'utf8';

5.为用户test创建操作bufftify数据库的权限

grant all privileges on bufftify .* to 'test'@'%';

当执行该操作的时候,会报Error Code: 1044. Access denied for user 'root'@'%' to database错误

查询下mysql下user表的各用户的权限信息

912aed86ea8b

Grant_priv和Super_priv两个为N,没有开启权限执行

执行下面的操作 :

>UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

重新启动数据

>mysqld restart

重启成功后,在执行权限的操作,就可以了。

参考地址:https://blog.csdn.net/eagle89/article/details/77894773

6.在创建数据库的其他执行权限,存储过程,函数

grant execute on bufftify .* to 'test'@'%';

grant create routine on bufftify .* to 'test'@'%';

grant alter  routine on bufftify .* to 'test'@'%';

7.-- 命令刷新一下权限

>flush privileges;

8.在上面的准备工作做完后,启动项目,还是报错,

mysql 报错This function has none of DETERMINISTIC,主要是项目启动的时候去创建存储过程,

解决方法:

SQL code

mysql> show variables like'log_bin_trust_function_creators';

+---------------------------------+-------+

| Variable_name          | Value |

+---------------------------------+-------+

| log_bin_trust_function_creators | OFF|

+---------------------------------+-------+

mysql> setgloballog_bin_trust_function_creators=1;

mysql> show variables like'log_bin_trust_function_creators';

+---------------------------------+-------+

| Variable_name          | Value |

+---------------------------------+-------+

| log_bin_trust_function_creators | ON|

参考地址:https://www.jb51.net/article/97037.htm

9.配置重启后,启动项目又报了mysql中Invalid default value for 'stime'错误问题,参考网上的方法排查,这种报错多是你mysql升级到5.7而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是datetime。想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0

mysql>show variableslike'sql_mode';+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+|Variable_name|Value|+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+|sql_mode|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION|+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+1rowinset(0.00 sec)

临时修改:

mysql>session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

Query OK, 0rows affected,1warning (0.00 sec)

mysql>

永久修改:

可以直接修改my.cnf文件

例如:     vim /etc/my.cnf

在[mysqld]下面添加如下列:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

记得修改my.cnf文件后,需要重启启动mysql

再次启动项目,就可以了

参考地址:https://www.cnblogs.com/wpjamer/p/7057577.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值