Mysql默认关闭远程登录权限,需要给远程用户添加权限才能连接。
通过select*from mysql.user\G 查看用户及权限。
一.允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:
1、在本机先使用root用户登录mysql:
mysql -u root -p"password"
2、进行授权操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
3、重载授权表:flush privileges;
二.允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下:
1、在本机先使用root用户登录mysql:
mysql -u root -p"password"
2、进行授权操作:
GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "password" WITH GRANT OPTION;
3、重载授权表:flush privileges;
‘贰’ java 连接远程mysql 配置的数据源jdbc.url=jdbc:mysql://localhost:3306/dl_table,把localhost:3306
先拿工具连一下远程的ip+port,比如用navicat一类的,看能连上不,如果连不上,可能以下2个原因:
1、远程的IP或者端口无法访问,这个只能从网络上想办法,看看是不是过了NAT,或者是不是有防火墙
2、远程的mysql仅允许本地访问,这个要改帐号连接权限
‘叁’ java用局域网连接远程mysql数据库
这个很简单,和你连接自己本地的Mysql一样,只是将目标主机的地址改为远程主机的IP地址,核心代码如下:
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://远程主机IP:3306/","用户名","密码");
System.out.println(“ 远程Mysql连接测试: ” + conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
‘肆’ 请问单纯用jdbc能连接 远程的数据库吗
可以,把地址换了就可以了。
远程必须有权限
‘伍’ 怎么用jdbc连接mysql数据库
首先导入驱动jar包,程序是
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class connectionMySql {
private static Connection connection;
static{
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/purview";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.print("加载驱动失败");
e.printStackTrace();
}
try {
connection=DriverManager.getConnection(url, "root", "root");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() {
return connection;
}
public static void main(String [] args) {
Connection con=connectionMySql.getConnection();
if(!con.equals("")){
System.out.print("数据库连接成功,连接id是:"+con);
}
}
}
‘陆’ jdbc怎么连接mysql数据库
首先导入驱动jar包,程序是
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class connectionMySql {
private static Connection connection;
static{
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/purview";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.print("加载驱动失败");
e.printStackTrace();
}
try {
connection=DriverManager.getConnection(url, "root", "root");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() {
return connection;
}
public static void main(String [] args) {
Connection con=connectionMySql.getConnection();
if(!con.equals("")){
System.out.print("数据库连接成功,连接id是:"+con);
}
}
}
‘柒’ jdbc远程连接mysql
看看这个是否对你有帮助
远程访问MySQL
帐号不允许从远程登陆,只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改成"%"
解决方法:
1、改表法。【可以使用Navicat】
mysql -uroot -pvmwaremy
sql>use mysql;
mysql>updateuser set host = '%' where user = 'root';
mysql>select host, user fromuser;
mysql>FLUSH RIVILEGES
2、授权法。 你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALLPRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALLPRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword'WITH GRANT OPTION;
如果以上方法还不能使远程用户访问MySQL, 则需要修改windows 下的host 文件,增加远程用户IP地址
‘捌’ 怎么用jdbc和mysql数据库连接
StringdriverName="com.mysql.jdbc.Driver";//加载JDBC驱动
StringdbURL="jdbc:mysql://localhost:3306/test";//连接服务器和数据库test
StringuserName="sa";//默认用户名
StringuserPwd="sa";//密码
java.sql.ConnectiondbConn;
try{
Class.forName(driverName).newInstance();
dbConn=java.sql.DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("ConnectionSuccessful!");//如果连接成功控制台输出ConnectionSuccessful!
}catch(ClassNotFoundExceptione){
System.out.println("没有找到驱动");
}catch(Exceptione){
//TODO:handleexception
e.printStackTrace();
}
还是直接上代码吧。