mysql数据库连接Connection refused问题

数据库编程过程中,这个问题可以说是最让人头疼了,因为造成它的原因可能很多,只有一个个试验、检查才可以排错,可以以下面的顺序进行检查

1.看连接地址是否正确,端口是否正确

2.看目标host上数据库服务是否开启

3.看连接字串是否正确,尤其是用户名,密码

如果上面的问题都检查过没问题的话,基本可以确定是数据库权限配置问题了,下面以mysql5.0数据库为例说明解决方法

在数据库服务器上使用root账户登录数据库,运行sql语句

GRANT 权限 ON 数据库.表 TO '用户'@'clienthost' IDENTIFIED BY '密码' WITH GRANT OPTION

例如

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

这句话将所有数据库所有表的所有权限赋予从任何客户机登录的root账户,需要密码进行验证。

建议不要使用root账户从远程登入,这个有可能会阻止在本地使用root账户,还要通过远程的方式修改root权限才能在本地使用root,可以使用下面的sql:

GRANT ALL PRIVILEGES ON somedb.* TO 'someuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

这句sql将somedb的所有表的所有权限赋予了someuser用户,如果原来数据库没有someuser这个用户,那么将以现在的权限配置创建新用户,如果已经有了该用户则只是修改其权限。

至于具体权限如何分配,可以查看mysql帮助文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用[1]中提供的信息,"Connection refused: connect"错误通常是由于无法建立与MySQL数据库的连接而引起的。这可能是由于以下几个原因导致的: 1. MySQL服务器未运行或未启动:确保MySQL服务器正在运行,并且已经启动。可以通过检查MySQL服务器的状态来确认。 2. MySQL服务器的端口号不正确:默认情况下,MySQL服务器使用3306端口。如果您的MySQL服务器使用不同的端口号,确保在连接时指定了正确的端口号。 3. 防火墙或网络问题:防火墙或网络设置可能会阻止您的应用程序与MySQL服务器建立连接。确保防火墙允许应用程序访问MySQL服务器,并且网络连接正常。 以下是一个示例代码,演示如何在Java中连接MySQL数据库: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLConnectionExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; try { // 加载MySQL JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 Connection connection = DriverManager.getConnection(url, username, password); // 连接成功 System.out.println("Connected to the MySQL database!"); // 关闭连接 connection.close(); } catch (ClassNotFoundException e) { System.out.println("MySQL JDBC驱动程序未找到!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("连接MySQL数据库时出现错误!"); e.printStackTrace(); } } } ``` 注意,上述示例代码中的URL、用户名和密码应根据您的实际情况进行更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值