java tomcat 报错

wenwen1 发布于 2012/08/09 20:09
阅读 173
收藏 0
java.sql.SQLException: The user specified as a definer ( 'root'@'%') does not exist这到底是什么错啊?
加载中
0
MrZhang
MrZhang
数据库 用户名不对
0
wenwen1
wenwen1

那怎么改呢?

0
逝水fox
逝水fox

服务器上单独创建一个用户授权给你的应用的机器用,按照具体需求设定权限。

root用户mysql默认不允许本机以外的连接,虽然可以改,但是一般root用户也不应该给应用程序用。最好单独给应用创建用户,限定IP,根据具体需求给权限。

0
wenwen1
wenwen1
但是我已经操作过命令行里面进行如下操作:
1.先在安装目录找到my.ini配置文件,打开配置文件,找到[mysqld]一行,在下面添加skip-grant-tables后保存该文件,重新启mysql动服务。
2.然后在cmd执行 mysql -u root mysql
    mysql>update user set password=password('newpassword') where user='root';
    mysql>Flush privileges;
    其中newpassword为root的新密码。
3.将刚才my.ini配置文件的添加的那一行去掉,最后重新启动mysql就可以了。
还不是不行啊.
寒焰
寒焰
回复 @wenwen1 : 最简单的的就是修改mysql库的user表中root用户的host为%。%表示匹配所有的客户端
wenwen1
wenwen1
那该怎么办呢?我把数据导入了pwy这个数据,我运行了use pwy;接着show databases;发现只有information_schema,mysql、pwy、test四个数据库,这正常嘛?
逝水fox
逝水fox
不是说你root用户的密码不对了,mysql对用户的识别不只是用户名一个条件。而是 user@host 这个形式,root用户在mysql默认是只有localhost之类的本地的host的。但是你程序匹配到root@'%'去了。改密码什么的没用的
0
被风遗忘
被风遗忘
这个不解释.楼上已经给了答案了.
返回顶部
顶部