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,即可完成数据修改,并手动提交。

posted @ 2016-07-06 10:28  WKellyL  阅读(187)  评论(0编辑  收藏  举报