ERR_SSL_WRONG_VERSION_NUMBER
jpeace08 opened this issue · comments
Hi all, i clone your repo and run in my local. I use mysql/mysql-server:8 and node v20.9.0. When i access to path "/", i get an exception:
⨯ Internal error: TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11372:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Cause: [Error: 00683F3B8E7F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354: ] { library: 'SSL routines', reason: 'wrong version number', code: 'ERR_SSL_WRONG_VERSION_NUMBER' } ⨯ Internal error: TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11372:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) digest: "3747308182"
Anyone could help me? Thanks so much!
Can you try using planetscale mysql. I heard on twitter that, drizzle orm doesn't work quite well with local mysql if planetscale sql is used.
Tested it locally ( OSX with DBngin ) with "mysql2": "3.7.1"
.
Works without any issues.
// drizzle.config.ts
import { type Config } from "drizzle-kit"
import { env } from "@/env.mjs"
const uri = [
"mysql://",
env.DB_USERNAME,
":",
env.DB_PASSWORD,
"@",
env.DB_HOST,
":3306/",
env.DB_NAME,
].join("")
export default {
schema: "./src/db/schema.ts",
driver: "mysql2",
out: "./drizzle",
dbCredentials: { uri },
tablesFilter: ["shadcn-table_*"],
} satisfies Config
// src/env.mjs
import { createEnv } from "@t3-oss/env-nextjs"
import { z } from "zod"
export const env = createEnv({
server: {
NODE_ENV: z
.enum(["development", "test", "production"])
.default("development"),
DB_USERNAME: z.string(),
DB_HOST: z.string(),
DB_NAME: z.string(),
DB_PASSWORD: z.string(),
},
client: {},
runtimeEnv: {
NODE_ENV: process.env.NODE_ENV,
DB_NAME: process.env.DB_NAME,
DB_HOST: process.env.DB_HOST,
DB_USERNAME: process.env.DB_USERNAME,
DB_PASSWORD: process.env.DB_PASSWORD
},
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
emptyStringAsUndefined: true,
})
// src/db/index.ts
import { drizzle } from "drizzle-orm/mysql2"
import mysql from "mysql2/promise"
import { env } from "@/env.mjs"
import * as schema from "./schema"
const connection = await mysql.createConnection({
host: env.DB_HOST,
user: env.DB_USERNAME,
password: env.DB_PASSWORD,
database: env.DB_NAME,
})
export const db = drizzle(connection, { schema, mode: "default" })
The project is using neon (via postgressql) now.
So closing the issue.