한 2주 전쯤 발생한 에러 메시지입니다.

"SQL 서버 접속 불가."

위 에러가 발생하는 이유는 간단합니다.

말 그대로 SQL Server에 접속할 수 없는 것입니다.

Server에 접속이 안되는 이유를 봐보면.

1. 방화벽이 닫혀있다.

2. TCP 파이프가 사용 안 함으로 설정돼있다.

3. 방화벽에 포트가 닫혀있다.

4. 원격 사용을 허용치 않는다.

정도로 생각할 수 있습니다.

하지만 위와 같은 사항은 대부분 SQL Server 초기에 구성하기 때문에 잘 사용하던 서버라면 99%는 위와 같은 문제로 오류가 나는 경우는 없을 것입니다.

그렇기에 분명 며칠 전까지만 해도 잘 되던 게 갑자기 왜 안되지라는 생각에

서버가 터졌나부터 시작해서 별생각이 다 들었습니다.

그렇게 한 10여 분 뭐지 뭐지 하다가 생각난 게 '서비스'입니다.

'SQL Server (MSSQLSERVER)' 서비스를 재시작하니까 뭐 그냥 되더군요.

방법은 아래와 같습니다.

[검색] -> '서비스'실행 -> 아래의 서비스 다시 시작

출처 : https://m.blog.naver.com/lhs860226/221465106189

기본적으로 php 7.2 버전 이상부터는 mcypt 를 지원하지 않는다
편법으로 mcrypt를 설치해본자
기존에 웹서버(apache 2.4 ) / php 7.3 버전은 설치되어 있다

현재 php에 mcrypt가 설치되어 있는지 확인해보면 아무런 정보가 표시되지 않는다 즉 미설치 상태

[root@xinet ~]# php -i | grep mcrypt

1. libmcrypt 다운로드 및 설치 ( 만약 설치되어 있다면 패스)

[root@xinet ~]# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libmcrypt-2.5.8-13.el7.x86_64.rpm

[root@xinet ~]# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libmcrypt-devel-2.5.8-13.el7.x86_64.rpm

[root@xinet ~]# rpm -Uvh libmcrypt-*

2. mcyrpt 1.0 파일 다운로드 및 phpize 이용 설치 (php 8.0은 mcrypt-1.0.3 / php 8.1의 경우 mcrypt-1.0.4 다운로드할 것)

[root@localhost ~]# wget https://pecl.php.net/get/mcrypt-1.0.3.tgz

[root@localhost ~]# tar xvfz mcrypt-1.0.3.tgz 

[root@localhost ~]# cd mcrypt-1.0.3

[root@localhost mcrypt-1.0.2]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

