MySQL 5.6/5.7 linux常見安裝(tar,yum,script)

該文章總結一下MySQL的常見安裝方式,以tar,yum,script 三種方式來演示:mysql

通常的公司都會有本身統一的數據庫安裝規範和模板,在生產環境請按照本身的規範來安裝和使用,這裏只演示和測試,供須要的夥伴們參考linux

在文章中你會發現有的路徑和指定的不同,這都不影響,均可以本身折騰,畢竟dba在前期就要善於各類折騰,才能在關鍵時候:水來土掩....c++

1. 操做系統,系統環境,目結結構,用戶,權限,日誌路徑,腳本
2. 配置規範化sql

1.1 操做系統準備

操做系統 Kylin Linux release 3.3.1707 (Core)
數據庫版本 mysql-5.6.15-linux
mysql相關路徑 /data/mysqldata/{3306/{data,tmp,binlog,slave,log/iblog},backup,scripts}
軟件路徑 /data/softmongodb

備註:麒麟系統3.3,相似於Centos 7數據庫

1.2 相關軟件準備

選擇磁盤掛載目錄/data做爲mysql數據路徑以及其餘相關路徑
[root@localhost keepalived]# cat /etc/redhat-release
Kylin Linux release 3.3.1707 (Core)
[root@localhost keepalived]# mkdir -p /data/soft
[root@localhost etc]# uname -a
Linux localhost.localdomain 3.10.0-514.ky3.kb3.x86_64 #1 SMP Thu Dec 29 21:29:54 EST 2016 x86_64 x86_64 x86_64 GNU/Linuxvim

1.3 安裝配置

1系統規劃
Ip Hostname Role Server_idcentos

[root@localhost ~]# lscpu
[root@localhost ~]# free -m #查看內存大小,後面根據該值修改innodb_buffer_pool_size
[root@localhost ~]# df -h #查看磁盤大小,看是否知足/data的要求
[root@localhost ~]# mkdir -p /data/soft #建立放軟件的目錄,並上傳相應的安裝包和軟件
[root@localhost ~]# sysctl -a |grep swap #查看swap的值,若是是30,修改成10
vm.swappiness = 30
[root@localhost ~]# vim /etc/sysctl.conf #修改並保存(因爲這裏相似centos7,因此不必所有關閉swap,避免OOM)
vm.swappiness = 10
[root@localhost ~]# sysctl -p
[root@localhost ~]# cat /sys/block/sda/queue/rotational #查看是ssd仍是hdd
[root@localhost ~]# cat /sys/block/sda/queue/scheduler #查看磁盤調度方式
noop [deadline] cfq #hdd默認deadline比較合適,ssd選擇noop,修改方式echo deadline > /sys/block/sda/queue/scheduler
[root@localhost ~]# date #查看2個系統的時間,時區,時間是否一致,要保持一致
[root@localhost ~]# hostname #查看並修改hostname
[root@localhost ~]# vim /etc/hosts
[root@localhost ~]# hostnamectl set-hostname mysql1 #另一臺mysql2
[root@localhost ~]# systemctl stop firewalld.service #關閉防火牆或者添加3306規則
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# vim /etc/selinux/config #關閉selinux,並保存,必定要是disabled
SELINUX=disabledbash

[root@localhost ~]#  vim /etc/profile #在文件中增長以下內容:方便在查看history的時候加上日期oracle

HISTTIMEFORMAT="%Y:%M:%D %H-%m-%s"
export=HISTTIMEFORMAT

#設定時區

vim /etc/sysconfig/clock
ZONE=Asia/Shanghai
UTC=false
ARC=false
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# clock -w

[root@localhost ~]# reboot

配置yum源:

本地cd

[root@hqmysql1 dev]# ls -l /dev/cdrom |grep cdrom
lrwxrwxrwx. 1 root root 3 Jun 28 08:26 /dev/cdrom -> sr0
[root@rac1 ~]# mount -t iso9660 /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

