centos7.8安装mysql5.7.3(离线安装)

一、下载mysql5.7

1.下载地址

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

2.上传至服务器

安装包md5值校验(可以不操作)

从 MySQL 官网获取 mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar 安装包的 MD5 值

服务器上执行 MD5 值校验

3.解压压缩包

解压命令

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

说明

#mysql5.7.30各个组件说明
mysql-community-server	#数据库服务器和相关工具
mysql-community-client	#MySQL 客户端应用程序和工具
mysql-community-common	#服务器和客户端通用的库文件
mysql-community-devel 	#MySQL 数据库客户端应用程序开发的头文件和库文件
mysql-community-libs	#用于 MySQL 数据库客户端应用程序的共享库
mysql-community-libs-compat	#对于之前 MySQL 安装的共享兼容性库
mysql-community-embedded	#MySQL 嵌入式库
mysql-community-embedded-devel	#嵌入式的 MySQL 开发头文件和库文件
mysql-community-test	#MySQL 服务器的测试套件

#通常来讲,为了满足绝大部分场景需求,建议至少安装下列的这些 RPM 包,以获得功能强大的 MySQL 标准安装特性。
mysql-community-server
mysql-community-client
mysql-community-libs
mysql-community-common
mysql-community-libs-compat
mysql-community-devel

 

4. 卸载CentOS7系统自带的mariadb,否则报错

# 查看系统自带的Mariadb
[root@CDH-141 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64

# 卸载系统自带的Mariadb(rpm -e --nodeps) 
[root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

# 删除etc目录下的my.cnf 
[root@CDH-141 ~]# rm /etc/my.cnf

#检查mysql是否存在
[root@CDH-141 ~]# rpm -qa | grep mysql

#查看用户和组是否存在(可以省略)
[root@CDH-141 ~]# cat /etc/group | grep mysql
[root@CDH-141 ~]# cat /etc/passwd | grep mysql

#若不存在,则创建mysql组和用户(可以省略)
[root@CDH-141 ~]# groupadd mysql # 创建mysql用户组
[root@CDH-141 ~]# useradd -g mysql mysql   # 创建一个用户名为mysql的用户,并加入mysql用户组
[root@CDH-141 ~]# passwd mysql   # 制定password 为111111  (用户mysql的密码)

5.安装

然后依次执行以下命令 

rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm

安装第5条时出现以下错误

 

 则执行以下命令

yum install net-tools.x86_64 -y

5.查看安装情况

 

  就此安装成功了!!!

二、启动mysql服务

1.启动指令

systemctl start mysqld.service

2.查看初始密码(要记住这个密码之后会用到)

 cat /var/log/mysqld.log | grep password

3.重置密码

编辑mysql的配置文件

vim /etc/my.cnf
#添加密码验证插件
plugin-load-add=validate_password.so
 
#服务器在启动时加载插件,并防止在服务器运行时删除插件
validate-password=FORCE_PLUS_PERMANENT

然后保存退出,重启mysql

systemctl restart mysqld

4.重启完之后进入mysql服务器,设置新密码

#进入mysql,密码是刚查看的默认初始密码
mysql -uroot -p

#修改验证策略为low
set global validate_password_policy=0;

#修改最短密码长度为1
set global validate_password_length=1;

#设置新密码的指令
alter user 'root'@'localhost' identified by '123456';

5.设置完成后重新进入mysql服务器,输入新的密码进行登录

三、设置mysql中文编码

编辑配置文件

vim /etc/my.cnf

 

character-set-server=utf8
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8

 

然后保存退出,重启mysql

mysql 重启命令

systemctl restart mysqld

四、设置mysql开机启动

修改rc.local

vim /etc/rc.local

自此 mysql5.7 安装完成!!! 

五、目录说明

六、mysql优化配置

#查看默认数据存储目录
select @@datadir;
#或者


#修改mysql配置文件
vim /etc/my.cnf配置文件为:/etc/my.cnf;
[mysql]
socket=/home/mysqldata/mysql/mysql.sock
[mysqld]
datadir=/home/mysqldata/mysql
socket=/mysqldata/mysql/mysql.sock

my.cnf配置文件详解

#skip-grant-tables

server-id = 2
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index

#慢查询
slow_query_log_file=/home/tools/mysql/data/localhost-slow.log
long_query_time = 2

#跳过外部锁定 单服务器推荐禁用,即本例; 多服务器推荐启用,即默认
skip-name-resolve
port=3306
socket=/var/lib/mysql/mysql.sock
max_connections=3000
character-set-server=utf8
default-storage-engine=INNODB
#大小写敏感 表名在硬盘上以小写保存 名称比较对大小写不敏感
lower_case_table_names=1
# max_allowed_packet=16M
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#索引的缓存区大小
key_buffer_size = 512M
#最大处理信息包大小,默认16MB
max_allowed_packet = 1M
#表打开之后缓存数据大小
table_open_cache = 256
#数据排序缓存大小,order by 和 group by排序,
sort_buffer_size = 32M
#全表扫描时,对应线程的缓存大小
read_buffer_size = 4M
#排序之后,读取行数据的缓冲大小
read_rnd_buffer_size = 8M
#此缓冲当MySQL需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE 到一个空表中引起重建索引时被分配
myisam_sort_buffer_size = 64M
#可以复用的保存在缓存中的线程数量
thread_cache_size = 16
#查询缓存大小
query_cache_size= 64M
#二进制日志自动删除/过期的天数
expire_logs_days = 30
#最大管理语句缓存,发生事物时非事物语句的缓存大小
max_binlog_stmt_cache_size = 4G
#最大事物缓存的大小
max_binlog_cache_size =4G
#服务器逻辑CPU数量 x 2
#thread_concurrency = 16
#打开二进制日志功能
log-bin=mysql-bin
server-id=999
#混合模式复制
binlog_format=mixed
#每进行1次事务提交之后,mysql将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
sync_binlog=1
#从库是否同步主库的操作日志
log-slave-updates
#表示自增长字段每次递增的量
auto-increment-increment=2
#表示自增长字段从那个数开始
auto-increment-offset=1
#缓存区大大小
innodb_buffer_pool_size = 512M
#启用独立表空间
innodb_file_per_table=1
#解决主从库中函数function创建不成功
log-bin-trust-function-creators=1
event_scheduler = ON
#关闭非交互连接之前等待的时间
wait_timeout=31536000
#关闭交互连接之前等待的时间
interactive_timeout=31536000

#order by函数的支持
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

一条命令卸载

rpm -e mysql-community-{server,client,common,libs,libs-compat,devel} --nodeps

 

MySQL开启audit审计功能

https://www.jianshu.com/p/45b37a73e286

 

posted @ 2022-09-06 15:57  大司徒  阅读(444)  评论(0编辑  收藏  举报