데이터베이스 리스트 보기

MySQL에서 현재 서버에 존재하는 데이터베이스 목록을 보려면 다음 명령어를 사용하세요:


데이터베이스 리스트 보기

MySQL에 접속한 후 아래 명령어를 입력합니다:

sql
SHOW DATABASES;

예시

  1. MySQL에 접속:
    bash
    sudo mysql -u root -p

    또는:

    bash
    mysql -u 사용자명 -p
  2. 데이터베이스 목록 확인:
    sql
    SHOW DATABASES;

출력 예시

diff
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+

주요 데이터베이스 설명

  • information_schema: 데이터베이스 스키마 관련 메타데이터 저장소.
  • mysql: 사용자, 권한, 플러그인 등 MySQL 자체 구성 정보 저장소.
  • performance_schema: MySQL 서버의 성능 관련 데이터 저장.
  • sys: MySQL 관리 작업에 도움을 주는 뷰와 기능 제공.

추가적으로 특정 데이터베이스를 탐색하거나 테이블 목록을 보고 싶다면, 아래 명령어를 사용할 수 있습니다:

특정 데이터베이스의 테이블 보기

sql
USE 데이터베이스명;
SHOW TABLES;

사용자 데이터베이스 권한 설정하기

1. 권한 부여 기본 명령어

사용자에게 데이터베이스에 대한 권한을 부여하려면 다음 명령어를 사용합니다:

sql
GRANT 권한_유형 ON 데이터베이스명.* TO '사용자명'@'호스트';

주요 항목:

  • 권한_유형: 사용자에게 부여할 권한 (예: SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES 등).
  • 데이터베이스명: 권한을 부여할 데이터베이스 이름.
  • *는 해당 데이터베이스의 모든 테이블을 의미합니다.
  • ‘사용자명’@’호스트’: 권한을 설정할 사용자 계정과 접속 호스트. localhost는 해당 서버에서만 접속 가능하며, %는 모든 IP를 허용.

예시

(1) 특정 데이터베이스에 모든 권한 부여

sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
  • 데이터베이스 wordpress의 모든 테이블에 대해 사용자 wp_user에게 localhost에서 접속 가능한 모든 권한을 부여.

(2) 특정 권한만 부여

  • 읽기 권한만 부여:
sql
GRANT SELECT ON wordpress.* TO 'wp_user'@'localhost';
  • 읽기 및 쓰기 권한 부여:
sql
GRANT SELECT, INSERT, UPDATE ON wordpress.* TO 'wp_user'@'localhost';

(3) 특정 테이블에 권한 부여

sql
GRANT SELECT, INSERT ON wordpress.posts TO 'wp_user'@'localhost';
  • 데이터베이스 wordpressposts 테이블에 대해 특정 권한만 부여.

2. 권한 적용

권한 부여 후에는 변경 사항을 적용해야 합니다:

sql
FLUSH PRIVILEGES;

3. 사용자의 권한 확인

특정 사용자의 권한을 확인하려면 다음 명령어를 실행합니다:

sql
SHOW GRANTS FOR '사용자명'@'호스트';

예:

sql
SHOW GRANTS FOR 'wp_user'@'localhost';

4. 권한 회수

사용자로부터 특정 권한을 회수하려면 다음 명령어를 사용합니다:

sql
REVOKE 권한_유형 ON 데이터베이스명.* FROM '사용자명'@'호스트';

예:

  • 모든 권한 회수:
sql
REVOKE ALL PRIVILEGES ON wordpress.* FROM 'wp_user'@'localhost';
  • 특정 권한 회수:
sql
REVOKE INSERT, UPDATE ON wordpress.* FROM 'wp_user'@'localhost';

5. 특정 데이터베이스 접근 금지

데이터베이스에 대한 모든 접근을 금지하려면 사용자 권한을 삭제합니다:

sql
DROP USER '사용자명'@'호스트';

참고

  • 권한 설정은 보안과 관련이 있으므로 필요한 권한만 부여하세요.
  • GRANTREVOKE 명령을 통해 세부적인 데이터베이스 접근 정책을 구현할 수 있습니다.

 

mysql에서 사용자, 비번 설정하기 또는 사용자 리스트 보기, 그리고 사용자 비번 변경하기

1. MySQL 사용자 계정 생성 및 비밀번호 설정

MySQL에 접속합니다:

bash
sudo mysql -u root -p

