1. 소개
1.1 MySQL 개요 및 명령줄의 중요성
MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로 널리 사용됩니다. 주요 이점으로는 SQL(Structured Query Language)을 사용한 효율적인 데이터 관리와 유연한 데이터 작업이 있습니다. 많은 웹 애플리케이션과 기업 시스템에서 사용되며, MySQL 명령줄을 통해 강력한 기능을 완전히 활용할 수 있습니다.
1.2 이 기사의 목적
이 기사는 MySQL 명령줄 작업에 중점을 두며, 데이터베이스 생성 및 관리, 사용자 권한 구성 등을 포함한 기본 명령부터 고급 사용법까지 모든 것을 설명합니다. 특히 초보자와 중급 사용자들이 MySQL을 자신 있게 사용할 수 있는 실전 기술을 구축할 수 있도록 설계되었습니다.
1.3 이 가이드의 대상 독자
이 가이드는 MySQL에 관심 있는 초보자에서 중급 사용자까지를 대상으로 합니다. 기본 데이터베이스 지식을 가지고 MySQL을 사용해 데이터를 관리하거나 웹 애플리케이션을 구축하기 시작하려는 사람들에게 이상적입니다.
2. 기본 MySQL 명령
2.1 데이터베이스 연결 및 연결 해제
MySQL에 액세스하려면 먼저 데이터베이스 서버에 연결해야 합니다. MySQL 서버에 로그인하는 데 가장 일반적으로 사용되는 명령 중 하나는 mysql -u root -p입니다. 이 명령을 실행하면 MySQL 클라이언트가 시작되어 지정된 사용자(이 경우 root)로 로그인하려고 시도합니다.
mysql -u root -p
이 명령을 입력한 후 비밀번호를 입력하라는 메시지가 나타납니다. 올바른 비밀번호를 입력하면 MySQL 명령줄에 액세스할 수 있습니다.
연결을 해제하려면 exit 또는 quit 명령을 사용합니다.
exit
이것은 MySQL 서버에서 로그아웃하고 명령 프롬프트로 돌아갑니다.
2.2 데이터베이스 생성 및 나열
새 데이터베이스를 생성하려면 CREATE DATABASE 명령을 사용합니다. 다음 예는 mysqldemo라는 이름의 데이터베이스를 생성합니다.
CREATE DATABASE mysqldemo;
명령을 실행한 후 “Query OK” 메시지가 나타나며, 데이터베이스가 성공적으로 생성되었음을 확인합니다.
생성한 데이터베이스 목록을 표시하려면 SHOW DATABASES 명령을 사용합니다.
SHOW DATABASES;
이 명령은 서버에 현재 사용 가능한 모든 데이터베이스 목록을 표시합니다.
2.3 데이터베이스 선택
여러 데이터베이스가 존재하면 작업할 데이터베이스를 지정해야 합니다. USE 명령을 사용하면 작업할 데이터베이스를 선택할 수 있습니다.
USE mysqldemo;
이것은 mysqldemo를 현재 데이터베이스로 설정하며, 이후 모든 명령은 이 데이터베이스에 대해 실행됩니다.

