ITPub博客

首页 > 数据库 > MySQL > Linux系统安装Mysql 5.7.22

Linux系统安装Mysql 5.7.22

原创 MySQL 作者:keungyu 时间:2018-06-12 16:55:04 0 删除 编辑

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 并保存后重新启动操作系统


 

关闭操作系统防火墙

查询当前系统防火墙的状态

[root@linux6 ios]# service iptables status


 

关闭防火墙服务

[root@linux6 ios]# service iptables stop

 


 

配置防火墙永久关闭

[root@linux6 ios]# chkconfig --level 2345 iptables off

或者

[root@linux6 ios]# chkconfig iptables off

 


 

修改系统的I/O调度为 deadline模式

查询当前系统的调度模式

[root@linux6 ios]# cat /sys/block/sda/queue/scheduler


默认是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

 


设置swap分区的配置

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面

 

建议:如果内存足够大,而且服务器上面也只运行了该mysql数据库,则可以设置该值偏小。

 

默认swappiness60

[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


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


 

给解压的mysql软件包,做软连接

[root@linux6 local]# ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql


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的状态


 

获取初始数据库密码

数据库启动成功之后,进入数据库的初始化密码会在/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(


修改数据库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日志,发现如下报错:

 


查询数据文件目录/data/mysql


确实没有生成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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-31

  • 博文量
    15
  • 访问量
    41091