mysql5.7.22的安裝包下載地址:
創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比墨竹工卡網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式墨竹工卡網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋墨竹工卡地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
此處根據(jù)自己實(shí)際環(huán)境進(jìn)行選擇,本文選擇的是通用的tar包來(lái)進(jìn)行安裝。
vi /etc/selinux/config
確認(rèn) SELINUX=disabled,如果不是,請(qǐng)將該參數(shù)改為 disabled并保存后重新啟動(dòng)操作系統(tǒng)
[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
默認(rèn)是cfq模式,其中命令的sda是當(dāng)前系統(tǒng)的磁盤(pán)符,如果有多個(gè)磁盤(pán)也都查詢(xún)
在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的值的大小對(duì)如何使用swap分區(qū)是有著很大的聯(lián)系的。swappiness=0的時(shí)候表示最大限度使用物理內(nèi)存,然后才是 swap空間,swappiness=100的時(shí)候表示積極的使用swap分區(qū),并且把內(nèi)存上的數(shù)據(jù)及時(shí)的搬運(yùn)到swap空間里面
建議:如果內(nèi)存足夠大,而且服務(wù)器上面也只運(yùn)行了該mysql數(shù)據(jù)庫(kù),則可以設(shè)置該值偏小。
默認(rèn)swappiness是60的
[root@linux6 ~]# cat /proc/sys/vm/swappiness
60
如果要修改,則編輯/etc/sysctl.conf,加入vm.swappiness = 60就可以
修改完成了,執(zhí)行
[root@linux6 ~]# sysctl –p
使參數(shù)生效
推薦使用xfs文件系統(tǒng)
修改limit.conf增加配置
[root@linux6 ios]# cat /etc/security/limits.conf
推薦在mysql啟動(dòng)前使用參數(shù)來(lái)關(guān)閉
例如
numactl –interleave=all /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &
關(guān)于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目錄授權(quán)
[root@linux6 local]# chown mysql.mysql -R mysql
[root@linux6 Mysql5.7.22]# mkdir -p /data/mysql
[root@linux6 Mysql5.7.22]#
并且賦予mysql的權(quán)限
[root@linux6 Mysql5.7.22]# chown -R mysql.mysql /data/mysql
[root@linux6 Mysql5.7.22]#
此處可以根據(jù)實(shí)際的環(huán)境進(jìn)行相關(guān)的配置
[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
此處采用了參數(shù) –-initialize,表示會(huì)生成一個(gè)臨時(shí)的數(shù)據(jù)庫(kù)初始密碼,記錄在log-error(錯(cuò)誤日志)里面。
此處是兩個(gè)橫桿—initialize,不是一個(gè)橫桿。
[root@linux6 bin]# pwd
/usr/local/mysql/bin
[root@linux6 bin]# numactl --interleave=all ./mysqld_safe --defaults-file=/etc/my.cnf &
以禁用numa的方式啟動(dòng)mysql
查看mysql的狀態(tài)
數(shù)據(jù)庫(kù)啟動(dòng)成功之后,進(jìn)入數(shù)據(jù)庫(kù)的初始化密碼會(huì)在/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(
根據(jù)上面步驟獲取到的初始化密碼,進(jìn)入數(shù)據(jù)庫(kù)修改密碼
[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)]>
查詢(xún)error.log日志,發(fā)現(xiàn)如下報(bào)錯(cuò):
查詢(xún)數(shù)據(jù)文件目錄/data/mysql
確實(shí)沒(méi)有生成mysql實(shí)例的數(shù)據(jù)文件。
定位問(wèn)題應(yīng)該是初始化有問(wèn)題,后面查詢(xún)了初始化命令:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql –initialize
其中的initialize前面只有一個(gè)橫桿,導(dǎo)致了這個(gè)問(wèn)題。