java通过JDBC与MySQL连接授权问题
搞了⼀晚上,终于弄通了!
其实就是:MySQL权限问题,希望后来的朋友可以少⾛些弯路,尽快解决问题。
正常登陆 MySQL,root,password 都正确,但在Java中⽤以下⽅法
总显⽰错误:Exception in thread "main" java.sql.SQLException: Access denied for user 'ro
// 1.加载数据访问驱动
Class.forName("sql.jdbc.Driver");
//2.连接到数据"库"上去
Connection conn= Connection("jdbc:mysql://localhost:3306/practice?characterEncoding=GBK", "root", "123456");
//3.获得语句执⾏平台, 通过数据库连接对象,获取到SQL语句的执⾏者对象
// con对象调⽤⽅法 Statement createStatement() 获取Statement对象,将SQL语句发送到数据库
// 返回值是 Statement接⼝的实现类对象,,在mysql驱动程序
Statement stat = ateStatement();
// 4.执⾏sql语句
// 通过执⾏者对象调⽤⽅法执⾏SQL语句,获取结果
// int executeUpdate(String sql) 执⾏数据库中的SQL语句, insert delete update
// 返回值int,操作成功数据表多少⾏
int row = uteUpdate
("INSERT INTO sort(sname,sprice,sdesc) VALUES('汽车⽤品',50000,'疯狂涨价')");
System.out.println(row);
//6.释放资源 ⼀堆close()
stat.close();
conn.close();
解决⽅法:
⼀:打开MySQL⽬录下的my.ini⽂件,在⽂件的最后添加⼀⾏“skip-grant-tables”,保存并关闭⽂件
(WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)
⼆:重启MySQL服务。
下载mysql为什么下载不了三:⽆密码登录,在命令⾏中执⾏:
mysql -u root
四:授权
mysql>
grant all privileges on *.* to identified by 'root' with grant option;
关键词解释:
:
是⽤户
root:是密码
问题⼀:发现⽆密码条件下,没有授权的写权限
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解决⽅法:mysql> set global read_only=0;//(关掉新主库的只读属性)
mysql>flush privileges;
mysql>set global read_only=1;//(读写属性) mysql>flush privileges;
(注意刷新是必须项)
第五步:重启数据库
最后便可实现 Java与MySQL的连接了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论