[root@localhost mcrypt-1.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config 

[root@localhost mcrypt-1.0.2]# make 

[root@localhost mcrypt-1.0.2]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/debug-zts-20190902/

3. 파일을 확인하고  파일을 php.ini에서 인식

[root@localhost mcrypt-1.0.2]# ls -l /usr/local/php/lib/php/extensions/debug-zts-20190902/
합계 1732
-rwxr-xr-x 1 root root  105840  8월 10 15:48 mcrypt.so
-rwxr-xr-x 1 root root 1665344  7월 27 17:54 opcache.so

[root@localhost mcrypt-1.0.2]# vi /usr/local/apache/conf/php.ini 

extension=mcrypt.so

4. 웹서버 재시작

[root@localhost mcrypt-1.0.2]# systemctl restart httpd

 

출처 : https://xinet.kr/?p=2975

CentOS docker 이미지를 컨테이너로 생성해서 Node.js를 설치했다.
Node.js를 설치하면 npm도 같이 설치된다.
(npm : Node Package Manager로 기본 패키지 관리자)

1. yum update하기

yum -y update
(최고권한으로 설치할 경우, sudo yum -y update)

2. NodeSource(회사)는 효율적인 노드 서비스를 제공하고 리눅스용 Node.js저장소가 있는지 확인한다.
CentOs서버에서 NodeSource저장소를 사용해 Node.js와 npm을 설치하는데 도움이 된다.

setup_12.x는 12버전을 설치할 경우이다. 
예를들어 8, 10버전이 필요할 경우에는 setup_8.x 혹은 setup_10.x로 넣고 명령어를 실행하면 된다!

curl -sL https://rpm.nodesource.com/setup_12.x | bash -
(최고권한으로 설치할 경우, curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - )

3. Node.js 설치하기

yum install -y nodejs

4. 설치 확인하기
node와 npm버전 확인 하는 명령어이다.
설치가 잘 됬다면 버전이 나온다!

node -v
npm -v 

 

출처 : https://jin2rang.tistory.com/entry/CentOS7-Nodejs-%EC%84%A4%EC%B9%98

원격데스크톱 복사 붙여넣기 안될 때 (Ctrl+C, Ctrl+V)

원격데스크톱(MSTSC) 을 사용해서 원격 PC의 텍스트나 파일을 복사할 때 간편하게 Ctrl+C, Ctrl+V를 활용해서 복사 붙여넣기를 사용하는데요.

이 기능이 되지 않는 경우가 있습니다.

이럴 경우, PC를 재시작 하지 않고 사용할 수 있는 해결 방법을 알려 드립니다.

문제점

* 원격PC에서 복사한 내용이 현재 사용자 PC에서 붙여넣기가 안되는 현상
* 현재 사용자 PC에서 복사한 내용이 원격 PC에서 붙여넣기가 안되는 현상

※ 문제는 원격 PC에서 rdpclip.exe 프로세스가 정상적으로 동작하지 않아 생기는 문제 입니다.

해결 방법

1. 윈도우 하단 작업표시줄에 마우스 우 클릭 후 작업관리자를 클릭합니다.

2. 작업관리자에서 -> 세부정보 -> rdpclip.exe 이름을 찾아서 마우스 우클릭 후 작업 끝내기를 클릭 합니다.

3. 작업관리자 상단 탭에서 파일 클릭 -> 새 작업 실행을 클릭 합니다.

4. 새 작업 실행에서 rdpclip.exe 파일을 실행 합니다.

이제 복사 붙여넣기를 해봅니다.
PC OS를 재시작 하지 않아도 바로 정상적으로 사용이 가능합니다.

혹, 다른 원인이나 재기동이 정상적으로 되지 않는 경우도 있으니 몇번 재반복 해보시고 문제가 해결되지 않는다면 다른 원인을 찾아봐야 합니다.

출처 : https://www.wrapuppro.com/programing/view/HjwnrUSvX8o8nWy

phpMyAdmin 설정 스토리지가 완전히 설정되지 않아, 일부 확장 기능들이 비활성화 된 상태입니다. 원인을 확인하려면 여기를 클릭하세요.

위 메세지가 나올때 숨기는 법
config.inc.php 파일에서

$cfg['PmaNoRelation_DisableWarning'] = true;

You are using an incomplete translation, please help to make it better by contributing.

위 메시지가 나올 때 숨기는 법 (대충 더 나은 번역을 위해 기여좀 하라는거 같은데..;;)
마찬가지로 config.inc.php 파일에서

$cfg['TranslationWarningThreshold'] = 1;

 

출처 : https://tistory.kkwang.com/221

출처: https://wnw1005.tistory.com/628 [씨실과 날실 - IT:티스토리]

카카오 미러

http://mirror.kakao.com/

여타의 국내 미러들에 비해 속도가 굉장히 빠르고 서버 안정성 또한 높은 편

 

네이버 미러

https://mirror.navercorp.com/

네이버 클라우드다 록키 리눅스의 주요 파트너로 참가

 

카이스트 미러 - KAIST 파일 서비스(SPARCS)

https://ftp.kaist.ac.kr/

국내의 가장 대표적인 미러 사이트.

 

라넷 미러 - 사랑천사 네트워크 FTP 서비스 - LANET

https://ftp.lanet.kr/

 

아니길 미러 - AniGil Linux Archive

https://mirror.anigil.com/

임시우님의 개인 미러

 

용복 미러 - Yongbok.net

https://mirror.yongbok.net/

시스템 엔지니어 김용복님이 운영하는 개인 미러

 

하루카상(Harukasan) 미러

https://ftp.harukasan.org/

부경대에서 지원하는, 동아시아 국가를 위한 미러

 

premi.st 미러 - mirror.premi.st

https://mirror.premi.st/

이민구님이 운영하는 개인 미러

 

검은 개(흑구) 미러 - Heigou's Private Mirror

https://mirror.heigou.pe.kr/

Heigou님이 운영하는 개인 미러

과거 Maakpain's Linux Mirror라는 이름이었으나 도메인을 변경하게 되어 공식 미러 명칭도 바꿈

기존의 도메인은 올해 말까지만 유지하게 됨.

미사카 미러 - 미코토 네트워크(Misaka Mikoto Network) 미러

https://mirror.misakamikoto.network/

Misaka님이 운영하는 개인 미러

한국 FreeBSD 사용자 그룹 미러

https://ftp.kr.freebsd.org/pub/

FreeBSD 전문 미러지만 리눅스로는 유일하게 안녕 리눅스가 미러링되고 있음.

mysqldump --skip-add-locks --skip-lock-tables db table > test.dump.sql

▶ 덤프 도중 다른 세션에서 insert, update, delete 가능

 

mysqldump --single-transaction  db table > test.dump.sql

 덤프 도중 다른 세션에서 insert, update, delete 가능

 

mysqldump --lock-tables  db table > test.dump.sql

 덤프 도중 다른 세션에서 insert, update, delete 불가능

 

--single-transaction 옵션은 4.0.2 버전부터 추가되었으며, InnoDB에서만 사용 가능합니다.

출처: https://www.unclegom.com/5 [한가한 곰 아저씨의 작업장:티스토리]

CPU-Z와 같은 외부 프로그램 없이도 윈도우에서 명령어를 이용해 메인보드 모델명을 확인할수 있다.

명령프롬프트 (cmd)에서 아래 명령어 실행

wmic baseboard get product, Manufacturer,version,serialnumber

 

IMAP 설치

[root@www /tmp]# mv imap-2000b /usr/local/imap
[root@www /tmp]# cd /usr/local/imap
[root@www /imap]# make slx imap을 컴파일 한다

 

변경사항 : 
원문 글에서는 imap-2000b 버전이지만 나의 경우 imap-2007f 버전을 사용하였음. 

imap-2007f.tar.gz
1.90MB


변경사항 : 컴파일 옵션을 make slx SSLTYPE=unix 로 해야 php에서 imap 연동 테스트 시

PHP Notice:  Unknown: Server disables LOGIN, no recognized SASL authenticator (errflg=2) in Unknown on line 0

와 같은 에러가 발생하지 않음.

컴파일이 완료되면 imapd 디렉토리에 imapd가 ipopd디렉토리에는 ipop2d, ipop3d가 생성되며,
ipop2d는 잘 쓰지 않으므로 복사하지 않아도 됩니다.

=================================================================================
% 오류 발생시
낮은 Imap 버전을 최신버전의 리눅스 OS 에 설치시 Openssl 경로가 맞지 않아
아래와 같이 오류가 발생할수 있습니다.

osdep.c:231:20: error: x509v3.h: No such file or directory
osdep.c:232:17: error: ssl.h: No such file or directory
osdep.c:234:17: error: pem.h: No such file or directory
osdep.c:235:20: error: buffer.h: No such file or directory
osdep.c:236:17: error: bio.h: No such file or directory
osdep.c:237:20: error: crypto.h: No such file or directory
osdep.c:238:18: error: rand.h: No such file or directory
.
.
.

등등..

그럴경우 오류나는 부분의 윗줄을 잘 살펴보면 이와 같이 소스파일에 설정된 SSL 경로를 확인할 수 있습니다.

echo -I/usr/local/ssl/include -I/usr/local/ssl/include/openssl -DSSL_CERT_DIRECTORY=\"/usr/local/ssl/certs\" -DSSL_KEY_DIRECTORY=\"/usr/local/ssl/certs\" >> OSCFLAGS

간단하게 해당 경로로 심볼릭 링크를 생성해주면,,

ln -s /usr/include/openssl/ /usr/local/ssl/include/openssl

이후 설치하면 오류 없이 설치 가능합니다.
==================================================================================

[root@www imap]# cp imapd/imapd /usr/sbin 생성된 실행파일들을 복사합니다.
[root@www imap]# cp ipopd/ipop3d /usr/sbin

이들은 xinetd 슈퍼데몬에 의해서 실행되므로 클라이언트 쪽에서 접속하여 사용할 수 있도록 하려면 환경설정을 수정해 주어야 합니다.
※ 배포판 레드햇6.2이하에서는 inetd 슈퍼데몬에 의해 실행되므로 환경설정이 조금 다릅니다.

[root@www imap]# cd /etc/xinetd.d
[root@www xinetd.d]# vi imapd   imapd 실행을 위한 환경설정파일을 생성합니다.

 

service imap
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/imapd
log_on_success += DURATION USERID
log_on_failure += USERID
}

