扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
mysql5.7.22的安装包下载地址:
创新互联公司-专业网站定制、快速模板网站建设、高性价比墨竹工卡网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式墨竹工卡网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖墨竹工卡地区。费用合理售后完善,十年实体公司更值得信赖。
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
此处根据自己实际环境进行选择,本文选择的是通用的tar包来进行安装。
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
[root@linux6 ios]# cat /sys/block/sda/queue/scheduler
默认是cfq模式,其中命令的sda是当前系统的磁盘符,如果有多个磁盘也都查询
在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
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
推荐在mysql启动前使用参数来关闭
例如
numactl –interleave=all /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &
关于numa,可以参考:
http://cenalulu.github.io/linux/numa/
[root@linux6 Mysql5.7.22]# groupadd mysql
[root@linux6 Mysql5.7.22]# useradd -g mysql mysql
[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
[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]#
此处可以根据实际的环境进行相关的配置
[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@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)]>
查询error.log日志,发现如下报错:
查询数据文件目录/data/mysql
确实没有生成mysql实例的数据文件。
定位问题应该是初始化有问题,后面查询了初始化命令:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql –initialize
其中的initialize前面只有一个横杆,导致了这个问题。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流