º 서버는 Dell PowerEdge T640 제품을 사용한다.
1. Install Ubuntu ( OS : ubuntu-20.04.3-server )
2. Create User & User Group
3. Set up SSH
4. Install screen
가 완료된 상태에서, 서버에 mysql 설치를 시도하였다.
서버접속 : cmd 창에서(window) 기준, ssh <id>@□.□.□.□ -p □(ssh)
일반 계정 접속 후 su root, password 입력
서버 복구 시 접속 오류 (WARNING : REMOTE HOST IDENTIFICATION HAS CHANGED)
서버가 중간에 한번 끊겨서 다시 복구를 하였는데, 이후 cmd창에서 서버를 다시 접속하려고 하니 저런 문구가 뜨면서 접속이 거부됨.
구글링 해보니 해결 방법은 크게 3가지가 나옴.
1. ssh-keygen -R 192.168.0.0(대상 서버 IP)
2. rm /root/.ssh/known_hosts
3. vi /root/.ssh/known_hosts: 편집으로 들어가서 대상 IP 주소가 적힌 부분 제거(한 줄이라 dd 명령어로 제거됨). 저장 필수(wq)
하지만 나의 경우 위의 3가지 방법 모두 또 다른 에러를 발생시켜서, 그냥 2번 known_hosts 파일이 위치한 곳으로 가서, 파일을 메모장으로 직접 연 다음 해당 IP 주소 부분을 지우고 저장한 뒤, 다시 수행하니 정상적으로 연결됨
※ 우분투 디렉토리 삭제 시도 시 'device or resource busy' 에러 해결하는법
구글링해서 많은 자료들을 참조해봤으나, 해결되지 않던 중 이렇게 하니 해결되어서 방법을 공유하고자 한다.
1. lsof +D '디렉토리경로' : 를 통해서 process id 확인
2. kill -9 'process id' : 으로 process 죽이기 (-9를 생략하면 제대로 제거되지 않을 수 있다고 한다)
3. sudo umount -f '디렉토리경로'
4. rm -rf '디렉토리경로'
∴ 결과 : 완벽히 제거됨
※ 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 해결 방안
mysql 설치시 datadir 경로가 default인 /var/lib/mysql 로 잡힌다. datadir 경로를 바꾸기 위해 단순히 mv 커맨드를 사용하였다.
mv /var/lib/mysql '디렉토리경로'
하지만 그 결과... mysql 실행 시
'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 라는 오류가 발생했다.
이 문제를 해결하기 위해 구글링을 해 보았으나, 근본적인 문제는 mv 명령어를 사용해서 임의로 경로를 바꿔버려서 오류가 났다고 결론지었고, 따라서 완전삭제 및 재설치, 이후 datadir 경로를 변경하니 정상적으로 실행이 되었다.
º mysql 완전삭제 및 재설치 참고 링크
- 구글링으로 찾으면 금방 나온다.
º datadir 변경 참고 링크
https://www.comsvc.kr/xe/comsvc_tip02/38653
https://usheep91.tistory.com/90
º 최종 경로 설정
datadir=/data/db/mysql
socket=/data/db/mysql/mysql.sock
º 자주 사용하는 mysql 명령어
$ sudo mysql -u □(id) -p 이후 passwd 입력 시 mysql 서버로 로그인 가능(접근 가능)
SHOW DATABASES;
SELECT User, Host, authentication_string FROM mysql.user; (사용자 정보 확인)
use 데이터베이스명;
show tables; (데이터베이스 내에 속한 테이블들을 보여줌)
º mysql 유저 생성 및 유저 권한 부여 참고 링크
https://all-record.tistory.com/183
https://yoshikixdrum.tistory.com/216 (유저 생성 및 삭제)
DBA user 생성
> create user ‘dbuser’@’%’ identified by ‘비밀번호’; ( 모든 IP로 접속 가능한 계정 생성. '%' 기호 사용함으로써 )
> GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%';
> flush privileges;
common user 생성
> create database scd_benchmark; ( common user를 위한 db 생성 )
> create user ‘user1’@’%’ identified by ‘비밀번호’; ( 모든 IP로 접속 가능한 계정 생성, ‘%’기호 사용함으로써 )
> GRANT ALL PRIVILEGES ON scd_benchmark.* TO ‘user1’@’%’;
> flush privileges;
º mysql workbench를 통한 서버 mysql로 접속 방법
https://madohakja.tistory.com/4 : 참고링크
https://abc1211.tistory.com/287
º mysqldump 명령어
# 해당 .sql 파일이 있는 위치로 이동
$ cd /data/OOO/OOOO
# 테이블 백업받기
# mysql -u [사용자 계정] -p [복원할 DB ] < [백업된 테이블].sql
$ mysqldump -u dbuser -p scd_benchmark < commits.sql
$ mysqldump -u dbuser -p scd_benchmark < files.sql
-> 주의사항. [복원할 DB] 옆에 [복원할 테이블] 을 추가로 적으면 안된다. 단지 [복원할 DB]만 적어도
알아서 그 DB의 테이블 안으로 들어온다.
'학부연구생' 카테고리의 다른 글
Ubuntu 서버 종료 및 재시작 절차 (1) | 2024.01.25 |
---|---|
Ubuntu 20.04] MongoDB 설치 및 기본 명령어 (0) | 2023.06.13 |
Ubuntu] Screen 명령어 (0) | 2023.06.09 |
2. 우분투(ubuntu) 서버에 mongodb 설치 (0) | 2021.10.16 |