Tedious: SQL Server 2012 ECONNREFUSED

에 λ§Œλ“  2012λ…„ 12μ›” 08일  Β·  20μ½”λ©˜νŠΈ  Β·  좜처: tediousjs/tedious

μ΅œμ‹  nodejs와 μ§€λ£¨ν•œ 버전과 λ‹€μŒ μ½”λ“œ μ‚¬μš©:

var μ—°κ²° = ν•„μš”('μ§€λ£¨ν•œ').μ—°κ²°;
var μš”μ²­ = μš”κ΅¬('μ§€λ£¨ν•œ').μš”μ²­;

λ³€μˆ˜ ꡬ성 =
{
μ„œλ²„: '192.168.1.113',
μ‚¬μš©μž 이름: 'myUserName',
λΉ„λ°€λ²ˆν˜Έ: 'myPassword',
μ˜΅μ…˜:
{
λ°μ΄ν„°λ² μ΄μŠ€: 'MyDatabase',
포트: '1433',
μ•”ν˜Έν™”: 사싀,
λ“œλΌμ΄λ²„: 'SQL Server λ„€μ΄ν‹°λΈŒ ν΄λΌμ΄μ–ΈνŠΈ 11.0'
},
디버그:
{
νŒ¨ν‚·: 사싀,
데이터: 사싀,
νŽ˜μ΄λ‘œλ“œ: 사싀,
토큰: 사싀,
둜그: 사싀
}
};

var μ—°κ²° = μƒˆλ‘œμš΄ μ—°κ²°(ꡬ성);

connection.on('μ—°κ²°', 연결됨);
connection.on('정보 λ©”μ‹œμ§€', 정보 였λ₯˜);
connection.on('였λ₯˜ λ©”μ‹œμ§€', infoError);
connection.on('끝', 끝);
connection.on('디버그', 디버그);

κΈ°λŠ₯ μ—°κ²°(였λ₯˜)
{
console.log('연결됨=> ' + 였λ₯˜);
}

ν•¨μˆ˜ 정보 였λ₯˜(정보)
{
console.log('infoError=> ' + 정보);
}

ν•¨μˆ˜ 디버그(λ©”μ‹œμ§€)
{
console.log('디버그=> ' + λ©”μ‹œμ§€);
}

ν•¨μˆ˜ 끝()
{
}

μ‹€ν–‰ν•œ ν›„ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ…Έλ“œ test_sqlserver_tedious.js
디버그 => 192.168.1.113:1433에 λŒ€ν•œ μ—°κ²° - μ‹€νŒ¨ 였λ₯˜: ECONNREFUSED μ—°κ²°
디버그=> μƒνƒœ λ³€κ²½: μ—°κ²° 쀑 -> μ΅œμ’…
디버그 => 192.168.1.113:1433에 λŒ€ν•œ 연결이 λ‹«ν˜”μŠ΅λ‹ˆλ‹€.
디버그=> μƒνƒœ λ³€κ²½: μ΅œμ’… -> μ΅œμ’…

μ–΄λ–€ 아이디어? 방법을 μ•Œλ €μ£Όμ‹œλ©΄ μ†ŒμŠ€ ν…ŒμŠ€νŠΈλ₯Ό λ„μ™€λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

ECONNREFUSEDλŠ” 192.168.1.113이 포트 1433μ—μ„œ μˆ˜μ‹  λŒ€κΈ°ν•˜μ§€ μ•ŠμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

SQL Server μΈμŠ€ν„΄μŠ€μ— ν™•μ‹€νžˆ TCPκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ?
192.168.1.113의 포트 1433으둜 ν…”λ„·ν•  수 μžˆμŠ΅λ‹ˆκΉŒ(μ§€λ£¨ν•œ μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ)? 그렇지 μ•Šμ€ 경우 192.168.1.113μ—μ„œ 직접 포트 1433으둜 ν…”λ„·ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆμ˜€μΈ 경우 SQL Serverκ°€ ν¬νŠΈμ—μ„œ μˆ˜μ‹  λŒ€κΈ°ν•˜κ³  μžˆμ§€ μ•ŠμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 무언가(λ°©ν™”λ²½ λ“±)κ°€ 문제의 μ›μΈμž„μ„ μ‹œμ‚¬ν•©λ‹ˆλ‹€.

