잘쓰던 포트였는데 갑자기 문제가 발생했다.

아래의 내용은 윈도우OS에서의 해결책이다.

 

내 원인

나의 경우에는 intellij에서 해당 포트와의 연결을 끊고 프로그램을 종료 했는데 그 후 재부팅을 하고 어쩌고 해도 저 포트를 사용할 수 없었다. 일반 콘솔에서도 동일한 에러가 발생하고 있었다.

 

해결

관리자 모드로 콘솔 혹은 파워셀을 연다.

net stop winnat
net start winnat

잘 된다.

 

출처: https://stackoverflow.com/questions/9164915/node-js-eacces-error-when-listening-on-most-ports

'오류노트 > Javascript' 카테고리의 다른 글

Material UI - RadioGroup , Radio 관련  (0) 2021.06.02

trigger를 통해서 값이 insert되면 외부 프로그램, 혹은 API를 호출하고 싶었다.

그때마다 검색되는 UDF인 sys_exec() 는 my_global.h가 없어 컴파일이 안되어 사용할 수 없는 상황이었다.

(MySQL 5에서는 있었지만 8 혹은 마이너 버전부터 제외한다는 글을 본 것 같다.)

mysql 내부에서 해결하는 것은 포기하고 돌도 돌다 node.js에 binlog를 이용하여 테이블을 감시하는 것을 찾았다.

https://www.npmjs.com/package/@vlasky/mysql-live-select

원래는 목적으로는 특정 레코드의 컬럼까지 감시가 가능한 것 같지만, 나는 테이블만 감시하는 목적으로 사용하려고 했고, 제공된 예제를 아래와 같이 수정하니 목적을 달성할 수 있게 되었다.

const LiveMysql = require('@vlasky/mysql-live-select');
const LiveMysqlKeySelector = require('@vlasky/mysql-live-select/lib/LiveMysqlKeySelector');

const settings = {
  host: '호스트주소',
  user: '아이디',
  password: '비밀번호',
  database: 'DB명'
};

const liveConnection = new LiveMysql(settings);

liveConnection
  .select('select version()', [], LiveMysqlKeySelector.Index(), [
    {
      table: '테이블명',
      condition: function (row, newRow, rowDeleted) {
        if (row && newRow === null) {
          if (rowDeleted === false) {
            // insert 상황            
          } else {
            // delete 상황
          }
        } else {
          // update 상황
        }
        return true;
      }
    }
  ]);
git config core.ignorecase false

 

tar 압축

find `ls` -type d -maxdepth 0 -exec tar -cvf "{}.tar" "{}" \;

 

zip 압축
find `ls` -type d -maxdepth 0 -exec zip -r -9 "{}.zip" "{}" \;

 

주의사항

maxdepth가 0이라 최상위 레벨까지만 압축한다.

'Server > 기타' 카테고리의 다른 글

쉘스크립트 - 파일을 폴더 생성 후 이동  (0) 2022.06.22
#!/bin/bash

for file_name in *.dat; do			# 현재 디렉토리에서 확장자가 dat 파일들만 반복
	folder_name="${file_name:18:10}"	# 파일명에서 디렉토리명 추출. 자리수는 0부터 시작하고 10글자 추출함.

	if [ ! -d "$folder_name" ]; then	# 해당 디렉토리가 존재하지 않으면 생성
		mkdir "$folder_name"
	fi

	mv "$file_name" "./$folder_name/$file_name"	# 파일을 해당 디렉토리로 이동
done

 

주의사항

반복문에서 경로를 '*.dat'가 아닌 './*.dat' 로 하는 경우 file_name 은 '파일명'이 아닌 './파일명'이 되기 때문에 자리 수를 감안해서 설정해야 한다.

 

'Server > 기타' 카테고리의 다른 글

리눅스 폴더별 압축  (0) 2022.06.22

1. dump파일을 저장할 곳을 생성해서 이동

2. 백업: mysqldump -u root -p DB명 > 파일명.sql

3. 복원: mysql -u root -p DB명 < 파일명.sql

3-1. 복원은 mysql 커맨드 상태에서 use DB명하고, source 파일명.sql 로 해도 가능함

다른 스키마도 다른 설정을 바꿔줄 필요없이 복원이 가능함

// 1. MySQL 정지
systemctl stop mysqld

// 2. MySQL 환경변수를 변경해서 비밀번호없이 root 로그인할 수 있도록 변경
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

// 3. MySQL 재시작
systemctl start mysqld

// 4. MySQL 접속. 현재 비번 입력없이 접속이 가능하므로 그냥 엔터침
mysql -u root -p

// 5. root 비밀번호을 null 초기화 후 일단 MySQL 접속해제
UPDATE mysql.user SET authentication_string = null where user = 'root';
FLUSH PRIVILEGES;
quit

// 6. MySQL 재접속. 현재 비번은 null이므로 엔터치고 접속하면 됨
mysql -u root -p

// 7. root 비밀번호 재설정 후 MySQL 접속해제
alter user 'root'@'localhost' identified with caching_sha2_password by '새비밀번호';
FLUSH PRIVILEGES;
quit

// 8. MySQL 정지 후 환경변수 제거 후 다시 재시작
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld

 

'DB > MySQL' 카테고리의 다른 글

DB Dump 및 복원  (0) 2022.06.22
SELECT 와 UPDATE 동시에 하기  (0) 2021.06.17
datetime 컬럼을 분단위로 group by 하기  (1) 2020.09.29
5.7 DB 파일로 복원  (0) 2020.06.04
외부 접근 허용  (0) 2019.10.28

발생상황

centos7 에서 mysql 설치시 나온 메시지

 

해결

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

후 진행하면 해결된다.

발생상황

mariadb 10.6을 설치해서 쓰고 있는 상태에서 python에서  pip install mariadb를 하니까 나옴

 

원인

MariaDB Connector/C 가 필요하다는 듯?

 

해결

yum install MariaDB-shared MariaDB-devel

 

UPDATE [테이블A],[Select 질의] B SET [테이블A].필드 = B.필드 WHERE [테이블A].id = B.id

출처: https://shakddoo.tistory.com/entry/Mysql-Select결과를-Update-문에-반영하기 [겨울팥죽 여름빙수]

'DB > MySQL' 카테고리의 다른 글

DB Dump 및 복원  (0) 2022.06.22
CentOS7, MySQL8 에서 root 계정 비밀번호를 분실한 경우  (0) 2022.06.22
datetime 컬럼을 분단위로 group by 하기  (1) 2020.09.29
5.7 DB 파일로 복원  (0) 2020.06.04
외부 접근 허용  (0) 2019.10.28

+ Recent posts