1.安装MySQL5.7

(1) Ubuntu换源
Ubuntu20.04系统自带源直接安装是MySQL 8.0,我要安装MySQL 5.7的版本的所以先进行换源。
① 备份原来的source文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

② 修改sources.list文件

sudo vim /etc/apt/sources.list

我选择的是阿里镜像源。将sources.list内容清空,然后选择一个源粘贴到sources.list,保存退出。

# 阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

③ 更新镜像源和软件

# 更新镜像源
sudo apt-get update
# 更新软件
sudo apt-get upgrade

(2) 安装mysql
前面的准备工作做完,就要开始安装mysql了。在这里提供两种安装方式,自行选择一种进行安装。

① apt-get install方式安装
这种方式需要服务器能联网。

# 执行下面安装命令

# 安装mysql5.7服务端
sudo apt-get install mysql-server-5.7

# 安装mysql5.7客户端
sudo apt-get install mysql-client-5.7

安装时需要输入两次mysql的root用户的密码(此密码需要记住)。

安装完成后查看MySQL版本和服务

mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服务

如上图所示说明安装成功。

① deb安装包方式安装

这种安装方式服务器能联网或不能联网都可以。

1) 下载deb安装包

自己去官网下载,选择好MySQL版本和操作系统版本然后点击下载。

网址:https://downloads.mysql.com/archives/community/

2) 使用deb包进行安装

将下载好的mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar压缩包导入Linux服务器。此处我是将该deb包放入了如下所示文件夹中(当然放哪都无所谓,按自己喜好放就行):

然后打开终端,cd到该目录下,进行如下操作:

# 新建目录
mkdir mysql5.7.31
mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31

# 解压
cd mysql5.7.31
sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

# 解压出来的deb安装包如下:
libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb
mysql-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-source_5.7.31-1ubuntu18.04_amd64.deb
mysql-server_5.7.31-1ubuntu18.04_amd64.deb
mysql-common_5.7.31-1ubuntu18.04_amd64.deb
mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

# 删除2个测试相关的包
sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

用dpkg进行安装。

# 用dpkg进行安装
sudo dpkg -i mysql-*.deb

安装过程中可能会遇到如下所示的报错。

报错的意思是缺少2个包 libtinfo5 和 libmecab2,那就安装这两个包,如果还缺少其他包,按照下面的步骤安装即可。

# 服务器能联网时直接安装
sudo apt-get install libtinfo5
sudo apt-get install libmecab2

服务器不能联网时就自己去下载然后上传到服务器。

下载网址:https://ubuntu.pkgs.org/

# 下载软件包需要区分硬件架构
uname -m # 查看硬件架构

# 显示
x86_64 # x86_64就是AMD64

将Binary Package对应的网址复制到浏览器即可下载,然后将下载好的 libtinfo5 和 libmecab2包导入服务器进行安装。

sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb
sudo dpkg -i libmecab2_0.996-10build1_amd64.deb
# 再次用dpkg进行安装
cd mysql5.7.31
sudo dpkg -i mysql-*.deb

提示输入2次root密码,然后安装成功。

安装完成后查看MySQL版本和服务。

mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服务

如上图所示说明安装成功。

(3) 数据库参数优化

数据库安装完毕后,还需要我们优化一下数据库参数。

1. lower_case_table_names

a. 简介

mysql设置大小写是否敏感的一个参数

b. 参数说明

lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写 lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的

c. 具体配置

lower_case_table_names = 1

2. innodb_buffer_pool_size

a. 简介

该参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲

b. 参数说明

默认值:128M 专用mysql服务器设置的大小: 操作系统内存的70%-80%最佳。 此外,这个参数是非动态的,要修改这个值,需要重启mysqld服务。 所以设置的时候要非常谨慎。 并不是设置的越大越好。设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。

c. 具体配置

3. log_bin_trust_function_creators

a. 简介

当二进制日志启用后,这个变量就会启用。它控制是否可以信任存储函数创建者,不会创建写入二进制日志引起不安全事件的存储函数。

b. 参数说明

如果设置为0(默认值),用户不得创建或修改存储函数,除非它们具有除CREATE ROUTINE或ALTER ROUTINE特权之外的SUPER权限。 设置为0还强制使用DETERMINISTIC特性或READS SQL DATA或NO SQL特性声明函数的限制。 如果变量设置为1,MySQL不会对创建存储函数实施这些限制。 此变量也适用于触发器的创建。 那么为什么MySQL有这样的限制呢? 因为二进制日志的一个重要功能是用于主从复制,而存储函数有可能导致主从的数据不一致。所以当开启二进制日志后,参数log_bin_trust_function_creators就会生效,限制存储函数的创建、修改、调用。

c. 具体配置

log_bin_trust_function_creators = 1
如何修改数据库参数配置?

1. 找到Mysql的配置文件

具体步骤如下:

① 查看是否使用了指定目录的my.cnf

启动mysql后,我们查看mysql的进程,看看是否有设置使用指定目录的my.cnf文件,如果有则表示mysql启动时是加载了这个配置文件。

命令:

ps aux|grep mysql|grep 'my.cnf'

输出:

image.png

可以看到/etc/my.cnf就是mysql启动加载的配置文件。

如果上面的命令没有输出,表示没有设置使用指定目录的my.cnf。

② 查看mysql默认读取my.cnf的目录

如果没有设置使用指定目录的my.cnf,mysql启动时会读取安装目录根目录及默认目录下的my.cnf文件。

查看mysql启动时读取配置文件的默认目录,命令:

mysql --help|grep 'my.cnf'

输出:

image.png

这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。

③ 启动时没有使用配置文件

如果没有设置使用指定目录my.cnf文件及默认读取目录没有my.cnf文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。
需要修改配置,可以在mysql默认读取的目录中,创建一个my.cnf文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启mysql后即可生效。

2. 修改my.cnf(my.cnf 一般在/etc文件夹下)

vim /etc/my.cnf (打开后,输入"i" 或者点击"insert"键,输入相应的参数。输入完成,按"Esc",输入":wq",保存并退出)

3. 重启 mysql

service mysql restart
Copyright © 2022 杭州企云信息科技有限公司 all right reserved,powered by 简搭(jabdp)该文件修订时间: 2022-08-15 13:19:27

results matching ""

    No results matching ""