새로운 사용자 계정 생성 및 비밀번호 설정:

sql
CREATE USER '사용자명'@'호스트' IDENTIFIED BY '비밀번호';
  • 사용자명: 생성할 사용자 이름.
  • 호스트: 사용자가 접근할 호스트. 일반적으로 localhost를 사용. 외부 접속을 허용하려면 %로 설정.
  • 비밀번호: 사용자 비밀번호.

예:

sql
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'secure_password';

사용자에게 권한 부여:

sql
GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '사용자명'@'호스트';
FLUSH PRIVILEGES;

예:

sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

2. MySQL 사용자 목록 확인

MySQL 사용자 목록을 확인하려면 다음 명령어를 실행:

sql
SELECT User, Host FROM mysql.user;

이 명령어는 모든 사용자 계정과 해당 호스트를 표시합니다.


3. MySQL 사용자 비밀번호 변경

(1) 비밀번호 변경하기

MySQL 5.7 이상 버전에서는 다음 명령어를 사용하여 비밀번호를 변경합니다:

sql
ALTER USER '사용자명'@'호스트' IDENTIFIED BY '새로운_비밀번호';

예:

sql
ALTER USER 'wp_user'@'localhost' IDENTIFIED BY 'new_secure_password';

변경 후 권한 적용:

sql
FLUSH PRIVILEGES;

4. MySQL 사용자 삭제

사용자를 삭제하려면 다음 명령어를 사용합니다:

sql
DROP USER '사용자명'@'호스트';

예:

sql
DROP USER 'wp_user'@'localhost';

5. MySQL 모든 사용자 비밀번호 재설정 (루트 계정 예외)

비밀번호를 전역적으로 재설정해야 한다면, 사용자별로 수동으로 ALTER USER 명령을 실행해야 합니다. MySQL은 보안 이유로 자동화된 대규모 비밀번호 변경을 지원하지 않습니다.


참고 사항

  • 사용자 생성 및 권한 부여 후에는 항상 FLUSH PRIVILEGES를 실행하여 변경 사항을 적용하세요.
  • 특정 사용자에 대해 읽기 전용 권한 등 제한된 권한을 부여하고 싶다면 다음처럼 설정할 수 있습니다:
    sql
    GRANT SELECT ON 데이터베이스명.* TO '사용자명'@'호스트';

워드프레스 초기화 하는법. 다시 설치하는 방법

워드프레스를 초기화하거나 다시 설치하려면, 기존 설치를 삭제하고 새롭게 설정해야 합니다. 아래 방법에 따라 진행하세요.


1. 기존 워드프레스 삭제

(1) 워드프레스 파일 삭제

워드프레스 파일이 저장된 디렉터리를 삭제합니다.

bash
sudo rm -rf /var/www/html/wordpress

(2) MySQL 데이터베이스 삭제

MySQL에 접속하여 기존 데이터베이스를 삭제합니다.

bash
sudo mysql -u root -p

다음 명령어를 실행:

sql
DROP DATABASE wordpress;
DROP USER 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. 새 워드프레스 설치 준비

(1) 새 데이터베이스 및 사용자 생성

MySQL에서 새롭게 워드프레스용 데이터베이스와 사용자를 생성합니다.

bash
sudo mysql -u root -p

다음 명령어 실행:

sql
CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '새_비밀번호';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 워드프레스 파일 재설치

(1) 워드프레스 다운로드

새로운 워드프레스 파일을 다운로드합니다.

bash
wget https://wordpress.org/latest.tar.gz

(2) 압축 해제 및 이동

bash
tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/html/

(3) 파일 권한 설정

bash
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress

4. Apache 설정 확인

이미 Apache 설정이 완료되어 있다면 이 단계는 생략 가능합니다.
워드프레스 가상 호스트 설정이 제대로 되어 있는지 확인하세요:

bash
sudo nano /etc/apache2/sites-available/wordpress.conf

필요한 경우 설정을 활성화:

bash
sudo a2ensite wordpress.conf
sudo systemctl reload apache2

5. 새 워드프레스 설치 진행

  1. 웹 브라우저에서 서버 IP 주소 또는 도메인으로 접속:
    arduino
    http://서버_IP
  2. 새 데이터베이스 정보 입력
    • 데이터베이스 이름: wordpress
    • 사용자 이름: wp_user
    • 비밀번호: 새로 설정한 비밀번호
    • 호스트 이름: localhost
  3. 관리자 계정 및 사이트 설정
    • 사이트 이름, 관리자 계정, 비밀번호 등을 새로 설정합니다.