λͺ¨λ“  20 λŒ“κΈ€

ECONNREFUSEDλŠ” 192.168.1.113이 포트 1433μ—μ„œ μˆ˜μ‹  λŒ€κΈ°ν•˜μ§€ μ•ŠμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

SQL Server μΈμŠ€ν„΄μŠ€μ— ν™•μ‹€νžˆ TCPκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ?
192.168.1.113의 포트 1433으둜 ν…”λ„·ν•  수 μžˆμŠ΅λ‹ˆκΉŒ(μ§€λ£¨ν•œ μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ)? 그렇지 μ•Šμ€ 경우 192.168.1.113μ—μ„œ 직접 포트 1433으둜 ν…”λ„·ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆμ˜€μΈ 경우 SQL Serverκ°€ ν¬νŠΈμ—μ„œ μˆ˜μ‹  λŒ€κΈ°ν•˜κ³  μžˆμ§€ μ•ŠμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 무언가(λ°©ν™”λ²½ λ“±)κ°€ 문제의 μ›μΈμž„μ„ μ‹œμ‚¬ν•©λ‹ˆλ‹€.

였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

디버그=> μ •μ˜λ˜μ§€ μ•Šμ€ μ—°κ²°:1433 - μ‹€νŒ¨ 였λ₯˜: ECONNREFUSED μ—°κ²°
디버그=> μƒνƒœ λ³€κ²½: μ—°κ²° 쀑 -> μ΅œμ’…
디버그=> μ •μ˜λ˜μ§€ μ•Šμ€ μ—°κ²°:1433 λ‹«νž˜
디버그=> μƒνƒœ λ³€κ²½: μ΅œμ’… -> μ΅œμ’…

    debug=> connection to undefined:1433 closed

undefined 이 μ˜μ‹¬μŠ€λŸ½μŠ΅λ‹ˆλ‹€. 거기에 μ„œλ²„ μ΄λ¦„μ΄λ‚˜ IP μ£Όμ†Œκ°€ ν‘œμ‹œλ  κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„: 192.168.11.8\SQLEXPRESS2008
λ°μ΄ν„°λ² μ΄μŠ€ 포트: 1433

@flybluewolf λ‚΄ 닡변이 관련이 μžˆλ‹€κ³  μƒκ°ν•˜λ―€λ‘œ 문제 #68을 μ‚΄νŽ΄λ³΄μ„Έμš”.

OK μ§€κΈˆ μ—°κ²°λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ°„λ‹¨ν•œ 선택을 μ‹œλ„ν•˜λ©΄ κ·Έλƒ₯ 멈μΆ₯λ‹ˆλ‹€.

디버그 좜λ ₯은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

포트 51981μ—μ„œ μˆ˜μ‹  λŒ€κΈ°ν•˜λŠ” 디버거
디버그 => 127.0.0.1:1433에 연결됨
디버그=> μƒνƒœ λ³€κ²½: μ—°κ²° 쀑 -> SentPrelogin
디버그=> μƒνƒœ λ³€κ²½: SentPrelogin -> SentLogin7WithStandardLogin
infoError=> [객체 개체]
infoError=> [객체 개체]
debug=> νŒ¨ν‚· 크기가 4096μ—μ„œ 4096으둜 변경됨
디버그=> μƒνƒœ λ³€κ²½: SentLogin7WithStandardLogin -> LoggedInSendingInitialSql
디버그=> μƒνƒœ λ³€κ²½: LoggedInSendingInitialSql -> LoggedIn