3. 기본 테이블 명령
3.1 테이블 생성
데이터베이스에 데이터를 저장하려면 먼저 테이블을 생성해야 합니다. 새 테이블을 생성하려면 CREATE TABLE 명령을 사용합니다. 예를 들어 users라는 테이블을 생성하려면 다음과 같이 명령을 작성합니다.
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (id)
);
이 명령은 users 테이블에 세 개의 열(id, name, email)을 정의합니다. id 열은 자동 증가(AUTO_INCREMENT)가 활성화된 정수 타입이며 기본 키(PRIMARY KEY)로 지정됩니다.
3.2 테이블 나열
테이블을 생성한 후 데이터베이스의 테이블 목록을 확인할 수 있습니다. SHOW TABLES 명령을 사용하면 현재 선택된 데이터베이스의 모든 테이블을 표시할 수 있습니다.
SHOW TABLES;
또한 특정 테이블의 구조를 확인하려면 DESCRIBE 명령을 사용합니다. 이는 테이블의 열 정보와 데이터 타입을 표시합니다.
DESCRIBE users;
이 명령은 users 테이블의 각 열에 대한 데이터 타입과 속성(예: NULL 허용 여부, 키 설정 등)을 나열합니다.
3.3 데이터 삽입 및 보기
테이블에 데이터를 추가하려면 INSERT INTO 명령을 사용합니다. 예를 들어 새 사용자를 추가하려면 다음과 같이 합니다.
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
이 명령은 users 테이블에 새 레코드를 삽입하고 지정된 값을 name 및 email 열에 저장합니다.
삽입된 데이터를 보려면 SELECT 명령을 사용하십시오. 모든 사용자를 표시하려면 다음을 사용하십시오.
SELECT * FROM users;
이 명령은 users 테이블의 모든 레코드 목록을 표시합니다.
4. 사용자 관리 및 보안
4.1 사용자 생성 및 권한 설정
MySQL에서는 데이터베이스에 접근할 수 있는 사용자를 생성하고 적절한 권한을 부여하는 것이 중요합니다. 사용자를 생성하려면 CREATE USER 명령을 사용하십시오. 다음 예에서는 localhost에 대해 비밀번호를 password123으로 설정한 새 사용자 user1을 생성합니다.
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';
이 명령은 user1이라는 새 사용자를 생성하며, 해당 사용자는 로컬 호스트에서만 연결할 수 있습니다.
생성된 사용자에게 권한을 부여하려면 GRANT 명령을 사용하십시오. 예를 들어 mysqldemo 데이터베이스에 대한 모든 권한을 user1에게 부여하려면 다음을 사용합니다.
GRANT ALL PRIVILEGES ON mysqldemo.* TO 'user1'@'localhost';
이 명령은 mysqldemo 데이터베이스의 모든 테이블에 대해 user1에게 전체 권한을 부여합니다. 시스템에 권한 변경을 적용하려면 FLUSH PRIVILEGES 명령을 실행하십시오.
FLUSH PRIVILEGES;
4.2 비밀번호 변경
기존 사용자의 비밀번호를 변경하려면 mysql 데이터베이스의 user 테이블을 업데이트하기 위해 UPDATE 명령을 사용하십시오. 다음 예에서는 root 사용자의 비밀번호를 새 비밀번호로 변경합니다.
UPDATE mysql.user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root';
FLUSH PRIVILEGES;
이 명령은 root 사용자의 비밀번호를 newpassword로 변경합니다. FLUSH PRIVILEGES를 실행하면 변경 사항이 시스템에 적용됩니다.
4.3 보안 강화 모범 사례
MySQL 보안을 향상시키려면 다음 모범 사례를 따르는 것이 중요합니다.
- 불필요한 익명 사용자 제거 : 기본 익명 사용자를 삭제하여 인증된 사용자만 데이터베이스에 접근할 수 있도록 합니다.
- 원격 root 로그인 비활성화 : 보안을 강화하기 위해 원격 호스트에서
root사용자의 로그인을 비활성화합니다. - 강력한 비밀번호 사용 : 추측하기 어려운 강력한 비밀번호를 사용하고 정기적으로 변경합니다.
이러한 조치를 구현하면 데이터베이스 보안을 향상시키고 잠재적인 무단 접근을 방지할 수 있습니다.

