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이라 최상위 레벨까지만 압축한다.

#!/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 은 '파일명'이 아닌 './파일명'이 되기 때문에 자리 수를 감안해서 설정해야 한다.

 

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

후 진행하면 해결된다.

+ Recent posts