λ‚΄ μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

var μ—°κ²° = ν•„μš”('μ§€λ£¨ν•œ').μ—°κ²°;
var μš”μ²­ = μš”κ΅¬('μ§€λ£¨ν•œ').μš”μ²­;

λ³€μˆ˜ ꡬ성 =
{
μ„œλ²„: "127.0.0.1",
μ‚¬μš©μž 이름: "μ‚¬μš©μž 이름",
λΉ„λ°€λ²ˆν˜Έ: "μ‚¬μš©μž λΉ„λ°€λ²ˆν˜Έ",
λ°μ΄ν„°λ² μ΄μŠ€: "MyDatabase",
μ˜΅μ…˜:
{
λ°μ΄ν„°λ² μ΄μŠ€: "MyDatabase",
// 포트: "1433",
//μ•”ν˜Έν™”: μ°Έ,
// λ“œλΌμ΄λ²„: "SQL μ„œλ²„ λ„€μ΄ν‹°λΈŒ ν΄λΌμ΄μ–ΈνŠΈ 11.0"
},
디버그:
{
νŒ¨ν‚·: 사싀,
데이터: 사싀,
νŽ˜μ΄λ‘œλ“œ: 사싀,
토큰: 사싀,
둜그: 사싀
}
};

var μ—°κ²° = μƒˆλ‘œμš΄ μ—°κ²°(ꡬ성);

connection.on('μ—°κ²°', 연결됨);
connection.on('정보 λ©”μ‹œμ§€', 정보 였λ₯˜);
connection.on('였λ₯˜ λ©”μ‹œμ§€', infoError);
connection.on('끝', 끝);
connection.on('디버그', 디버그);

κΈ°λŠ₯ μ—°κ²°(였λ₯˜)
{
μ‹€ν–‰λ¬Έ();
}

ν•¨μˆ˜ μ‹€ν–‰λ¬Έ()
{
var request = new Request("Property.PropertyGroupsμ—μ„œ * 선택", function(err, row_count)
{
λ§Œμ•½(였λ₯˜)
{
}
또 λ‹€λ₯Έ
{
console.log(row_count);
}

    connection.close();
});

request.on('row', function(columns)
{
    columns.forEach((function(column)
    {
        console.log(column.value);
    }))
})

}

ν•¨μˆ˜ 정보 였λ₯˜(정보)
{
var dd = 정보;
console.log('infoError=> ' + 정보);
}

ν•¨μˆ˜ 디버그(λ©”μ‹œμ§€)
{
var dd = λ©”μ‹œμ§€;
console.log('디버그=> ' + λ©”μ‹œμ§€);
}

ν•¨μˆ˜ 끝()
{
var dd = '';
}

'netstat -na'λ₯Ό μ‹€ν–‰ν–ˆμ§€λ§Œ UDP 1444 포트λ₯Ό 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

κ·€ν•˜μ˜ μ½”λ“œμ—μ„œ connection.exec...(request) 에 λŒ€ν•œ ν˜ΈμΆœμ„ λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μš”μ²­μ΄ μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” debug=> State change: ... λ©”μ‹œμ§€μ™€ μΌμΉ˜ν•©λ‹ˆλ‹€. 인증이 μ™„λ£Œλ˜λ©΄ μ€‘μ§€λ©λ‹ˆλ‹€.

μ–΄, μ•Œκ² μŠ΅λ‹ˆλ‹€. νŠΈλ¦­μ„ ν–ˆμŠ΅λ‹ˆλ‹€. 정말 κ°μ‚¬ν•©λ‹ˆλ‹€ :D

@adviner 와 @flybluewolf λŠ” 동일인물이며 이 λ¬Έμ œλŠ” ν•œ 가지 문제만 닀루고 μžˆλ‹€κ³  μƒκ°ν•˜μ‹­λ‹ˆκΉŒ?
μ œκ°€ 틀리면 λ‹€μ‹œ μ—΄μ–΄μ£Όμ„Έμš”.