5. 고급 MySQL 명령
5.1 데이터 업데이트 및 삭제
테이블의 데이터를 업데이트하려면 UPDATE 명령을 사용하십시오. 예를 들어 users 테이블의 name 열을 업데이트하려면 다음과 같이 합니다.
UPDATE users SET name = 'Jane Doe' WHERE id = 1;
이 명령은 id가 1인 레코드의 name 열 값을 Jane Doe로 변경합니다. 주의: WHERE 절을 생략하면 테이블의 모든 레코드가 업데이트됩니다.
데이터를 삭제하려면 DELETE 명령을 사용하십시오. 예를 들어 id가 1인 레코드를 삭제하려면 다음을 사용합니다.
DELETE FROM users WHERE id = 1;
이 명령은 users 테이블에서 id가 1인 레코드를 삭제합니다.
5.2 백업 및 복원
데이터베이스 백업을 만들려면 mysqldump 명령을 사용하십시오. 이 명령은 전체 데이터베이스를 내보내어 SQL 파일로 저장합니다. 예를 들어 mysqldemo 데이터베이스를 백업하려면 다음을 사용합니다.
mysqldump -u root -p mysqldemo > mysqldemo_backup.sql
데이터베이스를 복원(복구)하려면 source 명령을 사용하십시오. 다음 예는 mysqldemo_backup.sql 파일에서 데이터베이스를 복원합니다.
mysql -u root -p mysqldemo < mysqldemo_backup.sql
이 명령은 mysqldemo_backup.sql의 내용을 mysqldemo 데이터베이스에 가져옵니다.
5.3 서버 시작 및 중지
명령줄에서 MySQL 서버를 시작하려면 mysqld 명령을 사용하십시오. 예를 들어 Windows 환경에서는 다음을 실행할 수 있습니다.
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
서버를 중지하려면 mysqladmin 명령을 사용합니다.
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin" -u root -p shutdown
이 명령은 MySQL 서버를 올바르게 중지합니다. GUI 도구를 사용할 수 없는 환경에서는 명령 프롬프트에서 시작하고 중지하는 것이 특히 유용합니다.
6. 문제 해결
6.1 일반적인 오류와 해결 방법
MySQL을 사용할 때 흔히 발생하는 오류 중 하나는 “Access denied for user” 오류입니다. 이는 지정한 사용자 이름이나 비밀번호가 올바르지 않을 때 발생합니다. 해결하려면 사용자 이름과 비밀번호를 다시 확인하고 올바른 자격 증명으로 다시 로그인해 보세요.
또 다른 오류인 “Unknown database”는 지정한 데이터베이스가 존재하지 않을 때 나타납니다. SHOW DATABASES 명령을 사용해 데이터베이스가 존재하는지 확인하고, 필요하다면 생성하십시오.
SHOW DATABASES;
CREATE DATABASE db_name;
6.2 데이터베이스 작업 시 팁 및 주의사항
데이터베이스를 운영할 때는 다음 사항에 유의해야 합니다.
- 백업 수행 : 데이터베이스 작업을 수행하기 전에 항상 백업을 생성하십시오. 이렇게 하면 실수로 데이터를 삭제했을 때 복구할 수 있습니다.
- 트랜잭션 사용 : 여러 쿼리를 하나의 작업으로 실행할 때는 트랜잭션을 사용해 데이터 무결성을 유지하십시오. 트랜잭션을 사용하려면
START TRANSACTION,COMMIT,ROLLBACK을 실행합니다. - 조건을 정확히 지정 :
UPDATE또는DELETE를 사용할 때는WHERE절을 정확히 지정하는 것이 중요합니다. 이는 의도하지 않은 업데이트나 삭제를 방지하는 데 도움이 됩니다.
이러한 주의사항을 기억하면 MySQL 문제를 사전에 예방하고 데이터베이스를 안전하게 운영할 수 있습니다.
7. 결론
MySQL 명령줄은 기본적인 데이터베이스 관리부터 고급 작업까지 효율적으로 수행할 수 있는 강력한 도구입니다. 이 글에서는 데이터베이스 생성, 테이블 작업, 사용자 관리, 데이터 업데이트 및 삭제 등 필수 MySQL 명령을 다루었습니다.
데이터베이스 세계에서는 보안과 데이터 무결성이 매우 중요합니다. 따라서 사용자 권한 설정, 비밀번호 관리, 정기적인 백업 등 모범 사례를 따르는 것이 필요합니다. 또한 문제 해결 지식을 갖추면 문제가 발생했을 때 신속하게 대응할 수 있습니다.
MySQL 명령을 숙달하면 데이터베이스를 보다 효율적이고 안전하게 운영할 수 있습니다. 계속해서 연습하고 배운 내용을 적용하여 안전하고 효과적인 데이터베이스 작업에 자신감을 가지세요.


