2016. 3. 28. 18:08

MySQL 5.7.9~이상 설치관련

1. wget을 통해 리눅스 버전에 맞는 RPM Bundle 을 다운로드

2. yum install  mysql-community-devel-5.7.11-1.el6.x86_64.rpm 과 같이 rpm을 설치해줌

  (devel, libs, common, client, server 순으로 설치)

3. /etc/my.cnf 수정(옵션은 알아서...)


[client]

default-character-set = utf8

port = 3306

socket = /var/lib/mysql/mysql.sock


[mysqld]

socket=/var/lib/mysql/mysql.sock

datadir=/var/lib/mysql


skip-external-locking

key_buffer_size = 384M

max_allowed_packet = 1M

table_open_cache = 512

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 32M


#dns query

skip-name-resolve


#connection

max_connections = 1000

max_connect_errors = 1000

wait_timeout= 60


#slow-queries

slow_query_log = /var/lib/mysql/slow-queries.log

long_query_time = 3



symbolic-links=0


### log

log-error=/var/log/mysqld.log

pid-file=/var/lib/mysql/mysqld.pid


###chracter

character-set-client-handshake=FALSE

character-set-server = utf8


##Password Policy

validate_password_policy=LOW


### INNODB Spectific options

default-storage-engine = InnoDB

#skip-innodb

#innodb_additional_mem_pool_size = 16M

#innodb_buffer_pool_size = 1024MB

#innodb_data_file_path = ibdata1:10M:autoextend

innodb_write_io_threads = 8

innodb_read_io_threads = 8

innodb_thread_concurrency = 16

innodb_flush_log_at_trx_commit = 1

innodb_log_buffer_size = 8M

innodb_log_file_size = 128M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120


4. Mysql 5.7부터 비밀번호가 랜덤으로 세팅 되므로 safe 모드로 들어가서 비번을 변경한다.

/etc/my.cnf 에 skip-grant-tables=TRUE 를 넣어서 service mysqld start 를 하거나..

mysqld_safe --skip-grant-tables & 를 사용한다.


#주의 skip-grant-tables 옵션을 사용할때 my.cnf에 validate_password_policy 옵션이 존재하면 error로 mysql이 시작되지 않으니 주의할 것.


5. mysql 로들어가서 아래처럼 비밀번호를 변경

use mysql;

UPDATE user SET authentication_string=PASSWORD('비밀번호') WHERE User = 'root';

flush privileges;


6. MySQL safe mode를 종료한다.

service mysqld stop 이나 mysqladmin -uroot shutdown으로 종료.


7. /etc/my.cnf에 validate_password_policy=LOW 이 옵션 추가.

이 옵션은 비밀번호를 제한할때 사용하는건데 LOW로 해야 기존처럼 아무거나 사용할 수 있다.

아니면 복잡하게 생성해야 됨


8. 정상적으로 mysql을 시작하고 root로 로그인하고 명령을 사용할려면 아래같은 오류가 뜬다.

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

말그대로 비밀번호를 다시!! 바꿔줘야 한다는 말인데 아까 설정한 것을 그대로 해줘도 된다.

ALTER USER 'root'@'localhost' IDENTIFIED BY '루트비번';

flush privileges;


9. 이제 정상적으로 사용이 가능.