본 글은 mysql 5.7.14의 설치 및 구성 코드를 기록한 것인데, 구체적인 내용은 다음과 같다
OS: CentOS 6.6
DB: MySQL 5.7.14
1. mysql을 다운로드하세요
CD /도구
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
2. MySQL 바이너리 압축 해제 파일용 디렉터리를 만듭니다.
mkdir -p /opt/mysql [root@zw-test-db mysql]# cd /tools/ [root@zw-test-db tools]# ll -l mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 642694570 Aug 29 15:02 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
3. /opt/mysql 디렉토리에 압축을 푼다
[root@zw-test-db tools]# cd /opt/mysql/ [root@zw-test-db mysql]# tar -zxvf /tools/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz [root@zw-test-db mysql]# mv mysql-5.7.14-linux-glibc2.5-x86_64/ mysql-5.7.14 [root@zw-test-db mysql]# ll drwxr-xr-x 9 7161 31415 4096 Jul 12 21:03 mysql-5.7.14
4. /usr/local에 대한 소프트 연결을 만듭니다
[root@zw-test-db mysql]# cd /usr/local/ [root@zw-test-db local]# ls bin etc games include lib lib64 libexec redis-3.2.2 sbin share src [root@zw-test-db local]# ln -s /opt/mysql/mysql-5.7.14 /usr/local/mysql [root@zw-test-db local]# ll mysql lrwxrwxrwx 1 root root 23 Aug 31 17:36 mysql -> /opt/mysql/mysql-5.7.14 [root@zw-test-db local]#
5. 사용자 생성
[root@zw-test-db /]# groupadd mysql [root@zw-test-db /]# useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
-s nologin은 쉘 없이 로그인할 수 없습니다
6. 구성 파일을 기반으로 기본 디렉터리를 만듭니다.
mkdir /data/mysql mkdir /data/mysql/mysql_3306 cd /data/mysql/mysql_3306/ mkdir data mkdir logs mkdir tmp chown -R mysql:mysql /data/mysql/mysql3306
7. /etc/my.cnf 구성 파일을 생성합니다(과정 생략)
8. 초기화, 5.7 초기화 시 기본 비밀번호가 추가됩니다
[root@zw-test-db mysql]# cd /usr/local/mysql/ [root@zw-test-db mysql]# ./bin/mysqld --initialize [root@zw-test-db data]# pwd /data/mysql/mysql_3306/data ### 下面是5.5, 5.6 初始化 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
9. 오류 로그를 확인하고 오류가 있는지 확인
cd /data/mysql/mysql_3306/data [root@zw-test-db data]# vim error.log [root@zw-test-db data]# tail -f error.log 2016-08-31T09:44:32.394657Z 0 [Note] Giving 0 client threads a chance to die gracefully 2016-08-31T09:44:32.394680Z 0 [Note] Shutting down slave threads 2016-08-31T09:44:32.394686Z 0 [Note] Forcefully disconnecting 0 remaining clients 2016-08-31T09:44:32.415409Z 0 [Note] Binlog end 2016-08-31T09:44:32.434217Z 0 [Note] InnoDB: FTS optimize thread exiting. 2016-08-31T09:44:32.434293Z 0 [Note] InnoDB: Starting shutdown... 2016-08-31T09:44:32.534587Z 0 [Note] InnoDB: Dumping buffer pool(s) to /data/mysql/mysql_3306/data/ib_buffer_pool 2016-08-31T09:44:32.534741Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 160831 17:44:32 2016-08-31T09:44:34.308784Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2525428 2016-08-31T09:44:34.308945Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
10. 초기화 비밀번호 보기
[root@zw-test-db 데이터]# grep 비밀번호 error.log
2016-08-31T09:44:21.172167Z 1 [참고] root@localhost에 대한 임시 비밀번호가 생성됩니다: 8aahkRkxfm%t
비밀번호: 8aahkRkxfm%t
11 시작 스크립트 만들기
[root@zw-test-db 데이터]# cd /usr/local/mysql/
[root@zw-test-db mysql]# cp support-files/mysql.server /etc/init.d/mysql
cp: `/etc/init.d/mysql' y
12. mysql을 시작하는 세 가지 방법
방법 1:
root@zw-test-db bin]# ./mysqld_safe --user=mysql & [1] 12455 [root@zw-test-db bin]# 160830 15:18:01 mysqld_safe Logging to '/usr/local/mysql/data/zw-test-db.err'. 160830 15:18:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
방법 2:
[root@zw-test-db bin]# /etc/init.d/mysqld restart Shutting down MySQL..160830 15:18:14 mysqld_safe mysqld from pid file /usr/local/mysql/data/zw-test-db.pid ended [ OK ] Starting MySQL. [ OK ] [1]+ Done ./mysqld_safe --user=mysql
방법 3:
[root@zw-test-db bin]# service mysqld restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ] [root@zw-test-db bin]#
13. 환경변수 추가
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /root/.bash_profile
소스 /root/.bash_profile
14. 로그인
[root@zw-test-db mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.14-log Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@localhost [(none)]>show databases; --提示要修改密码 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
15. 비밀번호 변경
root@localhost [(none)]>alter user user() identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) root@localhost [(none)]>show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
데이터베이스를 볼 수 있습니다
16. 5.6 버전 이전에는 계정 보안 강화가 필요합니다. 5, 7 이후에는 테스트 데이터베이스가 사라졌습니다
delete from mysql.user where user!='root' or host!='localhost'; --删除非root用户,登陆主机不是localhost的账号 flush privileges; alter user user() identified by '123456'; drop database test; truncate mysql.db;
이상은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되길 바라며, 많은 응원 부탁드립니다.