[root@www xinetd.d]# vi ipop3d

service pop3
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
}

[root@www xinetd.d]# vim /etc/services
......
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
......
imap2 143/tcp imap # Interim Mail Access Proto v2
imap2 143/udp imap
......

[root@www xinetd.d]# /etc/rc.d/init.d/xinetd restart  슈퍼데몬을 재가동합니다.

Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]

telnet을 이용하여 로컬호스트 110포트(pop3)로 접속하여 테스트합니다.

[root@www xinetd.d]# telnet localhost 110

Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK POP3 localhost.localdomain v2000.70 server ready
user pyd0927
+OK User name accepted, password please
pass 123123
+OK Mailbox open, 0 messages
quit
+OK Sayonara
Connection closed by foreign host.

IMAP은 기본적으로 143 포트를 사용합니다.

출처 : https://soul.tistory.com/4

리눅스에서 디스크 용량을 확인할 때 df 명령어로 확인했을 때 용량이 컸는데 du 명령어로 확인하니까 용량이 작았다.
파일을 삭제했는데 df에 반영이 되지 않은 것이다.

예를 들어, /var 용량의 경우
df 명령어로 확인했을 때 사용중인 공간이 31G 였다고 하면
du 명령어로 확인해보니 사용중인 공간이 10G 밖에 되지 않는다.

