0. mysql 삭제

:문제가 발생하면, 재설치 or 환경설정 연습시 반복 실행

더보기

# 실행중인 mysql 프로세스 정지

sudo service mysql stop && sudo systemctl stop mysql

 

# mysql 키워드가 포함된 패키지 찾기

dpkg -l | grep mysql

 

# purge 명령어로 완전 삭제

sudo apt-get remove --purge mysql* -y && sudo apt autoremove -y

 

# 삭제 후, mysql 관련 패키지 남아있는지 확인 

dpkg -l | grep mysql

 

# 확인 후, 삭제되지 않은 mysql 관련 파일 삭제

sudo apt-get remove --purge [파일명]


# 그 밖의 모든 것들 청소

sudo rm -rf /etc/mysql /var/lib/mysql &&
sudo apt-get autoremove mysql &&
sudo apt-get autoclean mysql

 

1. mysql 설치

: 설치 영상 링크

더보기

# 패키지 최신화

sudo apt-get update && 
sudo apt-get dist-upgrade -y && 
sudo apt-get autoremove --purge -y && 
sudo apt-get clean

 

  • update: 패키지 목록 최신화
  • dist-upgrade: 종속성 고려하여 전체 업그레이드
  • -y: 모든 확인을 자동으로 수락 (필요 시 생략)
 

# MySQL 서버 설치

sudo apt install mysql-server -y

 

# 설치시 의존성 문제 오류 >> 해결 방법

sudo apt --fix-broken install


# MySQL 시작, 부팅시 자동 실행 설정

sudo systemctl start mysql;
sudo systemctl enable mysql;

 

# msql 동작 상태 확인

systemctl status mysql

 

(참고) MySQL 정지 방법

sudo systemctl stop mysql;

 

2. mysql 보안 설정

더보기

# MySQL 보안 설정 실행

sudo mysql_secure_installation
질문  입력 입력 결과 설명
1 setup VALIDATE PASSWORD component?
비밀번호 검증 plugin 설치?
n 비밀번호 복잡도 검사 플러그인 설치 안함
2 Remove anonymous users? 
익명 사용자 삭제?
n 로컬 테스트용으로 익명 사용자 유지
3 Disallow root login remotely?
root 원격 로그인 금지?
n 원격 root 접속 허용 (보안상 위험, 서버용은 y 권장)
4 Remove test database and access to it?
test DB 삭제?
n test DB 유지 (학습/개발용은 유지 가능)
5 Reload privilege tables now?
위 설정 즉시 반영
y 권한 테이블 즉시 재적용

 

3. root 계정 설정

: [1]비밀번호 변경(1234)과 [2]로그인 인증 방식 변경

더보기

3.1 root 계정과 비밀번호로 접속하지 못하는 이유

MySQL의 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 은 주로 Debian/Ubuntu 계열에서 기본적으로 root@localhost 계정이 비밀번호 대신 OS 사용자 인증(auth_socket) 으로만 로그인하도록 설정되어 있기 때문입니다. 

 

 

3.2 sudo mysql로 접속

sudo mysql
  • sudo는 root 권한을 얻고,
  • MySQL이 root 사용자를 auth_socket으로 인증 중이라면,
  • 비밀번호 없이도 root MySQL 계정에 로그인됩니다.

 

 

3.3 MySQL 사용자 테이블 확인

SELECT User, Host, plugin FROM mysql.user;
인증 방식  설명
auth_socket 리눅스 유닉스 계정 기반 인증. sudo로만 접속 가능
Ubuntu(또는 Linux)의 로그인 사용자와 동일한 이름의 MySQL 사용자 계정으로 인증
리눅스 OS 사용자 인증을 통해 MySQL 로그인 (비밀번호 불필요)
mysql_native_password ID/PW로 인증. 다른 툴(DB관리도구)과 호환성 좋음

 

 

3.4  root 계정의 [1]비밀번호 변경(1234)과 [2]로그인 인증 방식 변경

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
FLUSH PRIVILEGES;
  • auth_socket → mysql_native_password로 변경
  • 비밀번호 1234 로 변경
  • 이제부터 mysql -u root -p로 접속 가능해짐

 

 

3.5 mysql 나가기

EXIT;

 

 

3.6 mysql root 계정과 비밀번호(1234)로 실행 테스트

mysql -u root -p
  • MySQL 클라이언트를 실행하면서 root 사용자로 접속하는 명령
명령어 설명
mysql MySQL 클라이언트 실행
-u root   사용자 이름을 root로 지정
-p   비밀번호 입력 방식 선택

 

4. MySQL WorkBench 설치

더보기
sudo snap install mysql-workbench-community