[解决] Error Code: 1044. Access denied for user 'root'@'%' to database
2016-11-25 20:11
357 查看
今天在学习MyBatis时,学到数据库的存储过程。虽然在学sqlserver时学过,但是mysql上稍微有些不同。而且我用的是sqlyog图形界面工具(就是常说的小海豚)。
首先,这是我的表:
需要创建的存储过程如下:
DELIMITER $
CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)
BEGIN
IF sex_id=0 THEN
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count;
ELSE
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count;
END IF;
END
$
执行时报错:
Error Code: 1044. Access denied for user 'root'@'%' to database
解决办法:
查看用户有没有创建存储过程的权限(我用Sqlyog连接的用户是root,而shost是%):
SELECT host,user,password,Create_routine_priv FROM mysql.user;
因为我用的是%的host,所以修改 where user= ‘%’的,大家登录的用户和host不同的话请根据实际情况选择用户修改。
首先,这是我的表:
create table p_user( id int primary key auto_increment, name varchar(10), sex char(2) ); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_user(name,sex) values('C',"男");
需要创建的存储过程如下:
DELIMITER $
CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)
BEGIN
IF sex_id=0 THEN
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count;
ELSE
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count;
END IF;
END
$
执行时报错:
Error Code: 1044. Access denied for user 'root'@'%' to database
解决办法:
查看用户有没有创建存储过程的权限(我用Sqlyog连接的用户是root,而shost是%):
SELECT host,user,password,Create_routine_priv FROM mysql.user;
如果 Greate_routine_priv 项为N的话则表示没有这个权限,需要修改过来,然后重新启动MySql服务即可。
update mysql.user set Create_routine_priv='Y' where user = '%';因为我用的是%的host,所以修改 where user= ‘%’的,大家登录的用户和host不同的话请根据实际情况选择用户修改。
相关文章推荐
- mysql中解决:Error Code: 1044. Access denied for user 'root'@'%' to database
- Error Code: 1044. Access denied for user 'root'@'%' to database
- [解决] Error Code: 1044. Access denied for user 'root'@'%' to database
- mysql Access denied for user root@localhost错误解决方法总结
- 关于远程访问mysql出现Access denied for user 'root'@'的解决方法
- mySQL 5.7版 解决密码登录失败Access denied for user 'root'@'localhost' (using password: NO)
- 解决mysql的“Access denied for user ‘root’@'localhost’”
- CentOS 7.4下解决登录MySQL时,ERROR 1045 (28000): Access denied for user root@localhost (using password: YES
- ysql Access denied for user root@localhost错误解决方法总结 1045
- Access denied for user 'root'@'localhost' (using password: YES)的一种解决办法
- 解决mysql“Access denied for user 'root'@'IP地址'
- 解决mysql“Access denied for user 'root'@'IP地址'
- 1045 - Access denied for user 'root'@'localhost' (using password: YES) Navicat问题解决
- 解决mysql Access denied for user 'root'@'localhost'
- mysql“Access denied for user 'root'@'localhost'”问题的解决
- 解决mysql“Access denied for user 'root'@'localhost'” .
- 已解决 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 1045 access denied for user 'root'@'localhost' using password yes 问题解决方法
- 【问题解决】小问题记录 -- “Access denied for user 'root'@'localhost' (using password:YES)”
- 解决mysql“Access denied for user 'root'@'localhost'