<small id='cp8Ri'></small><noframes id='cp8Ri'>

  • <legend id='cp8Ri'><style id='cp8Ri'><dir id='cp8Ri'><q id='cp8Ri'></q></dir></style></legend>
    <i id='cp8Ri'><tr id='cp8Ri'><dt id='cp8Ri'><q id='cp8Ri'><span id='cp8Ri'><b id='cp8Ri'><form id='cp8Ri'><ins id='cp8Ri'></ins><ul id='cp8Ri'></ul><sub id='cp8Ri'></sub></form><legend id='cp8Ri'></legend><bdo id='cp8Ri'><pre id='cp8Ri'><center id='cp8Ri'></center></pre></bdo></b><th id='cp8Ri'></th></span></q></dt></tr></i><div id='cp8Ri'><tfoot id='cp8Ri'></tfoot><dl id='cp8Ri'><fieldset id='cp8Ri'></fieldset></dl></div>
      1. <tfoot id='cp8Ri'></tfoot>

        • <bdo id='cp8Ri'></bdo><ul id='cp8Ri'></ul>

        Java SSH 秘钥连接mysql数据库的方法

        下面是详细讲解“Java SSH 秘钥连接mysql数据库的方法”的完整攻略,步骤如下:
        <tfoot id='Al4x4'></tfoot>

        <small id='Al4x4'></small><noframes id='Al4x4'>

          <bdo id='Al4x4'></bdo><ul id='Al4x4'></ul>

          <legend id='Al4x4'><style id='Al4x4'><dir id='Al4x4'><q id='Al4x4'></q></dir></style></legend>

            <i id='Al4x4'><tr id='Al4x4'><dt id='Al4x4'><q id='Al4x4'><span id='Al4x4'><b id='Al4x4'><form id='Al4x4'><ins id='Al4x4'></ins><ul id='Al4x4'></ul><sub id='Al4x4'></sub></form><legend id='Al4x4'></legend><bdo id='Al4x4'><pre id='Al4x4'><center id='Al4x4'></center></pre></bdo></b><th id='Al4x4'></th></span></q></dt></tr></i><div id='Al4x4'><tfoot id='Al4x4'></tfoot><dl id='Al4x4'><fieldset id='Al4x4'></fieldset></dl></div>
                <tbody id='Al4x4'></tbody>

                • 下面是详细讲解“Java SSH 秘钥连接mysql数据库的方法”的完整攻略,步骤如下:

                  1. 生成密钥文件

                  在本地电脑上生成密钥文件,使用如下命令:

                  $ ssh-keygen -t rsa -b 2048
                  

                  然后你会看到生成了两个文件:id_rsaid_rsa.pub,这两个文件一个是私钥,一个是公钥。将公钥文件 id_rsa.pub 发送给服务器管理员,并让他把公钥添加到服务器上的~/.ssh/authorized_keys 文件中。

                  2. 开启SSH转发

                  在你的 Java 代码中需要使用 SSH 转发来访问远程 MySQL 服务器。你需要在本地启动 SSH 连接并配置端口转发(-forwarding)功能。假设你的私钥文件为 id_rsa,服务器的 IP 地址为 123.123.123.123,用户名为 root ,则可以使用如下命令:

                  $ ssh -i /path/to/id_rsa -fN -L 33306:localhost:3306 root@123.123.123.123
                  

                  在这个命令中,-i 表示使用指定的私钥文件,-fN 表示将 SSH 连接作为守护进程在后台运行,并且不打开远程 shell。 -L 表示端口转发的本地端口 33306将被转发到远程服务器的本地端口 3306

                  3. 配置 MySQL 数据库连接

                  在 Java 代码中使用如下配置信息连接远程 MySQL 数据库:

                  spring.datasource.driver-class-name=com.mysql.jdbc.Driver
                  spring.datasource.url=jdbc:mysql://localhost:33306/your_schema?autoReconnect=true&useSSL=false
                  spring.datasource.username=your_root_user_name
                  spring.datasource.password=your_root_password
                  

                  spring.datasource.url 中的 localhost:33306 是转发后的本地端口号,your_schema 是你要连接的数据库名称。

                  示例

                  下面给出两个示例说明。

                  示例 1

                  一个名为 SSHDatabaseConnection 的类,连接远程的 MySQL 数据库,使用 Spring 框架的 JDBC 与数据库进行交互。代码如下:

                  import org.springframework.jdbc.datasource.DriverManagerDataSource;
                  
                  public class SSHDatabaseConnection {
                      public static void main(String[] args) {
                          DriverManagerDataSource dataSource = new DriverManagerDataSource();
                          dataSource.setDriverClassName("com.mysql.jdbc.Driver");
                          dataSource.setUrl("jdbc:mysql://localhost:33306/your_schema?autoReconnect=true&useSSL=false");
                          dataSource.setUsername("your_root_user_name");
                          dataSource.setPassword("your_root_password");
                          // ... 使用 Spring JDBC 进行相应的数据库操作 ...
                      }
                  }
                  

                  示例 2

                  使用 Mybatis 框架连接远程的 MySQL 数据库。代码中使用的是 Spring Boot 框架启动的应用。

                  import org.apache.ibatis.session.SqlSession;
                  import org.springframework.beans.factory.annotation.Autowired;
                  import org.springframework.jdbc.datasource.DataSourceTransactionManager;
                  import org.springframework.stereotype.Service;
                  import org.springframework.transaction.annotation.Transactional;
                  import javax.sql.DataSource;
                  
                  @Service
                  public class UserService {
                      @Autowired private DataSource dataSource;
                  
                      @Autowired private DataSourceTransactionManager dataSourceTransactionManager;
                  
                      @Autowired private MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean;
                  
                      @Transactional
                      public User getUser(long id) {
                          SqlSession sqlSession = mybatisSqlSessionFactoryBean.getObject().openSession(true);
                          try {
                              // 获取 mapper 实例
                              UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                              return userMapper.findById(id);
                          } finally {
                              sqlSession.close();
                          }
                      }
                  }
                  

                  其中的 DataSourceDataSourceTransactionManager 的配置与示例 1 中相同,这里不再赘述。MybatisSqlSessionFactoryBean 是 Mybatis 框架提供的一个工厂 Bean,其配置如下:

                  import org.mybatis.spring.SqlSessionFactoryBean;
                  import org.springframework.beans.factory.annotation.Autowired;
                  import org.springframework.core.io.Resource;
                  import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
                  import org.springframework.stereotype.Component;
                  import javax.sql.DataSource;
                  import java.io.IOException;
                  
                  @Component
                  public class MybatisSqlSessionFactoryBean extends SqlSessionFactoryBean {
                      @Autowired private DataSource dataSource;
                      @Override
                      public void afterPropertiesSet() throws Exception {
                          PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
                          try {
                              // 扫描 Mybatis 配置文件
                              Resource[] resources = resolver.getResources("classpath:/mybatis/mapper/*.xml");
                              setDataSource(dataSource);
                              setMapperLocations(resources);
                          } catch (IOException e) {
                              throw new RuntimeException(e);
                          }
                      }
                  }
                  

                  这里将 Mybatis 的 mapper 配置文件放到 classpath:/mybatis/mapper/ 目录下。Mybatis 的 mapper 配置文件与 Java 定义的 DAO 接口对应,所以还需要一个名为 UserMapper 的接口:

                  public interface UserMapper {
                      User findById(long id);
                  }
                  

                  这个接口对应的查询语句需要写在 classpath:/mybatis/mapper/UserMapper.xml 文件中。

                  到此为止,我们就完成了使用 Java SSH 秘钥连接 MySQL 数据库的方法的攻略了。

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  下面是针对PostgreSQL中的权限问题的完整攻略。
                  MySQL是一种流行的关系型数据库系统,它提供了多种时间类型和模式,用于存储和处理时间数据。本文将详细介绍MySQL时间类型和模式的详细攻略。
                  首先在官网下载CentOS7镜像,并在VMware虚拟机中新建一台CentOS7虚拟机,将镜像挂载到虚拟机中并启动。
                  首先,当我们使用Spring Boot开发项目时,可能会遇到Error starting ApplicationContext错误,一般这种错误是由于配置文件、依赖包或者代码逻辑等原因引起的。下面我将提供一条包含两条详细示例说明的完整攻略,用来解决上述问题。
                  下面我将详细讲解如何为PostgreSQL数据库中的用户授予权限和撤销权限,包括两个实例。
                  MySQL中出现lock wait timeout exceeded问题的原因是由于两个或多个事物同时请求相同的资源造成的,并且在某一时刻至少一个事务无法获取资源,超过了MySQL默认的等待时间,从而导致事务失败。这种问题的出现会极大地影响数据库的性能和并发能力。
                      <bdo id='4te5M'></bdo><ul id='4te5M'></ul>

                        <small id='4te5M'></small><noframes id='4te5M'>

                      • <legend id='4te5M'><style id='4te5M'><dir id='4te5M'><q id='4te5M'></q></dir></style></legend>
                        <i id='4te5M'><tr id='4te5M'><dt id='4te5M'><q id='4te5M'><span id='4te5M'><b id='4te5M'><form id='4te5M'><ins id='4te5M'></ins><ul id='4te5M'></ul><sub id='4te5M'></sub></form><legend id='4te5M'></legend><bdo id='4te5M'><pre id='4te5M'><center id='4te5M'></center></pre></bdo></b><th id='4te5M'></th></span></q></dt></tr></i><div id='4te5M'><tfoot id='4te5M'></tfoot><dl id='4te5M'><fieldset id='4te5M'></fieldset></dl></div>
                          <tbody id='4te5M'></tbody>
                        <tfoot id='4te5M'></tfoot>