centos 7 默认是安装了 mariadb的,需要先卸载 mariadb,并删除 mysql 用户
# yum list installed|grep -i mysql
akonadi-mysql.x86_64 1.9.2-4.el7 @anaconda
perl-DBD-MySQL.x86_64 4.023-5.el7 @anaconda
qt-mysql.x86_64 1:4.8.5-13.el7 @anaconda
# yum list installed|grep -i mariadb
mariadb.x86_64 1:5.5.56-2.el7 @anaconda
mariadb-libs.x86_64 1:5.5.56-2.el7 @anaconda
mariadb-server.x86_64 1:5.5.56-2.el7 @anaconda
# cat /etc/group |grep -i mysql
mysql:x:27:
# cat /etc/passwd|grep -i mysql
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
卸载 mariadb
# yum remove mariadb mariadb-libs mariadb-server
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Removing:
mariadb x86_64 1:5.5.56-2.el7 @anaconda 49 M
mariadb-libs x86_64 1:5.5.56-2.el7 @anaconda 4.4 M
mariadb-server x86_64 1:5.5.56-2.el7 @anaconda 58 M
Removing for dependencies:
akonadi-mysql x86_64 1.9.2-4.el7 @anaconda 9.6 k
perl-DBD-MySQL x86_64 4.023-5.el7 @anaconda 323 k
postfix x86_64 2:2.10.1-6.el7 @anaconda 12 M
qt-mysql x86_64 1:4.8.5-13.el7 @anaconda 74 k
Transaction Summary
======================================================================================================================================
Remove 3 Packages (+4 Dependent packages)
Installed size: 124 M
Is this ok [y/N]:
删除了4个相关依赖的 rpm包( akonadi-mysql perl-DBD-MySQL postfix qt-mysql )
删除mysql用户
# userdel mysql
# cat /etc/group |grep -i mysql
# cat /etc/passwd |grep -i mysql
创建 mysql 用户
建议不管是 yum 安装还是 make 安装,都先创建用户
用户组和用户的id均为 10000 ,用户目录为 /home/mysql/,不要使用 /var/lib/mysql/
# groupadd -g 10000 mysql;
# useradd -u 10000 -g mysql mysql -s /sbin/nologin -d /home/mysql
# cat /etc/group |grep -i mysql
mysql:x:10000:
# cat /etc/passwd |grep -i mysql
mysql:x:10000:10000::/home/mysql:/sbin/nologin
# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all ; yum makecache ;
# yum install wget zip unzip dos2unix pigz iputils iftop git tree sysstat \
gcc gcc-c++ make cmake automake autoconf *gcc* libaio libaio-devel \
bz bison libtool ncurses \
perl-DBI perl-DBD-MySQL perl-JSON perl-Time-HiRes perl-devel \
numactl* bzip2 openssl openssl-devel
还是依赖安装了 mariadb-libs
调整 io scheduler,numa,thp
# vi /etc/default/grub
ipv6.disable=1 numa=off transparent_hugepage=never elevator=deadline
# grub2-mkconfig -o /boot/grub2/grub.cfg
临时设置 io scheduler,仅记录一下
# echo "deadline" > /sys/block/sda/queue/scheduler
# vi /etc/sysctl.conf
#内存分配方式,不允许超分配
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.swappiness = 1
# vi /etc/security/limits.conf
root soft nofile 655360 # The maximum number of open file descriptors
root hard nofile 655360
mysql soft nofile 655360
mysql hard nofile 655360
root soft nproc 655360 # The maximum number of processes available to a single user
root hard nproc 655360
mysql soft nproc 655360
mysql hard nproc 655360
* soft memlock unlimited # The maximum size that may be locked into memory
* hard memlock unlimited
* soft core unlimited # The maximum size of core files created
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
# vi /etc/sysconfig/selinux
SELINUX=DISABLED
或者
# vi /etc/selinux/config
SELINUX=disabled
# vi /etc/ssh/sshd_config
UseDNS no
systemctl restart sshd
修改 NOZEROCONF
# vi /etc/sysconfig/network
NOZEROCONF=YES
禁止ipv6
# vi /etc/sysconfig/network
NETWORKING_IPV6=no
# vi /etc/hosts
#::1 localhost localhost6 localhost6.localdomain6
重启系统,再次确认
# lsmod |grep –i ipv6
# ifconfig |grep -i inet6
确保 cron,sshd,network 这几个是start,enable的
# systemctl list-unit-files|grep -Ei "cron|sshd|networking"
mysql data 目录 mount时添加一些选项,强烈建议使用 lvm,xfs
# fdisk /dev/sdb
# pvcreate /dev/sdb1 /dev/sdb2
# vgcreate vgoradata /dev/sdb1 /dev/sdb2
# lvcreate -L 90G -n lvoradata01 vgoradata
# which mkfs[tab]
# mkfs.xfs /dev/vgoradata/lvoradata01
# mkdir -p /data
# mount -o defaults,noatime,nodiratime,nobarrier,inode64 /dev/vgoradata/lvoradata01 /data
# df -hT
# vi /etc/fstab
/dev/vgoradata/lvoradata01 /data xfs defaults,noatime,nodiratime,nobarrier,inode64 0 0
# vi /etc/profile
export PATH=/usr/local/mysql/bin:$HOME/bin:$PATH
# vi /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/local/mysql/lib
# renice -19 -p `pidof mysqld`
或者在启动时
# nice --19 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &