달력

07

« 2018/07 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

FreeTDS - 리눅스에서 MSSQL 접속하기 - tsql


FreeTDS - tsql 설치

# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz (지금은 버전이 0.91 )
# tar -xvzf freetds-stable.tgz
# cd freetds-0.91
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib
# make -j 4  (CPU core 4개를 사용해서 빠르게 컴파일하기)
# make install


MSSQL 서버설정 추가

/usr/local/freetds/etc/freetds.conf  에 아래 설정을 추가합니다.

MSSQL 2005 이상이라면 tds version = 8.0
MSSQL 2005 미만이라면 tds version = 7.0

[123.123.123.123]
   host = 123.123.123.123
   port = 1433
   tds version = 8.0
   client Charset = utf8


캐릭셋때문에 한글/일본어/중국어 등이 깨지면 client charset 부분을 아래중에서 하나로 바꿔보세요.

문자가 깨질때 아래와 같은 에러가 뜹니다.


Error 2403 (severity 4):
        Some character(s) could not be converted into client's character set.  Unconverted bytes were changed to question marks ('?')


#       locale is "ko_KR.UTF-8"
#       locale charset is "UTF-8"
        # Latin1_General_CI_AS, Korean_Wansung_CI_AS
        #client charset = ko_KR.UTF-8
        #client charset = EUC-KR
        client charset = UTF-8
        #client charset = ANSI_X3.4-1968
        #client charset = MS-ANSI
        #client charset = Korean_Wansung_CI_AS
        #client charset = Latin1_General_CI_AS
        #locale charset = UTF-8
        #locale = ko_KR.UTF-8
        #locale charset = UTF-8


MS-SQL 접속 테스트

   # /usr/local/freetds/bin/tsql -H MSSQL서버아이피 -p MSSQL서버포트 -U 디비계정 -P 디비비밀번호

PHP - mssql 모듈 설치

   # cd /usr/local/src/php-5.2.9/ext/mssql
   # /usr/local/php/bin/phpize
   # ./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config
   # make -j 4
   # cp .libs/mssql.so /PHP_Extension_디렉토리
   # vi /usr/local/php/lib/php.ini
     extension = mssql.so --> 주석 풀기
   # apache 재기동


모듈 설치 확인
phpinfo - mssql 항목을 확인하면 되는데, php -i 옵션으로 확인할 수 있습니다.

   # /usr/local/php/bin/php -i | grep mssql
   mssql
   mssql.allow_persistent => On => On
   mssql.batchsize => 0 => 0
   mssql.charset => no value => no value
   mssql.compatability_mode => Off => Off
   mssql.connect_timeout => 5 => 5
   mssql.datetimeconvert => On => On
   mssql.max_links => Unlimited => Unlimited
   mssql.max_persistent => Unlimited => Unlimited
   mssql.max_procs => Unlimited => Unlimited
   mssql.min_error_severity => 10 => 10
   mssql.min_message_severity => 10 => 10
   mssql.secure_connection => Off => Off
   mssql.textlimit => Server default => Server default
   mssql.textsize => Server default => Server default

   mssql.timeout => 60 => 60


MSSQL 접속 PHP 샘플소스 코드 



Posted by 멋지다마라송
2017.06.06 12:29

MSSQL - Date Function 날짜함수 예제 Tech/MSSQL2017.06.06 12:29

MSSQL - Date Function 날짜함수 예제 


SELECT GETDATE() as Now_DateTime
2017-06-06 11:26:54.830

SELECT CONVERT(Date, GETDATE()) as Now_Date
2017-06-06

SELECT CONVERT(nvarchar(10), GETDATE(), 120) as Now_Date
2017-06-06

SELECT DATEDIFF(HOUR, '2017-06-01', GETDATE()) as DiffHour 
131

SELECT DATEDIFF(HOUR, '2017-06-01 00:00:00.000', GETDATE()) as DiffHour
131

-- 특정 날짜로부터 오늘까지의 차이 (일)
SELECT DATEDIFF(DAY, '2017-06-01', GETDATE()) as DiffDay
5

-- 특정 날짜로부터 오늘까지의 차이 (일)
SELECT DATEDIFF(DAY, '2017-06-01 00:00:00.000', GETDATE()) as DiffDay
5

-- 어제 날짜 구하기 
SELECT dateadd(d, -1, getdate()) 
2017-06-05

-- 보기좋게 날짜 변경하기 
SELECT 
   ISNULL(
      CONVERT(nvarchar(10), GETDATE(), 120)+' '+CONVERT(nvarchar(8), GETDATE(), 108)
    , '0000-00-00 00:00:00') 
2017-06-06 11:26:54
Posted by 멋지다마라송

디비 리스토어 후 사용자 복구하기.

EXEC sp_change_users_login 'auto_fix', 'ID', null, 'PW';


Posted by 멋지다마라송
2017.05.24 00:21

MSSQL - 시퀀스 sequence 생성/수정 Tech/MSSQL2017.05.24 00:21

MSSQL - 시퀀스 sequence 생성/수정

CREATE SEQUENCE [dbo].[SEQ_MemberNo] 
 AS [int]
 START WITH 1
 INCREMENT BY 1
 MINVALUE -2147483648
 MAXVALUE 2147483647
 CACHE  100 
-- CYCLE -- 반복되는 시퀀스로 만들때 
GO


-- 다음 시퀀스값 확인

SELECT NEXT VALUE FOR SEQ_CouponNo;    

-- 시퀀스 시작값 수정
Alter Sequence [dbo].[SEQ_MemberNo] restart with 99999;


Posted by 멋지다마라송

MSSQL 에서 특정 디비를 백업받거나 FullText Search 서비스를 시작할때 1075 에러가 생기는 경우.

 

Error 1075 : The dependency service does not exist or has been marked for deletion.

 

시작 -> 실행 -> regedit.exe 실행.

HKEY_LOCAL_MACHINE --> System --> CurrentControlSet --> Services --> msftesql


여기에서 DependOnService 의 값을 RPCSS NTLMSSP 에서 RPCSS 로 수정.

윈도 리부팅.

리부팅후 필요에 따라 MSSQL Agent 나 MSSQL FullText Search 서비스를 시작한다.

이제 백업이나 다른 작업들이 잘될 것이다.


* 참고

MSSQL FullText Search 는 NTLM Security Support Provider 라는 서비스를 이용하여 관리자 권한을 획득해야 하는데,

이 서비스는 윈도가 버전업 또는 업데이트 되면서 User Access Control - UAC 로 변경되었다.

없는 서비스를 찾기 때문에 안되는 것.

마소도 관리가 잘 안되는 부분이 있다...

Posted by 멋지다마라송


티스토리 툴바