6. (선택) 기존 데이터 초기화

기존 데이터베이스를 삭제하지 않고 초기화하려면, 워드프레스 초기화 플러그인을 사용할 수 있습니다.

데이터베이스 연결 중 오류

wp-config.php의 사용자명과 비밀번호 정보가 올바르지 않거나 192.168.1.3의 데이터베이스 서버에 접근할 수 없다는 것을 의미합니다. 이는 호스트의 데이터베이스 서버가 동작하지 않고 있다는 것을 의미할 수도 있습니다.


1. wp-config.php 파일의 설정 확인

워드프레스의 wp-config.php 파일에 입력한 데이터베이스 정보가 정확한지 확인하세요.

bash
sudo nano /var/www/html/wordpress/wp-config.php

확인해야 할 항목:

php
define('DB_NAME', 'wordpress'); // 데이터베이스 이름
define('DB_USER', 'wp_user'); // 데이터베이스 사용자명
define('DB_PASSWORD', '비밀번호'); // 데이터베이스 비밀번호

define('DB_HOST', 'localhost'); // 호스트 이름

점검:

  • DB_NAME: MySQL에서 생성한 데이터베이스 이름과 일치하는지 확인.
  • DB_USER: 데이터베이스 사용자 이름이 올바른지 확인.
  • DB_PASSWORD: MySQL 사용자 계정의 비밀번호와 동일한지 확인.
  • DB_HOST: 동일 서버에 설치된 MySQL이라면 localhost로 유지.

2. MySQL 사용자 권한 확인

MySQL에 접속해 사용자 권한이 제대로 설정되었는지 확인합니다.

bash
sudo mysql -u root -p

다음 명령어를 실행:

sql
USE mysql;
SELECT User, Host FROM mysql.user WHERE User = 'wp_user';
  • 결과에 wp_userlocalhost가 포함되어 있는지 확인합니다.
  • 권한이 제대로 설정되지 않았다면 다시 권한 부여:
    sql
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '비밀번호';
    FLUSH PRIVILEGES;

3. MySQL 서버 상태 확인

MySQL 서버가 실행 중인지 확인합니다.

bash
sudo systemctl status mysql
  • MySQL 서버가 멈춰 있다면:
    bash
    sudo systemctl start mysql
  • 부팅 시 MySQL이 자동으로 시작되도록 설정:
    bash
    sudo systemctl enable mysql

4. MySQL에서 직접 접속 테스트

wp-config.php에 설정된 사용자 계정으로 데이터베이스에 접속할 수 있는지 테스트합니다.

bash
mysql -u wp_user -p -h localhost
  • 제대로 접속되면 MySQL CLI가 열립니다.
  • 접속에 실패한다면 사용자 이름, 비밀번호, 또는 호스트 설정을 다시 확인하세요.

5. 방화벽 설정 확인

우분투 방화벽(UFW)을 사용 중인 경우 MySQL 포트(기본: 3306)가 열려 있는지 확인하세요.

방화벽 상태 확인:

bash
sudo ufw status

MySQL 포트를 열려면:

bash
sudo ufw allow 3306
sudo ufw reload

6. DB_HOST 설정 변경 (외부 서버 사용 시)

DB_HOSTlocalhost 대신 실제 MySQL 서버 IP 주소(175.202.41.78)로 설정해 보세요.
wp-config.php 파일에서:

php
define('DB_HOST', '175.202.41.78');

외부 서버일 경우 확인할 사항:

  • MySQL 서버에서 외부 접속이 허용되었는지 확인:
    sql
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'%' IDENTIFIED BY '비밀번호';
    FLUSH PRIVILEGES;
  • MySQL 설정 파일(/etc/mysql/mysql.conf.d/mysqld.cnf)에서 bind-address 항목이 0.0.0.0 또는 특정 IP로 설정되어 있는지 확인하세요.

7. Apache 및 PHP 로그 확인

Apache와 PHP 로그를 확인하여 추가 오류 정보를 파악하세요.

Apache 로그:

bash
sudo tail -f /var/log/apache2/error.log

PHP 오류 로그:

bash
sudo tail -f /var/log/php*.log

우분투에 워드프레스 설치하기

