一、核心概念先搞懂
- 数据库:存数据的仓库(MySQL 最常用)
- 后端程序:Java/Python/NodeJS/Go 等服务代码
- 连接本质 :后端通过驱动程序,用账号密码 + 地址,和数据库建立 TCP 通信,实现增删改查 CRUD
- 必备 4 个连接参数(所有语言通用)
- host:数据库 IP,本地
127.0.0.1/localhost - port:端口,MySQL 默认 3306
- database:要连接的库名
- user /password:数据库账号密码
- host:数据库 IP,本地
二、四种主流后端最简连接示例(直接复制可用)
1. Node.js(Express)连接 MySQL
1)安装依赖
npm install mysql2
2)db.js 连接文件
const mysql = require('mysql2/promise');
// 创建连接池(推荐,性能更好)
const pool = mysql.createPool({
host: '127.0.0.1',
port: 3306,
user: 'root',
password: '你的数据库密码',
database: 'test_db', // 库名
waitForConnections: true,
connectionLimit: 10
});
// 测试连接
(async () => {
try {
const conn = await pool.getConnection();
console.log('数据库连接成功');
conn.release();
} catch (err) {
console.error('连接失败:', err);
}
})();
module.exports = pool;
2. Python(Flask/Django)pymysql
pip install pymysql
import pymysql
# 建立连接
conn = pymysql.connect(
host="127.0.0.1",
port=3306,
user="root",
password="数据库密码",
database="test_db",
charset="utf8mb4"
)
# 获取游标执行SQL
cursor = conn.cursor()
print("连接成功")
# 关闭
cursor.close()
conn.close()
3. Java SpringBoot(最常用企业后端)
pom.xml 依赖
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
application.yml 配置
spring:
datasource:
host: 127.0.0.1
port: 3306
username: root
password: 你的密码
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8
启动项目自动连接,无需手动写连接代码。
4. Go 语言 GORM
go get gorm.io/driver/mysql
go get gorm.io/gorm
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
dsn := "root:密码@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("连接失败:" + err.Error())
}
println("数据库连接成功", db)
}
三、连接前前置步骤(必做,新手 90% 报错在这里)
-
安装数据库软件:MySQL 8.0 / 5.7
-
启动数据库服务,确保 3306 端口开放
-
登录数据库,创建数据库(示例
test_db)CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4;
-
确认账号密码正确,本地 root 账号允许本地访问
-
关闭防火墙 / 安全软件,避免端口拦截
四、常见报错排查
- Access denied:账号密码错误
- Can't connect MySQL server:数据库没启动、IP / 端口错
- Unknown database:库名不存在,先执行 CREATE DATABASE
- 远程连接失败:MySQL 未开放远程访问权限
五、进阶规范(生产环境)
- 使用连接池,不要每次请求新建连接
- 密码不要硬编码,放入环境变量 / 配置文件加密
- 生产数据库不要用 root 账号,创建专用业务账号
- 增加超时、重连逻辑,防止断连宕机