MySQL 5.7.22安装
mysql5.7.22的安装包下载地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
此处根据自己实际环境进行选择,本文选择的是通用的tar包来进行安装。
安装前环境准备
SElinux要关闭
vi /etc/selinux/config
确认 SELINUX=disabled ,如果不是,请将该参数改为 disabled 并保存后重新启动操作系统
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793326211D.png?x-oss-process=style/bb)
关闭操作系统防火墙
查询当前系统防火墙的状态
[root@linux6 ios]# service iptables status
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793340Q4tj.png?x-oss-process=style/bb)
关闭防火墙服务
[root@linux6 ios]# service iptables stop
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793356Wde2.png?x-oss-process=style/bb)
配置防火墙永久关闭
[root@linux6 ios]# chkconfig --level 2345 iptables off
或者
[root@linux6 ios]# chkconfig iptables off
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793371B9ui.png?x-oss-process=style/bb)
修改系统的I/O调度为 deadline模式
查询当前系统的调度模式
[root@linux6 ios]# cat /sys/block/sda/queue/scheduler
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793382JOKC.png?x-oss-process=style/bb)
默认是cfq模式,其中命令的sda是当前系统的磁盘符,如果有多个磁盘也都查询
修改I/O调度为deadline模式,修改/etc/grub.conf(或者/boot/grub/menu.lst)增加 elevator=deadline,然后重启操作系统
在rhgb quiet之前,添加elevator=deadline
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=10c712fb-a82a-4afd-9e7a-1fa2475e8091 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=deadline rhgb quiet
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793393dKx1.png?x-oss-process=style/bb)
设置swap分区的配置
swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面
建议:如果内存足够大,而且服务器上面也只运行了该mysql数据库,则可以设置该值偏小。
默认swappiness是60的
[root@linux6 ~]# cat /proc/sys/vm/swappiness
60
如果要修改,则编辑/etc/sysctl.conf,加入vm.swappiness = 60就可以
修改完成了,执行
[root@linux6 ~]# sysctl –p
使参数生效
文件系统的选择
推荐使用xfs文件系统
修改操作系统的限制
修改limit.conf增加配置
[root@linux6 ios]# cat /etc/security/limits.conf
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793412bo3i.png?x-oss-process=style/bb)
numa关闭
推荐在mysql启动前使用参数来关闭
例如
numactl –interleave=all /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &
关于numa,可以参考:
http://cenalulu.github.io/linux/numa/
开始安装
创建Mysql用户和组
[root@linux6 Mysql5.7.22]# groupadd mysql
[root@linux6 Mysql5.7.22]# useradd -g mysql mysql
mysql的安装包放在/usr/local下,并且解压
[root@linux6 ~]# cd /usr/local/
[root@linux6 local]# tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793425JJuj.png?x-oss-process=style/bb)
给解压的mysql软件包,做软连接
[root@linux6 local]# ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_1528793441Ha2i.png?x-oss-process=style/bb)
给mysql目录授权
[root@linux6 local]# chown mysql.mysql -R mysql
创建mysql数据库的数据目录(datadir)
[root@linux6 Mysql5.7.22]# mkdir -p /data/mysql
[root@linux6 Mysql5.7.22]#
并且赋予mysql的权限
[root@linux6 Mysql5.7.22]# chown -R mysql.mysql /data/mysql
[root@linux6 Mysql5.7.22]#
配置my.cnf文件
此处可以根据实际的环境进行相关的配置
初始化数据库
[root@linux6 etc]# cd /usr/local/mysql/bin/
[root@linux6 bin]#
[root@linux6 bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql –-initialize
此处采用了参数 –-initialize,表示会生成一个临时的数据库初始密码,记录在log-error(错误日志)里面。
此处是两个横杆—initialize,不是一个横杆。
启动数据库
[root@linux6 bin]# pwd
/usr/local/mysql/bin
[root@linux6 bin]# numactl --interleave=all ./mysqld_safe --defaults-file=/etc/my.cnf &
以禁用numa的方式启动mysql
查看mysql的状态
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_15287935480i93.png?x-oss-process=style/bb)
获取初始数据库密码
数据库启动成功之后,进入数据库的初始化密码会在/data/mysql/error.log中
[root@linux6 mysql]# cat /data/mysql/error.log | grep password
2018-06-12T07:43:15.875584Z 1 [Note] A temporary password is generated for root@localhost: !y#Yy,wC&4G(
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_15287935636v76.png?x-oss-process=style/bb)
修改数据库root密码
根据上面步骤获取到的初始化密码,进入数据库修改密码
[root@linux6 bin]# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22-log
Copyright (c) 2000, 2018, 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@db 15:53: [(none)]> set password = 'mysql';
Query OK, 0 rows affected (0.00 sec)
root@db 15:53: [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
root@db 15:53: [(none)]>
安装报错集
初始化后,无法启动mysql数据库
查询error.log日志,发现如下报错:
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_15287935776E5e.png?x-oss-process=style/bb)
查询数据文件目录/data/mysql
![](http://img.blog.itpub.net/blog/attachment/201806/12/25269462_15287935887m7I.png?x-oss-process=style/bb)
确实没有生成mysql实例的数据文件。
定位问题应该是初始化有问题,后面查询了初始化命令:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql –initialize
其中的initialize前面只有一个横杆,导致了这个问题。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25269462/viewspace-2156045/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25269462/viewspace-2156045/