이 문제가 발생하는 이유는
보통 시스템을 오래 켜 둔 상태에서 발생한다고 한다.
그 이유는 특정 프로세스가 file descriptor 를 연 후에 file descriptor 가 가리키는 파일을 지웠는데
그 프로세스가 여전히 파일을 읽고 쓰고 있는 것이다.

따라서 lsof 명령어를 통해 문제가 있는 프로세스를 찾을 수 있다.
우선, 문제가 있는 디렉토리의 열린 파일 목록을 검색한다.

# lsof

또는 해당 디렉토리 검색

# lsof [DIRECTORY]

grep 명령어로 deleted 만 검색

# lsof | grep deleted

lsof 명령어를 통해 확인해보면 NAME 마지막에 (deleted) 라고 되어있는 프로세스를 확인할 수 있다.

이 경우에는 파일을 지웠지만 아직까지 남아있어 용량을 차지하고 있는 프로세스다.
따라서 해당 프로세스의 PID를 kill 명령어를 통해 죽이면 된다.

# kill -9 [PID]

그리고 다시 확인해보면 정상으로 돌아와있는 것을 확인할 수 있다.

df 명령어의 경우 특정 상황에서 정확한 실제 용량을 반영해주지 못하는 경우가 발생한다.
따라서 lsof 명령어를 통해 문제 있는 프로세스를 찾아 죽이는 방법을 통해 정상적으로 돌아오게 할 수 있지만
시스템 재시작이 가능하다면 재시작하는 것도 하나의 방법이 될 수 있다.

[참고 사이트]

df 용량이 실제하고 안 맞을 때

출처 : https://jaynamm.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-df-%EC%9A%A9%EB%9F%89%EA%B3%BC-du-%EC%9A%A9%EB%9F%89%EC%9D%B4-%EB%8B%A4%EB%A5%BC-%EA%B2%BD%EC%9A%B0-%ED%99%95%EC%9D%B8