English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 관리

MySQL 서버 시작 및 종료

Windows 시스템에서

Windows 시스템에서 명령 프롬프트(cmd)를 엽니다. MySQL 설치 디렉토리의 bin 디렉토리로 이동합니다.

시작:

cd c:/mysql/bin
mysqld --컨솔

종료:

cd c:/mysql/bin
mysqladmin -uroot shutdown

Linux 시스템에서

먼저, MySQL 서버가 시작되었는지 확인하기 위해 다음 명령어를 사용해야 합니다:

ps -ef | grep mysqld

MySql이 이미 시작되어 있다면, 위 명령어는 mysql 프로세스 목록을 출력합니다: mysql이 시작되지 않았다면 다음 명령어를 사용하여 mysql 서버를 시작할 수 있습니다:

root@호스트# cd /usr/bin
./mysqld_safe &

현재 실행 중인 MySQL 서버를 종료하려면 다음 명령어를 실행할 수 있습니다:

root@호스트# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

MySQL 사용자 설정

MySQL 사용자를 추가하려면 mysql 데이터베이스의 user 테이블에 새 사용자를 추가하면 됩니다.

아래는 guest 사용자명과 guest 비밀번호를 추가하는 예제입니다123을 추가하여 사용자에게 SELECT, INSERT 및 UPDATE 작업 권한을 부여합니다:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
데이터베이스 변경
mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

사용자를 추가할 때, MySQL이 제공하는 PASSWORD() 함수를 사용하여 비밀번호를 암호화하는 것이 좋습니다. 위의 예제에서 사용자 비밀번호가 암호화된 후는 다음과 같이 보입니다: 6f8c114b58f2ce9e.

주의事项:MySQL에서5.7 에서 user 테이블의 password는 다음으로 변경되었습니다.authentication_string

주의事项:password() 암호화 함수는 다음에서 사용할 수 있습니다. 8.0.11 중에서 제거되었습니다. MD5() 함수 대신 사용할 수 있습니다.

주의事项:주의해야 할 점은 실행해야 합니다 FLUSH PRIVILEGES 문장。 이 명령어 실행 후에는 권한 테이블을 다시 로드합니다.

이 명령어를 사용하지 않으면, 새로 생성된 사용자로 MySQL 서버에 연결할 수 없습니다. MySQL 서버를 재시작하지 않는 한입니다.

당신이 사용자를 생성할 때, 사용자에게 권한을 지정할 수 있습니다. 해당 권한 열에서 삽입 문장에서 'Y'로 설정하면 됩니다. 사용자 권한 목록은 다음과 같습니다:

  • Select_priv

  • Insert_priv

  • Update_priv

  • Delete_priv

  • Create_priv

  • Drop_priv

  • Reload_priv

  • Shutdown_priv

  • Process_priv

  • File_priv

  • Grant_priv

  • References_priv

  • Index_priv

  • Alter_priv

사용자를 추가하는 또 다른 방법은 SQL의 GRANT 명령어를 통해 추가하는 것입니다. 다음 명령어는 TUTORIALS 데이터베이스에 zara 사용자를 추가하고, 비밀번호는 zara입니다:123 。

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
데이터베이스 변경
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'zara'@'localhost'
    -> IDENTIFIED BY 'zara123';

위 명령어는 mysql 데이터베이스의 user 테이블에 사용자 정보 기록을 생성합니다.

주의: MySQL의 SQL 문은 세미콜론 (;)로 끝납니다.

/etc/my.cnf 파일 구성

일반적으로 이 구성 파일을 수정할 필요는 없습니다. 기본 설정은 다음과 같습니다:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

구성 파일에서는 다른 오류 로그 파일 저장 디렉토리를 지정할 수 있습니다. 일반적으로 이 설정을 변경할 필요는 없습니다.

MySQL 관리 명령어

MySQL 데이터베이스 사용 중 일반적으로 사용되는 명령어는 다음과 같습니다:

  • USE 데이터베이스 이름 :
    작업할 MySQL 데이터베이스를 선택하려면 이 명령어를 사용합니다. 이 명령어 사용 후 모든 MySQL 명령어는 해당 데이터베이스에만 적용됩니다.

    mysql> use w3codebox;
    데이터베이스 변경
  • SHOW DATABASES:
    MySQL 데이터베이스 관리 시스템의 데이터베이스 목록을 나열합니다.

    mysql> SHOW DATABASES;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | w3codebox |
    | cdcol |
    | mysql |
    | onethink |
    | performance_schema |
    | phpmyadmin |
    | test |
    | wecenter |
    | wordpress |
    +--------------------+
    10 rows in set (0.02 sec)
  • SHOW TABLES:
    지정된 데이터베이스의 모든 테이블을 표시합니다. 이 명령어를 사용하기 전에 use 명령어를 사용하여 작업할 데이터베이스를 선택해야 합니다.

    mysql> use w3codebox;
    데이터베이스 변경
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_w |3codebox |
    +------------------+
    | employee_tbl |
    | w3codebox_tbl |
    | tcount_tbl |
    +------------------+
    3 rows in set (0.00 sec)
  • SHOW COLUMNS FROM 데이터 테이블:
    표시된 데이터 테이블의 속성, 속성 타입, 주키 정보, NULL 여부, 기본 값 등 다른 정보.

    mysql> SHOW COLUMNS FROM w3codebox_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | w3codebox_id | int(11) | NO | PRI | NULL | NULL |
    | w3codebox_title | varchar(255) | YES | NULL | NULL | NULL | NULL |
    | w3codebox_author | varchar(255) | YES | NULL | NULL | NULL | NULL |
    | submission_date | date | YES | NULL | NULL | NULL |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
  • SHOW INDEX FROM 데이터 테이블:
    표시된 데이터 테이블의 상세 인덱스 정보를 포함하여 PRIMARY KEY(주키).

    mysql> SHOW INDEX FROM w3codebox_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | w3codebox_tbl |          0 | PRIMARY  |            1 | w3codebox_id   | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    이 명령은 MySQL 데이터베이스 관리 시스템의 성능 및 통계 정보를 출력합니다。

    mysql> SHOW TABLE STATUS  FROM w3codebox;   # 데이터베이스 w을 표시3codebox 에 있는 모든 테이블 정보
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%';     # 테이블 이름이 w3codebox 시작 테이블 정보
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%'\G;   # \G를 추가하여 열별로 출력