在主机上可以telnet 3306,用navicat也可以连接虚拟机数据库,但是就是用java代码连接出错,求大神帮看一下
public static Connection getConnection()
{
String url = "jdbc:mysql://localhost:3306/mysql";
String username = "root";
String password = "root";
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return con;
}
你看一下你的数据库的密码设置了吗
最好看下你的本机地址,数据库服务有没有开启,还有就是驱动jar包
你虚拟机上的防火墙关闭了吗,还不行就装个sp3补丁试试
你的报错信息显示的ip和你代码里的ip貌似不太一致啊
到mysql服务器上,进入mysql/bin目录,执行命令
./mysql -u root -p #用root用户登录,如果是刚装好的,密码为空
use mysql #进入mysql表
update mysql.user set authentication_string=password('123456') where user='root'; #修改密码,xxx处设置自己的密码_
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'xxx' WITH GRANT OPTION; #允许root远程访问权限,xxx处是自己设置的密码
FLUSH PRIVILEGES; #使配置生效
使用修改后的密码登录
上面的123456和xxx处都改成你自己设的密码,
1.看看jar包合不合适
2.在链接处加上?useUnicode=true&characterEncoding=utf-8
3.用户名密码都写数据库的
1.看看jar包合不合适
2.在链接处加上?useUnicode=true&characterEncoding=utf-8
3.用户名密码都写数据库的
4.Class.forName("com.mysql.jdbc.Driver"); 改成
Class.forName("com.mysql.jdbc.Driver").newInstance();
1、错误提示,数据库加了密码但是"root"不正确,确保你的用户密码跟你的MySql数据库一致
2、密码尽量为数字,不要和用户一样,当然这只是个人的看法
3、我的设置 jdbc:mysql://ip:port/数据库名?useUnicode=true&characterEncoding=utf-8
你直接用的java工程?加mysql的驱动jar包了么