Swagger本身是API文档与测试工具,不直接连接数据库。需通过后端应用(如Spring Boot、Node.js、Java等)作为中间层,由后端连接Debian上的数据库(如MySQL、PostgreSQL),并暴露RESTful API供Swagger文档化和测试。
# MySQL示例
sudo systemctl status mysql # 检查状态
sudo systemctl start mysql # 启动服务
sudo systemctl enable mysql # 设置开机自启
jdbc:mysql://<Debian服务器IP>:3306/<数据库名>?useSSL=false&serverTimezone=UTC(Java);mysql://localhost:3306/<数据库名>(Node.js)。USE mysql;
SELECT User, Host FROM user; # 查看用户及允许访问的主机
GRANT ALL PRIVILEGES ON <数据库名>.* TO '<用户名>'@'%' IDENTIFIED BY '<密码>'; # 允许远程访问
FLUSH PRIVILEGES; # 刷新权限
ufw,开放数据库端口(MySQL为3306):sudo ufw allow 3306/tcp # 允许TCP端口3306
sudo ufw reload # 重新加载防火墙规则
pom.xml中添加依赖:<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
npm install mysql2安装驱动。/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),找到bind-address行,修改为:bind-address = 0.0.0.0 # 允许所有IP连接
重启MySQL服务使配置生效:sudo systemctl restart mysql
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 指定Controller包路径
.paths(PathSelectors.any())
.build();
}
}
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // 允许所有来源(生产环境应指定Swagger UI域名)
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
/var/log/syslog)或应用日志(如Spring Boot的logs/目录)会记录详细的连接错误信息。mysql -u 用户名 -p -h localhost)手动连接,确认数据库可访问。通过以上步骤,可系统性解决Swagger与Debian数据库连接中的常见问题。若问题仍存在,建议提供具体的错误日志和代码片段,以便进一步诊断。