우분투에 워드프레스를 설치하는 방법을 단계별로 안내드립니다. 이 과정은 기본적으로 LAMP 스택(Linux, Apache, MySQL/MariaDB, PHP)을 설치하고, 워드프레스를 다운로드하여 설정하는 방식입니다.


1. 우분투 업데이트

먼저 시스템을 최신 상태로 업데이트합니다.

bash
sudo apt update && sudo apt upgrade -y

2. LAMP 스택 설치

(1) Apache 설치

bash
sudo apt install apache2 -y

Apache가 설치되었는지 확인:

bash
sudo systemctl status apache2

웹 브라우저에서 서버 IP 주소를 입력해 Apache 기본 페이지가 표시되면 정상적으로 설치된 것입니다.


(2) MySQL 또는 MariaDB 설치

MySQL 설치:

bash
sudo apt install mysql-server -y

MySQL 초기 설정:

bash
sudo mysql_secure_installation

설정 과정에서 관리자 비밀번호를 설정하고 기본 보안 옵션을 적용합니다.


(3) PHP 설치

PHP 및 필요한 확장 모듈 설치:

bash
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc -y

PHP가 제대로 설치되었는지 확인:

bash
php -v

3. 워드프레스 설치

(1) 워드프레스 다운로드

bash
wget https://wordpress.org/latest.tar.gz

압축 해제:

bash
tar -xvzf latest.tar.gz

워드프레스 파일을 Apache의 웹 디렉토리로 이동:

bash
sudo mv wordpress /var/www/html/

(2) 데이터베이스 설정

MySQL 콘솔에 접속:

bash
sudo mysql -u root -p

다음 명령어를 사용해 워드프레스용 데이터베이스와 사용자를 생성:

sql
CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

(3) 파일 권한 설정

워드프레스 디렉토리의 권한을 설정:

bash
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress

(4) Apache 설정

워드프레스용 Apache 가상 호스트 파일 생성:

bash
sudo nano /etc/apache2/sites-available/wordpress.conf

다음 내용을 추가:

bash
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/wordpress
ServerName example.com
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

파일 저장 후 닫기.

Apache 설정 활성화:

bash
sudo a2ensite wordpress.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

4. 워드프레스 설치 마무리

  1. 웹 브라우저에서 서버의 IP 주소 또는 도메인 입력:
    예: http://서버_IP
  2. 워드프레스 설치 화면에서 데이터베이스 정보 입력:
    • 데이터베이스 이름: wordpress
    • 사용자 이름: wp_user
    • 비밀번호: 위에서 설정한 비밀번호
  3. 설치 완료 후 관리자 계정 설정.

우분투기반 워드프레서 설치 및 운영할 수 있도록 도와 주는 책은?

우분투 기반에서 워드프레스를 설치하고 운영하는 방법을 다룬 책은 많지 않지만, 다음과 같은 책들이 도움을 줄 수 있습니다. 이와 함께 추가적으로 한국어로 된 온라인 자료도 활용하면 좋습니다.

추천 서적

  1. “워드프레스 완벽 가이드” (한빛미디어)
    • 워드프레스 설치, 운영, 테마, 플러그인 설정 등을 다룹니다.
    • 주로 웹 호스팅 기반을 설명하지만, 우분투 환경에도 응용 가능합니다.
  2. “리눅스 서버 관리 실무 바이블” (길벗)
    • 리눅스 서버 설정부터 아파치, MySQL 등 우분투 서버 환경 설정을 포함하여 워드프레스 설치의 기초가 되는 내용을 다룹니다.
  3. “워드프레스 사이트 만들기” (정보문화사)
    • 워드프레스 설치 및 커스터마이징 관련 내용을 다룹니다.
  4. “Linux Bible” (영문, Wiley)
    • 우분투 서버를 기반으로 다양한 애플리케이션을 설치하는 방법을 설명합니다. 워드프레스 설치와 서버 최적화 관련 내용도 포함되어 있습니다.

참고할 수 있는 온라인 자료

  • 워드프레스 공식 문서 (한국어)
    https://ko.wordpress.org/support/
    설치, 운영, 관리 방법이 상세히 나와 있습니다.
  • “우분투에서 LAMP 스택 설치 및 워드프레스 설정” 관련 블로그
    검색 키워드: “우분투 워드프레스 설치 가이드”
  • KT 인터넷 사용자 서버 설정 관련 자료
    KT의 포트 개방 및 DDNS 설정 가이드도 함께 확인하세요.