MySQL专业安装
MySQL下载以及版本名词解释
MySQL官方网站:http://dev.mysql.com好是去官网下载,或者是值得信赖的源去下载
安全,可靠。
版本:
GA Generally Availabled Release --生产环境版本
DMR Development Releases --开发版本
RC Release candidate --保留全部功能稳定版本
Beta Plubic Beat befor final release --功能完全版本,基本可以用于生产环境
MySQL下载安装类型选择:因为官方的二进制版本是经过官方编译的,参数和性能,还有gcc版本都比我们自己编译的要更好,所以如果不需要裁剪功能的话,一般不需要编译安装,我们这里推荐用二进制包的安装
二进制包下载链接:我们以5.7.26和 8.0.16 为例
5.7.26下载地址:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
8.0.16下载地址:
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
我们可以复制链接,用wget在服务器中进行下载。
MySQL安装之前的环境准备
关闭numa:
查看系统是否安装了numa
dmesg | grep -i numa查看输出结果:
如果输出结果为:No NUMA configuration found说明numa为disable,如果不是上面的内容说明numa为enabled
关闭方法:
进入bios,disabled Node Interleaving
Numactl -interleave=all /usr/local/mysql/bin/mysqld--defaults-file=/path/my.cnf &以这种方式启动MySQL
系统中关闭numa
Centos 6 :
# vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.39-400.215.10.EL ro root=/dev/VolGroup00/LogVol00 numa=off
Centos 7:
# vi /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel_vm-210/root rd.lvm.lv=rhel_vm-210/swap vconsole.font=latarcyrheb-sun16 crashkernel=auto vconsole.keymap=us rhgb quiet numa=off
内核调优:
1,修改文件大句柄打开数和大连接数
Centos6更改 /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* hard nproc 65535
* soft nproc 65535
Centos7更改 /etc/systemd/system.conf
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
修改后重启系统
2,网络优化参数
vim /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 819200
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 400000
net.ipv4.tcp_tw_reuse = 1 #端口重用
net.ipv4.tcp_tw_recycle = 0 #快速回收
生产环境下经验设置
IO调度文件系统优化:
io scheduler
Deadline (机械硬盘优先) noop(ssd优先)
echo noop >/sys/block/sda/queue/scheduler
Filesystems
Xfs (强烈推荐)
Ext4(备选)
Kernel
vm.swappiness = 1-5
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
3,MySQL 安装过程(二进制安装)
创建用户:
# groupadd mysql
# useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -MN mysql
校对下载的二进制包
#md5sum mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#08a3b385db2f151598017b63fbcb6c43 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
对比md5值是否跟官网上一致
解压mysql二进制包链接到 /usr/local 下
#cd /tools
#tar xfz mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#cd /usr/local && ln -s /tools/mysql-5.7.26-linux-glibc2.12-x86_64 mysql
#chown mysql.mysql /usr/local/mysql/ -R
验证是否缺少依赖
#ldd mysql/bin/mysqld
linux-vdso.so.1 => (0x00007ffca67df000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f31d7a70000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f31d786e000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f31d7662000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f31d742b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f31d7227000)
librt.so.1 => /lib64/librt.so.1 (0x00007f31d701f000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f31d6d18000)
libm.so.6 => /lib64/libm.so.6 (0x00007f31d6a16000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f31d6800000)
libc.so.6 => /lib64/libc.so.6 (0x00007f31d6433000)
/lib64/ld-linux-x86-64.so.2 (0x00007f31d7c8c000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f31d6230000)
如果没有出现找不到(notfound)的包 则说明没有缺少依赖
MySQL目录规划
#mkdir /data/mysql/mysql3306/{data,logs,tmp} -p
/data.
└── mysql
└── mysql3306
├── data
├── logs
└── tmp
#chown mysql.mysql /data/mysql/ -R
一般用上面的目录结构,这样有利于多项目多实例和扩展
准备配置文件
配置文件位置在/data/mysql/mysql3306/my.cnf
初始化mysql
#/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --initialize
查看/data/mysql/mysql3306/data/error.log是否有报错,若没有,则初始化成功
启动mysql
#/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf &
# ps -ef | grep mysql
mysql 21704 17996 3 07:27 pts/3 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf
Mysql进程启动,查看 error.log 无异常则表示启动成功
至此,MySQL已成功安装,并成功启动。