μ•„λ‹ˆ, 두 μ‚¬λžŒμ€ λ‹€λ₯Έ μ‚¬λžŒμž…λ‹ˆλ‹€. λ‚˜λŠ” 포슀트λ₯Ό μ‹œμž‘ν–ˆκ³  μ§€κΈˆ 그것을 μž‘λ™μ‹œν‚¨λ‹€.

μ•ˆλ…•ν•˜μ„Έμš”, 이것을 λ˜μ‚΄λ €μ„œ μ£„μ†‘ν•˜μ§€λ§Œ @advinerκ°€ κ²Œμ‹œν•œ λ§ˆμ§€λ§‰ μ½”λ“œ 쑰각을 μ‚¬μš©ν•˜λŠ” 데 λ¬Έμ œκ°€

디버그=> SERVERt:1433에 연결됨
디버그=> μƒνƒœ λ³€κ²½: μ—°κ²° 쀑 -> SentPrelogin
디버그=> μƒνƒœ λ³€κ²½: SentPrelogin -> SentLogin7WithStandardLogin
debug=> SERVER에 λŒ€ν•œ μ—°κ²°:1433이 λ‹«ν˜”μŠ΅λ‹ˆλ‹€.
디버그=> μƒνƒœ λ³€κ²½: SentLogin7WithStandardLogin -> μ΅œμ’…
debug=> SERVER에 λŒ€ν•œ μ—°κ²°:1433이 λ‹«ν˜”μŠ΅λ‹ˆλ‹€.
디버그=> μƒνƒœ λ³€κ²½: μ΅œμ’… -> μ΅œμ’…

(μ„œλ²„ URL이 κ°€λ €μ‘ŒμŠ΅λ‹ˆλ‹€).

λ°μ΄ν„°λ² μ΄μŠ€λŠ” Azureμ—μ„œ μ‹€ν–‰ 쀑이며 λ…Έλ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λ¨Έμ‹ μ—μ„œ ν…”λ„·μœΌλ‘œ μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

도움을 μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ œκ°€ μ•ŒκΈ°λ‘œλŠ” Azure λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” μ•”ν˜Έν™”λœ 연결이 ν•„μš”ν•©λ‹ˆλ‹€.
κ·Έλž˜μ„œ μ•„λ§ˆλ„ μ—°κ²° μ˜΅μ…˜μ—μ„œ encrypt: true 둜 μ—°κ²°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ? https://github.com/pekim/tedious/issues/65#issuecomment -11765693이 주석 μ²˜λ¦¬λ˜μ–΄ 있기 λ•Œλ¬Έμ— λ¬»μŠ΅λ‹ˆλ‹€.

μ‚¬μš© 쀑인 μ½”λ“œλŠ” connected ν•¨μˆ˜μΈ Connection μ½œλ°±μ—μ„œ 였λ₯˜λ₯Ό ν™•μΈν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 였λ₯˜κ°€ 보고될 수 μžˆμœΌλ―€λ‘œ μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ…Έλ“œ v0.10(및 v0.9)과의 μ•”ν˜Έν™”λœ μ§€λ£¨ν•œ 연결이 λŠμ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. μ’€ 더 μžμ„Έν•œ μ •λ³΄λŠ” #86을 μ°Έμ‘°ν•˜μ„Έμš”. 컀밋이 문제λ₯Ό ν•΄κ²°ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

v0.10 문제λ₯Ό μˆ˜μ •ν•˜λŠ” λ™μΌν•œ 컀밋은 μ•”ν˜Έν™” μ•”ν˜Έλ₯Ό 기본적으둜 RC4-MD5둜 μ„€μ •ν•©λ‹ˆλ‹€. 아직 DES-CBC3-SHAμ—μ„œ μž‘λ™ν•˜λŠ” μ•”ν˜Έν™”λœ 연결을 κ΄€λ¦¬ν•˜μ§€ λͺ»ν–ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μ΄λŠ” λ…Έλ“œ v0.8에도 μ μš©λ©λ‹ˆλ‹€.

