进学阁

业精于勤荒于嬉,行成于思毁于随

0%

Centos7安装mysql8

1.下载mysql8安装包

下载安装包需要到官网上直接下载,下载地址:

https://www.mysql.com/downloads/

选择服务器对应的版本下载RPM

2.安装mysql

解压文件后获得

实际并不需要这么多的包只需要

将下载好的文件放入/opt/server文件夹中

然后查看依赖是否安装

  • libaio

rpm -qa|grep libaio

如图,如果存在libaio的字样说明有libaio相关依赖,否则执行下面命令,进行依赖的安装:

yum install libaio

  • net-tools

rpm -qa|grep net-tools

如图,如果存在net-tools的字样说明有net-tools相关依赖,否则执行下面命令,进行依赖的安装:rpm -qa|grep net-tools

接下来是安装过程:

首先要进入到文件所在的文件下

cd /opt/server/mysql

然后执行安装指令

1
2
3
4
5
6
rpm -ivh mysql-community-common-8.0.29-1.el7.x86_64.rpm
rmp -ivh mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm

在安装第三个包的时候如果出现如下错误:

需要解除之前安装过的依赖即可,执行下面命令:

yum remove mysql-libs

在安装地五个包的时候如果出现如下错误:

需要安装libnuma依赖,执行如下命令解决:

yum install libnuma*

检测是否安装成功

rpm -qa|grep -i mysql

如果成功显示上面安装的6个包,说明安装成功。

3.设置权限

如果你是以root身份安装和允许mysql服务,为了保证数据库目录与文件(默认/var/lib/mysql下)的所有者为mysql用户,需要执行下面的命令初始化:

1
mysqld --initialize --user=mysql

–initialize选项默认以安全模式来初始化,则会为root用户生成一个临时密码,并将该密码标记为过期,登录后不能做其他任何操作,需要重新设置一个新的密码。生成的临时密码会记录在日志中,使用如下命令查看日志:

1
cat /var/log/mysqld.log

先启动服务

1
systemctl start|stop|restart mysqld

其中start|stop|restart分别为启动、停止和重启mysql服务。

如果需要开机自启动需要:

1
systemctl enable mysqld

然后先使用临时密码登陆

1
mysql -uroot -p

回车并输入临时密码登录,登录成功后,执行如下命令修改密码:

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your New Password'

4.开启远程

如果是在远程服务器上安装服务需要打开远程设置

1
2
3
4
use mysql
update user set host='%' where user='root';
flush privileges;

5.优化配置

SQL执行慢有时候不一定完全是SQL问题,手动安装一台数据库而不做任何参数调整,再怎么优化SQL都无法让其性能最大化。要让一台数据库实例完全发挥其性能,首先我们就得先优化数据库的实例参数。

数据库实例参数优化遵循三句口诀:日志不能小、缓存足够大、连接要够用。

所以数据库事务提交后需要将事务对数据页的修改刷( fsync)到磁盘上,才能保证数据的持久性。这个刷盘,是一个随机写,性能较低,如果每次事务提交都要刷盘,会极大影响数据库的性能。数据库在架构设计中都会采用如下两个优化手法:

  • 先将事务写到日志文件RedoLog(WAL),将随机写优化成顺序写
  • 加一层缓存结构Buffer,将单次写优化成顺序写

所以日志跟缓存对数据库实例尤其重要。而连接如果不够用,数据库会直接抛出异常,系统无法访问。,以下是常见的优化项或者需要修改的项

参数分类 参数名 参数值 备注
数据缓存 INNODB_BUFFER_POOL_SIZE 物理内存50-80% 一般来说越大性能越好
日志相关 Innodb_log_buffer_size 16-32M 根据运行情况调整
日志相关 sync_binlog 1、100、0 1安全性最好
监听及连接 max_connections 根据业务情况调整 可以预留一部分值
文件读写性能 innodb_flush_log_at_trx_commit 2 安全和性能的折中考虑
其他 wait_timeout,interactive_timeout 28800 避免应用连接定时中断
端口 port 非3306的值 基于数据库安全
日志相关 log-bin /opt/date binglog日志的存放地址
日志相关 expire_logs_days 7 只保留 7 天的日志文件(需要重启mysql数据库)