5
回答
java tomcat 报错
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   
java.sql.SQLException: The user specified as a definer ( 'root'@'%') does not exist这到底是什么错啊?
举报
wenwen1
发帖于6年前 5回/166阅
共有5个答案 最后回答: 6年前

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

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

但是我已经操作过命令行里面进行如下操作:
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就可以了。
还不是不行啊.
--- 共有 3 条评论 ---
寒焰回复 @wenwen1 : 最简单的的就是修改mysql库的user表中root用户的host为%。%表示匹配所有的客户端 6年前 回复
wenwen1那该怎么办呢?我把数据导入了pwy这个数据,我运行了use pwy;接着show databases;发现只有information_schema,mysql、pwy、test四个数据库,这正常嘛? 6年前 回复
逝水fox不是说你root用户的密码不对了,mysql对用户的识别不只是用户名一个条件。而是 user@host 这个形式,root用户在mysql默认是只有localhost之类的本地的host的。但是你程序匹配到root@'%'去了。改密码什么的没用的 6年前 回复
顶部