MySQL 관리
MySQL 관리
MySQL 서버 시작 및 종료
Windows 시스템
Windows 시스템에서는 명령창(cmd)을 열고 MySQL 설치 디렉터리의 bin 디렉터리를 입력합니다.
시작:
cd c:/mysql/bin mysqld --console
닫기:
cd c:/mysql/bin mysqladmin -uroot shutdown
Linux 시스템
우선, MySQL 서버가 시작되었는지 확인하려면 다음 명령을 사용하십시오.
ps -ef | grep mysqld
MySql이 시작된 경우 위 명령은 mysql 프로세스 목록을 출력합니다. mysql이 시작되지 않은 경우 다음 명령을 사용하여 시작할 수 있습니다. mysql 서버:
root@host# cd /usr/bin./mysqld_safe &
현재 실행 중인 MySQL 서버를 종료하려면 다음 명령을 실행할 수 있습니다.
root@host# cd /usr/bin./mysqladmin -u root -p shutdownEnter password: ******
MySQL 사용자 설정
MySQL 사용자를 추가해야 하는 경우 mysql 데이터베이스의 사용자 테이블에 새 사용자를 추가하기만 하면 됩니다.
다음은 사용자 이름이 guest이고 비밀번호가 guest123인 사용자를 추가하는 예입니다. 해당 사용자는 SELECT, INSERT 및 UPDATE 작업을 수행할 권한이 있습니다.
root@host# mysql -u root -p Enter password:******* mysql> use mysql;Database changedmysql> 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임을 확인할 수 있습니다.
참고: MySQL5.7에서는 사용자 테이블의 비밀번호가 인증_문자열로 대체되었습니다.
참고: 비밀번호() 암호화 기능은 8.0.11에서 제거되었으며 MD5() 기능으로 대체될 수 있습니다.
참고: FLUSH PRIVILEGES 문을 실행해야 합니다. 이 명령을 실행하면 인증 테이블이 다시 로드됩니다.
이 명령을 사용하지 않으면 mysql 서버를 다시 시작하지 않는 한 새로 생성된 사용자를 사용하여 mysql 서버에 연결할 수 없습니다.
사용자 생성 시 해당 권한 항목의 삽입문에서 'Y'로 설정하면 됩니다.
개인정보 선택
개인정보 삽입
개인정보 업데이트
개인정보 삭제
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
사용자를 추가하는 또 다른 방법은 SQL GRANT 명령을 사용하는 것입니다. 다음 명령은 사용자 zara를 비밀번호 zara123을 사용하여 지정된 데이터베이스 TUTORIALS에 추가합니다.
root@host# mysql -u root -pEnter password:*******mysql> use mysql;Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
위 명령은 mysql 데이터베이스의 사용자 테이블에 사용자 정보 레코드를 생성합니다.
참고: 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 데이터베이스를 사용할 때 일반적으로 사용되는 명령입니다.
사용 데이터베이스 이름:
운영할 Mysql 데이터베이스를 선택하세요. 이 명령을 사용한 후 모든 MySQL 명령은 이 데이터베이스만 대상으로 합니다.
mysql> use RUNOOB;Database changed
SHOW DATABASES:
MySQL 데이터베이스 관리 시스템의 데이터베이스 목록을 나열합니다.
mysql> SHOW DATABASES; +--------------------+| Database | +--------------------+ | information_schema | | RUNOOB | | cdcol | | mysql | | onethink | | performance_schema | | phpmyadmin | | test | | wecenter | | wordpress | +--------------------+10 rows in set (0.02 sec)
SHOW TABLES:
지정된 데이터베이스의 모든 테이블을 표시합니다. 이 명령을 사용하기 전에 use 명령을 사용하여 작동할 데이터베이스를 선택해야 합니다.
mysql> use RUNOOB;Database changed mysql> SHOW TABLES;+------------------+ | Tables_in_runoob | +------------------+| employee_tbl | | runoob_tbl | | tcount_tbl | +------------------+3 rows in set (0.00 sec)
SHOW COLUMNS FROM 데이터 테이블:
데이터 테이블의 속성, 속성 유형, 기본 키 정보, NULL 여부, 기본값 및 기타 정보를 표시합니다.
mysql> SHOW COLUMNS FROM runoob_tbl; +-----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+-------+| runoob_id | int(11) | NO | PRI | NULL | | | runoob_title | varchar(255) | YES | | NULL | | | runoob_author | varchar(255) | YES | | NULL | | | submission_date | date | YES | | NULL | | +-----------------+--------------+------+-----+---------+-------+4 rows in set (0.01 sec)
SHOW INDEX FROM 데이터 테이블:
PRIMARY KEY(기본 키)를 포함하여 데이터 테이블의 자세한 인덱스 정보를 표시합니다.
mysql> SHOW INDEX FROM runoob_tbl; +------------+------------+----------+--------------+------------- +-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+------------+------------+----------+--------------+-------------+-----------+-- -----------+----------+--------+------+------------+---------+---------------+ | runoob_tbl | 0 | PRIMARY | 1 | runoob_id | A | 2 | NULL | NULL | | BTREE | | |+------------+------------+----------+--------------+- ------------+-----------+-------------+----------+--------+---- -+------------+---------+---------------+1 row in set (0.00 sec)
SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] G:
이 명령은 Mysql 데이터베이스 관리 시스템의 성능 및 통계 정보를 출력합니다.
mysql> SHOW TABLE STATUS FROM RUNOOB; # 显示数据库 RUNOOB 中所有表的信息 mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'; # 表名以runoob开头的表的信息 mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G; # 加上 \G,查询结果按列打印
추천 관련 비디오 튜토리얼: MySQL 사용