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. 이제 정상적으로 사용이 가능.