λ§ˆμŠ€ν„°μ—μ„œ μ΅œμ‹  μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜μ • 사항을 λ°›μ•„λ³Ό 수 μžˆμŠ΅λ‹ˆκΉŒ?

κ·Έλž˜λ„ μ‹€νŒ¨ν•˜λ©΄ λͺ¨λ“  디버그 좜λ ₯을 μš”μ μ΄λ‚˜ pastebin에 넣을 수 μžˆμŠ΅λ‹ˆκΉŒ? TDS νŒ¨ν‚·μ˜ 16진 덀프λ₯Ό ν¬ν•¨ν•˜μ—¬ λ§Žμ€ μ„ΈλΆ€ 정보λ₯Ό μ–»μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ login7 νŒ¨ν‚·μ—μ„œ 일뢀 μ„ΈλΆ€ 정보λ₯Ό μˆ˜μ •ν•˜κ³  싢을 κ²ƒμž…λ‹ˆλ‹€.

λΉ λ₯Έ 응닡에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. 이전 였λ₯˜κ°€ λ°œμƒν–ˆμ§€λ§Œ 이제 λ‹€μŒκ³Ό 같은 κ²°κ³Όκ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

디버그=> XXX.database.windows.net:1433에 연결됨
디버그=> μƒνƒœ λ³€κ²½: μ—°κ²° 쀑 -> SentPrelogin
디버그=> μƒνƒœ λ³€κ²½: SentPrelogin -> SentTLSSSLNegotiation
디버그=> TLS ν˜‘μƒ(RC4-MD5, TLSv1/SSLv3)
디버그=> μƒνƒœ λ³€κ²½: SentTLSSSLNegotiation -> SentLogin7WithStandardLogin
infoError=> [객체 개체]
{"number":40531,"state":1,"class":11,"message":"μ„œλ²„ 이름을 확인할 수 μ—†μŠ΅λ‹ˆλ‹€. μ„œλ²„ dns 이름(servername.database.windows.net)의 첫 번째 μ„Έκ·Έλ¨ΌνŠΈλ‘œ λ‚˜νƒ€λ‚˜μ•Ό ν•©λ‹ˆλ‹€. ). 일뢀 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ„œλ²„ 이름을 보내지 μ•ŠμŠ΅λ‹ˆλ‹€. 이 경우 μ„œλ²„ 이름은 μ‚¬μš©μž 이름(username@servername)의 μΌλΆ€λ‘œ ν¬ν•¨λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ 두 ν˜•μ‹μ„ λͺ¨λ‘ μ‚¬μš©ν•˜λŠ” 경우 μ„œλ²„ 이름이 μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€."," serverName":"","procName":"","lineNumber":1,"이름":"였λ₯˜","이벀트":"였λ₯˜ λ©”μ‹œμ§€"}
둜그인 μ‹€νŒ¨; ν•˜λ‚˜ μ΄μƒμ˜ errorMessage μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
디버그=> μƒνƒœ λ³€κ²½: SentLogin7WithStandardLogin -> μ΅œμ’…
debug=> XXXX.database.windows.net:1433에 λŒ€ν•œ 연결이 λ‹«ν˜”μŠ΅λ‹ˆλ‹€.
디버그=> μƒνƒœ λ³€κ²½: μ΅œμ’… -> μ΅œμ’…

μ„œλ²„ 이름은 XXX둜 ν‘œμ‹œλ˜λ©°(κ°€μ •) azure db에 λŒ€ν•œ μ—°κ²° λ¬Έμžμ—΄μ˜ μΌλΆ€μž…λ‹ˆλ‹€.

λ§ˆμ§€λ§‰ λ¬Έμ œλŠ” μ—°κ²° λ¬Έμžμ—΄ Everything's working now에 λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!

