sadmann7 / shadcn-table

A shadcn table component with server-side sorting, filtering, and pagination.

Home Page:https://table.sadmn.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.