zoukankan      html  css  js  c++  java
  • mysql若干问题

    一、Host ip is not allowed to connect to this MySql server

      解决方法:这是因为你的账号不允许远程登录,只能在localhost。只要在localhost的那台电脑,登录mysql后,更改“mysql”数据库中的“user”表里的“host”项,从“localhost”改成“%”

    mysql -u root -pvmwaremysql>use mysql;
    mysql>update user set host = '%' where user = 'root'; 
    mysql>flush privileges;
    mysql>select host, user from user;
    mysql>quit
    

    二、The user specified as a definer (‘') does not exist。

      MYSQL中,执行存储过程时会检查过程的定义用户是否存在,如果不存在,即使当前用户有execute权限,也会报错。

      解决方法:如果想要继续执行这些过程就必须修改过程的定义用户,语句如下:

      mysql>update mysql.proc set DEFINER='usename' WHERE NAME='proc_name' AND db='mydb';

    三、设置mysql不自动提交,设置成需commit才有效的功能,操作方法如下:

      一般情况下,MySQL都是自动提交的,即autocommit=1;若要手动提交则需将autocommit设置为0,具体步骤如下:

      1.确定连接的用户没有super权限,root用户拥有super权限,所以不用root用户进行连接,这里我们可以选择一个自己创建的没有super权限的用户进行连接。

      2.执行SQL语句“select @@autocommit;”结果为1.找到MySQL的配置文件即.ini文件 (这里注意有的安装版的MySQL可能会放在一个隐藏的文件夹里面一般是C:/PragramData,我们可以直接在真个计算机范围内进行搜索,就会发现my.ini文件),将该配置文件的[mysqld]的下面加上这样一行:init_connect='SET autocommit=0'。

      3.重新启动MySQL服务,然后再执行“select @@autocommit;”就会发现结果为0,即修改成功。

      4.这里以navicat这个工具为例,会发现修改数据之后,点击下方的“√”,然后关闭该窗口再重新打开,数据更改没有提交,这个时候我们需要换一种方法来进行数据修改。

      5.新建查询,然后执行“select * from <待修改数据的表名>;”, 在出现的结果集中进行更改,然后再手动输入commit,即可完成数据修改,并手动提交。

  • 相关阅读:
    Hibernate延迟加载、三种状态、脏检查 缓存
    Hibernate入门案例
    Hibernate入门案例及增删改查
    PasswordHelper 对user对象的password进行加密重设
    shrio 加密/编码
    shrio int配置
    shrio 授权
    JUnit中assertEquals和assertSame方法的不同
    shrio 身份认证流程-Realm
    shrio 登录/退出
  • 原文地址:https://www.cnblogs.com/wmcoder/p/5646026.html
Copyright © 2011-2022 走看看