MySQL性能优化从入门到精通(一)

MySQL性能优化从入门到精通(一)

预备知识

Linux虚拟机的安装

常用虚拟机介绍

VirtualBox

VirtualBox 是一款开源虚拟机软件。

扩展:免费开源(Android开发使用的genymotion虚拟机也是和VirtualBox搭配一起使用)。

VMware

安装好虚拟机之后,给虚拟机安装centos7系统

进入阿里开发者社区(https://developer.aliyun.com/mirror)下载centos镜像(在这里下载的速度快)点击os镜像,选择相应版本系统

MySQL性能优化从入门到精通(一)_第1张图片

VMware中安装centos
MySQL性能优化从入门到精通(一)_第2张图片

点击文件选择新建虚拟机也可以在右侧栏,直接点击创建虚拟机快捷键

在这里插入图片描述

后续操作,按需设置

安装ssh服务,用于在虚拟机外部连接centos进行远程操作

yum install ssh

此处注意:如果centos安装的是最小版本的,可能不能联网,无法安装ssh,需要配置网络再安装ssh

centos网络配置

编辑网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet             
BOOTPROTO=static          
NAME=ens33               
DEVICE=ens33             
ONBOOT=yes               
IPADDR=192.168.100.101   
NETMASK=255.255.255.0    
GATEWAY=192.168.100.2    
DNS1=114.114.114.114      
DNS2=8.8.8.8             

远程连接centos常用工具介绍

xshell

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。

Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。

总结:好用但是是收费软件

putty

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多第三方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权。随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windows x86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。目前最新的版本为 0.72 latest release

总结:免费,还可以做串口通讯调试工具,界面简单

Linux常用命令介绍

ls:查看文件夹内容

在这里插入图片描述

cd:进入某个目录

MySQL性能优化从入门到精通(一)_第3张图片

pwd:查看当前所在路径

vim:编辑文件

mount:挂载文件

umount:取消挂载

chown:授权文件及目录命令

source:使修改的配置文件生效

1、工欲善其事,必先利其器(MySQL的安装)

1、1MySQL版本选择

​ 建议选择mysql5.7,目前比较流行的一个版本

MySQL性能优化从入门到精通(一)_第4张图片

1、2MySQL的下载地址

https://dev.mysql.com/downloads/mysql/

2.上传tar包到服务器指定目录,我这里上传到/usr/local下

2.1、上传文件到服务器的常用工具介绍

WinSCP介绍:

​ WinSCP是一款Windows下通过使用SSH协议的开源工具,用于连接Linux操作系统,可以上传或者下载文件使用!开源,免费!

xftp6介绍:

​ 这是一个收费的工具,功能与WinSCP一样

3.开始安装

3.1、卸载系统自带的Mariadb

因为centos自带Mariadb,如果不卸载可能对以后的设置有一些影响

查看系统是否自带Mariadb

[root@xxxx~]# rpm -qa|grep mariadb

输出:

mariadb-libs-5.5.44-2.el7.centos.x86_64

MySQL性能优化从入门到精通(一)_第5张图片

卸载Mariadb

[root@xxxx~]# yum remove mariadb-libs -y

MySQL性能优化从入门到精通(一)_第6张图片

新建数据目录

mkdir -p /data

MySQL性能优化从入门到精通(一)_第7张图片
挂载数据盘到/data目录(重要)

添加存储磁盘并查看磁盘
MySQL性能优化从入门到精通(一)_第8张图片

fdisk -l

MySQL性能优化从入门到精通(一)_第9张图片
格式化磁盘

mkfs.xfs /dev/sdb

MySQL性能优化从入门到精通(一)_第10张图片

挂载

mount /dev/sdb /data

设置自动挂载(重要,目的是服务器重启时会自动挂载数据盘到/data目录)这里通过磁盘uuid设置自动挂载

查看磁盘uuid

blkid

MySQL性能优化从入门到精通(一)_第11张图片

自动挂载

vim /etc/fstab

添加

UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    /data    ext4       defaults 0 0

MySQL性能优化从入门到精通(一)_第12张图片
测试自动挂载(任何配置的修改都需要测试验证)

卸载挂载

umount /data

查看挂载

df -h

MySQL性能优化从入门到精通(一)_第13张图片

此时没有/data目录挂载信息

自动挂载

mount -a

再查看挂载,会看到/data目录的挂载信息

df -h

MySQL性能优化从入门到精通(一)_第14张图片

创建数据和日志目录

mkdir -p /data/mysql/data /data/binlog

解压上传的MySQL压缩包

tar xf xxx.gz

安装MySQL(移动解压包下的文件到/usr/local/mysql)或者建立软连接

mv xxx /usr/local/mysql

MySQL官方要求使用非root用户管理MySQL

创建新用户

useradd user_name

给新用户授权数据目录和软件目录

chown -R user_name /data /usr/local/mysql

MySQL性能优化从入门到精通(一)_第15张图片

设置环境MySQL变量

vim /etc/profile

在profile后面添加环境变量

export PATH=/usr/local/mysql/bin:$PATH

MySQL性能优化从入门到精通(一)_第16张图片

source修改的环境变量文件(使修改生效)

source /etc/profile

查看数据库版本

MySQL -V

数据初始化

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

可能会报错:没有libio.so.1

解决办法:安装libaio-devel

yum install -y libaio-devel

再次初始化

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

初始化参数说明

参数名称 作用 备注
–initialize-insecure 不安全的初始化
–initialize 安全的初始化 1、会随机生成12位初始化密码(具备:大写,小写,数字,符号4种复杂度);2、所有密码都要求具备复杂度及最小8位要求;3、密码有过期时间180天

创建配置文件

vim /ect/my.cnf

my.cnf文件内容

#这是服务器端的配置
[mysqld] 
#用户名称
user=mysql
#软件安装目录
basedir=/usr/local/mysql
# 数据存储目录
datadir=/data/mysql/data 
#mysql socket目录
socket=/tmp/mysql.sock
#MySQL id用于主从复制
server_id=51 
#这是客户端的配置
[mysql] 
#客户端必须配置此项,才能连接数据(与服务端配置一致)
socket=/tmp/mysql.sock

MySQL启动方式有两种

(一)sys-V启动方式

准备启动脚本

把软件解压包的support-files文件夹下mysql.server拷贝到/etc/init.d/mysqld中

cp mysql.server /etc/init.d/mysqld

启动MySQL

service mysqld start

(二)systemd管理(这种方式更好,容易实现多实例)

vim /etc/systemd/system/mysqld.service

mysqld.service内容:

[Unit]
Description=MySQL Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/data/mysql57/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize
LimitNOFILE = 65535
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=1
PrivateTmp=false

启动

systemctl start mysqld

5.检查mysql是否存在

[root@xxxx~]# ps -ef | grep mysql

在这里插入图片描述

写了一上午的博客,给博主奖励一杯咖啡吧


如果在实际操作中遇到问题,欢迎留言!!!谢谢大家!

你可能感兴趣的:(mysql性能优化从入门到精通)