[root@hqmysql1 yum.repos.d]# vim public-yum-ol6.repo
[root@hqmysql1 yum.repos.d]# yum clean all
[root@hqmysql1 yum.repos.d]# cat public-yum-ol6.repo #這裏用的oracle linux 6.3,其餘環境修改相似地方
[ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
gpgkey=file:///mnt/RPM-GPG-KEY-oracle
baseurl=file:///mnt
gpgcheck=1
enabled=1

163 yum源:注意centos6/7

[root@mysql1slave yum.repos.d]# cat public-yum-ol6.repo
[base]
name=CentOS-$releasever - Base
#baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

1.4 Mysql環境配置

[root@mysql1 ~]# getenforce
Disabled
[root@mysql1 ~]# groupadd mysql
[root@mysql1 ~]# useradd -g mysql mysql
[root@mysql1 ~]# passwd mysql #密碼這裏設置爲mysql
[root@mysql1 ~]# vim /etc/security/limits.conf
mysql soft nproc 65535
mysql hard nproc 65535
mysql soft nofile 65535
mysql hard nofile 65535
[root@mysql1 ~]# ulimit -n 65535
[root@mysql1 ~]# vim /home/mysql/.bash_profile
export LANG=en_US.UTF-8
export PATH=/usr/local/mysql/bin:$PATH
export MYSQL_PS1="(\u@\h:\p) [\d]> "

tar 二進制安裝

安裝依賴包
[root@mysql1 ~]# yum -y install lrzsz
[root@mysql1 ~]# yum install -y gcc gcc-* make cmake gcc-c++ libaio libaio-devel bison bison-devel autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* --skip-broken
[root@mysql1 ~]# yum install -y openssl openssl-devel ncurses ncurses-devel
建立mysql相應的目錄
[root@mysql1 ~]# mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,slave,log/iblog},backup,scripts}
[root@mysql1 backup]# cd /data/soft/
[root@mysql1 soft]# ll
-rw-r--r-- 1 root root 304382512 Jun 4 23:46 mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
解壓並安裝mysql
[root@mysql1 soft]# tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@mysql1 soft]# cd /usr/local/
[root@mysql1 local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64 mysql

編輯配置文件my.cnf,詳細內容見 tar_mysql_cnf.cnf
[root@mysql1 local]# touch /data/mysqldata/3306/my.cnf
[root@mysql1 soft]# mv tar_mysql_cnf.cnf /data/mysqldata/3306/my.cnf

初始化數據庫
[mysql@mysql1 3306]$ /usr/local/mysql/scripts/mysql_install_db --defaults-file=/data/mysqldata/3306/my.cnf --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql --user=mysql
Installing MySQL system tables...OK

Filling help tables...OK

修改文件目錄權限
[root@mysql1 local]# chown -R mysql:mysql /usr/local/mysql/
[root@mysql1 local]# chown -R mysql:mysql /data/mysqldata/
啓動mysql數據庫
[mysql@mysql1 3306]$ /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &
查看啓動進程
[mysql@mysql1 3306]$ ps -ef|grep mysql
查看啓動日誌
[root@mysql1 log]# tail -f -n 100 /data/mysqldata/3306/log/mysql-error.log

note:mysql 5.7 初始化和初次登陸有所變化

初始化5.7

[mysql@mysql1 bin]$./mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --user=mysql --initialize

查看初始化後隨即生產的root@localhost密碼
# cat /data/mysqldata/3306/log/mysql-error.log |grep "root@localhost"|awk -F " " '{print $11}'

[mysql@localhost bin]$ /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &

[mysql@localhost bin]$ /usr/local/mysql/bin/mysql -uroot -p'BJ=u4XqsTR0h' -S /data/mysqldata/3306/mysql.sock

Yum 安裝

這裏yum安裝後,修改了數據的指定路徑,要求在安裝後先修改my.cnf配置文件,在啓動mysql,切記。
查看yum源看mysql的版本是否存在和一致
[root@mysql1 soft]# yum list|grep mysql
Repository gcc-4.9 is listed more than once in the configuration
Repository other is listed more than once in the configuration
mysql-community-client.x86_64 5.6.15-4.ky3 other
mysql-community-common.x86_64 5.6.15-4.ky3 other
mysql-community-devel.x86_64 5.6.15-4.ky3 other
mysql-community-embedded.x86_64 5.6.15-4.ky3 other
mysql-community-embedded-devel.x86_64
mysql-community-libs.x86_64 5.6.15-4.ky3 other
mysql-community-server.x86_64 5.6.15-4.ky3 other
mysql-community-test.x86_64 5.6.15-4.ky3 other
mysql-connector-odbc.x86_64 5.2.5-6.ky3.kb2 base
rpm -qa | grep mysql
yum list installed | grep mysql
建立相應mysql目錄
[root@mysql1 ~]# mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,slave,log/iblog},backup,scripts}
Yum安裝mysql
[root@mysql1 ~]# yum install mysql-community-server -y
[root@mysql1 ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@mysql1 ~]# which mysql
/usr/bin/mysql

編輯配置文件my.cnf,詳細內容見 yum_mysql_cnf_my.cnf
[root@mysql1 local]# touch /data/mysqldata/3306/my.cnf
[root@mysql1 soft]# mv yum_mysql_cnf_my.cnf /data/mysqldata/3306/my.cnf
另一臺mysql,除了修改
server_id=2018071202 #避免雙主出現自增衝突
innodb_buffer_pool_size #爲實際內存的50%-70%
auto-increment-offset = 2 #避免雙主出現自增衝突

[root@mysql1 ~]# chown -R mysql:mysql /data/mysqldata/

[root@mysql1 mysql]# systemctl start mysqld
[root@mysql1 mysql]# ps -ef|grep mysql
注意,yum安裝的mysql的相關執行文件在路面 /usr/bin/ 下面
[mysql@mysql1 ~]$ ls /usr/bin/mysqld_safe
/usr/bin/mysqld_safe
查看啓動日誌
[root@mysql1 ~]# tail -n 100 /data/mysqldata/3306/log/mysql-error.log
yum安裝後,能夠用systemctl start mysqld 來快捷啓動mysql,也可使用腳原本操做mysql,
全部腳本里面涉及到/usr/local/mysql/bin/的地方所有替換爲/usr/bin/
二進制安裝與腳本安裝的mysql的可執行文件的路徑爲/usr/local/mysql/bin/
yum安裝後,mysql的可執行文件路徑爲/usr/bin/

腳本自動安裝

注意:這裏的腳本安裝,其實是二進制安裝的一個封裝版本,存在必定的風險,報錯不容易處理,前提是要配置好yum源,與二進制安裝後進行rpm打包的方式不同
進入目錄,查看相關文件和腳本
[root@mysql1 backup]# cd /data/soft/
-rwxr-xr-x 1 root root 6028 Jul 12 05:29 mysql_auto_glibc_56.sh
運行安裝腳本,記得必定查看是否報錯,若是有報錯,修改後,從新運行腳本
[root@mysql1 backup]# ./mysql_auto_glibc_56.sh
查看啓動日誌
[root@mysql1 ~]# tail -n 100 /data/mysqldata/3306/log/mysql-error.log

初始化mysql帳號環境

建立mysql帳號
登陸mysql數據庫,並建立相關用戶

經常使用腳本:(將在其餘文章中展現)

[mysql@mysqlhq scripts]$ ll

加入開機啓動:

[root@hongquan1 ]# cat /etc/rc.d/rc.localtouch /var/lock/subsys/local#mysql auto startupsudo -i -u mysql /data/mysqldata/scripts/mysql_db_startup.sh > /home/mysql/mysql_db_startup.log 2>&1#zabbix auto startup/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf#toku,mongodb3.6echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag#date ntpdate/usr/sbin/ntpdate -u * ; /sbin/hwclock -w

相關文章
相關標籤/搜索