美文网首页
mysql重建数据库后配置修改

mysql重建数据库后配置修改

作者: 禅兜 | 来源:发表于2018-08-14 16:55 被阅读0次

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

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

    切换到mysql数据库

    >user mysql

    查询用户的权限信息

    >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表的各用户的权限信息

    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

    相关文章

      网友评论

          本文标题:mysql重建数据库后配置修改

          本文链接:https://www.haomeiwen.com/subject/yrnvmftx.html