ν™˜μƒμ μ΄λ‹€.
이것은 master의 μ΅œμ‹  μ½”λ“œμž…λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ μ§€λ£¨ν•œ 릴리슀 λ²„μ „μž…λ‹ˆκΉŒ?

λ§ˆμŠ€ν„°μ—μ„œ μ΅œμ‹  버전 볡제

μΉœμ• ν•˜λŠ” μ „λ¬Έκ°€ μ—¬λŸ¬λΆ„,
λ‚˜λŠ” 같은 였λ₯˜μ— μ§λ©΄ν–ˆμ§€λ§Œ λ¬Έμ œλŠ” 연결이 μ„€μ •λœ ν›„ 였λ₯˜κ°€ λ°œμƒν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€μ— 큰 νŒŒμΌμ„ μ‚½μž…ν•˜κ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μž‘μ€ νŒŒμΌμ—λŠ” λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터 μΆ”κ°€
dbμ—μ„œ μ—΄ κ°€μ Έμ˜€κΈ°
ν…Œμ΄λΈ” 열을 μ„±κ³΅μ μœΌλ‘œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€.
DB에 ν–‰ μΆ”κ°€
μ„±κ³΅μ μœΌλ‘œ μ‚½μž…λœ ν–‰
λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터 μΆ”κ°€
dbμ—μ„œ μ—΄ κ°€μ Έμ˜€κΈ°
ν…Œμ΄λΈ” 열을 μ„±κ³΅μ μœΌλ‘œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€.
DB에 ν–‰ μΆ”κ°€
μ„±κ³΅μ μœΌλ‘œ μ‚½μž…λœ ν–‰
λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터 μΆ”κ°€
dbμ—μ„œ μ—΄ κ°€μ Έμ˜€κΈ°
ν…Œμ΄λΈ” 열을 μ„±κ³΅μ μœΌλ‘œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€.
DB에 ν–‰ μΆ”κ°€
μ„±κ³΅μ μœΌλ‘œ μ‚½μž…λœ ν–‰
λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터 μΆ”κ°€
dbμ—μ„œ μ—΄ κ°€μ Έμ˜€κΈ°
ν…Œμ΄λΈ” 열을 μ„±κ³΅μ μœΌλ‘œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€.
DB에 ν–‰ μΆ”κ°€
{ [ConnectionError: localhost:1433 μ—°κ²° μ‹€νŒ¨ - EADDRINUSE 127 .0.0.1:1433 μ—°κ²°] 이름: 'ConnectionError', λ©”μ‹œμ§€: ' localhost:1433 μ—°κ²° μ‹€νŒ¨ - EADDRINUSE 127.0.0.1:1 433 μ—°κ²°', μ½”λ“œ : 'μ—μ†ŒμΌ“' }

κ·€ν•˜μ˜ 지원에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

@Beniy 이것을 μž¬ν˜„ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” 예제 μ½”λ“œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μΉœμ• ν•˜λŠ” Arthurschreiber,
μ‹€μ œλ‘œ λ¬Έμ œλŠ” ν…μŠ€νŠΈ νŒŒμΌμ„ ꡬ문 λΆ„μ„ν•˜κ³  db에 μ‚½μž…ν•˜κΈ° λ•Œλ¬Έμ— μ½”λ“œμ™€ 관련이 없을 수 μžˆμ§€λ§Œ λ™μΌν•œ 파일과 λ™μΌν•œ μ‘°κ±΄μ΄μ§€λ§Œ λ‹€λ₯Έ μ‹œκ°„μ— ν•΄λ‹Ή 였λ₯˜κ°€ ν‘œμ‹œλ˜λŠ” κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€.
이 μž‘μ—…μ— λŒ€ν•œ λ‹€λ₯Έ 쒅속성을 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆκΉŒ?

감사 ν•΄μš”

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