centos 7.4 + mysql 5.7 + 二进制 安装

os: centos 7.4
db: mysql 5.7

# yum install make cmake *gcc* libaio libaio-devel automake autoconf bz bison libtool ncurses wget perl-DBI perl-DBD-MySQL perl-JSON perl-Time-HiRes perl-devel numactl* bzip2 git openssl openssl-devel

修改 NOZEROCONF

# vi /etc/sysconfig/network
NOZEROCONF=YES

修改IO调度器设置
elevator=deadline
关闭 NUMA 特性
numa=off
禁用透明大页
transparent_hugepage=never

# vi /etc/default/grub
# grub2-mkconfig -o /boot/grub2/grub.cfg   

修改os内核参数

# vi /etc/sysctl.conf
vm.swappiness = 1 

调整资源限制

# vi  /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

* soft nproc 65535
* hard nproc 65535

禁止selinux

  vi /etc/sysconfig/selinux
  SELINUX=DISABLED
  或者
  vi /etc/selinux/config
  SELINUX=disabled

sshd中关闭UseDNS

vi /etc/ssh/sshd_config

修改为
UseDNS no
systemctl restart sshd

确认安装sysstat

rpm -qa | grep sysstat

安装mysql 软件
添加一个mysql组及用户,默认存在mysql用户(MariaDB Server)
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin

# groupadd mysql
# useradd -r -g mysql mysql

# mkdir -p /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/

basedir=/usr/local/mysql/
datadir=/var/lib/mysql


# cd /tmp
# tar -xvf ./mysql-5.7.21-el7-x86_64.tar
mysql-5.7.21-el7-x86_64.tar.gz
mysql-test-5.7.21-el7-x86_64.tar.gz


# tar -zxvf ./mysql-5.7.21-el7-x86_64.tar.gz
# cd mysql-5.7.21-el7-x86_64
# mv ./* /usr/local/mysql/

# cd /usr/local/mysql
# chown -R mysql:mysql ./*

初始化数据库

# cd /usr/local/mysql/bin
# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/var/lib/mysql/     
2018-03-26T08:31:53.761393Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-03-26T08:31:55.234236Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-03-26T08:31:55.304877Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-03-26T08:31:55.423472Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 243eec6c-30d0-11e8-adff-0800273d32a4.
2018-03-26T08:31:55.427992Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-03-26T08:31:55.429849Z 1 [Note] A temporary password is generated for root@localhost: )kyYcrsc=7r%
# ls -l /var/lib/mysql/
total 110628
-rw-r----- 1 mysql mysql       56 Mar 26 16:31 auto.cnf
-rw-r----- 1 mysql mysql      420 Mar 26 16:31 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Mar 26 16:31 ibdata1
-rw-r----- 1 mysql mysql 50331648 Mar 26 16:31 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Mar 26 16:31 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 Mar 26 16:31 mysql
drwxr-x--- 2 mysql mysql     8192 Mar 26 16:31 performance_schema
drwxr-x--- 2 mysql mysql     8192 Mar 26 16:31 sys

ssl

# ./mysql_ssl_rsa_setup  --datadir=/var/lib/mysql/
Generating a 2048 bit RSA private key
......................+++
.....................................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.....................................................................+++
...................................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
...+++
..................................................................+++
writing new private key to 'client-key.pem'
-----

# ls -l /var/lib/mysql/
total 110660
-rw-r----- 1 mysql mysql       56 Mar 26 16:31 auto.cnf
-rw------- 1 root  root      1675 Mar 26 16:33 ca-key.pem
-rw-r--r-- 1 root  root      1107 Mar 26 16:33 ca.pem
-rw-r--r-- 1 root  root      1107 Mar 26 16:33 client-cert.pem
-rw------- 1 root  root      1679 Mar 26 16:33 client-key.pem
-rw-r----- 1 mysql mysql      420 Mar 26 16:31 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Mar 26 16:31 ibdata1
-rw-r----- 1 mysql mysql 50331648 Mar 26 16:31 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Mar 26 16:31 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 Mar 26 16:31 mysql
drwxr-x--- 2 mysql mysql     8192 Mar 26 16:31 performance_schema
-rw------- 1 root  root      1675 Mar 26 16:33 private_key.pem
-rw-r--r-- 1 root  root       451 Mar 26 16:33 public_key.pem
-rw-r--r-- 1 root  root      1107 Mar 26 16:33 server-cert.pem
-rw------- 1 root  root      1679 Mar 26 16:33 server-key.pem
drwxr-x--- 2 mysql mysql     8192 Mar 26 16:31 sys

一些额外工作

# cd /usr/local/mysql/support-files
# cp ./mysql.server /etc/init.d/mysql.server

# vi /etc/my.cnf



# /etc/init.d/mysql.server status
# /etc/init.d/mysql.server start
# /etc/init.d/mysql.server stop

如果密码过期或者没记住通过skip-grant-tables可以解决

# vi /etc/my.cnf
[mysqld]
skip-grant-tables


validate_password_length=4         
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_policy=0
validate_password_special_char_count=0

update mysql.user

use mysql;

update mysql.user
set authentication_string = password('rootroot')
where host='localhost' and user='root'
;

flush privileges;


select host,user,authentication_string
from mysql.user
where 1=1
order by user,host
;

如果出现密码过期的错误,可以启用skip-grant-tables再次update

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
update mysql.user 
set password_expired='N' 
where host='localhost' and user='root';

flush privileges;
posted @ 2018-03-26 19:05  peiybpeiyb  阅读(225)  评论(0编辑  收藏  举报