yum安装mysql8

记录一下安装过程用于后面项目参考

目录

说明

一般情况下都是docker安装,部分特殊情况下,例如老外的项目部分禁用docker,那一般二进制安装或者yum直接安装。

  1. 安装操作系统 redhat 7.x
  2. mysql版本 8.0.22
  3. 安装方式为yum安装

安装步骤

确保您具有管理员权限或以root用户身份登录到系统

1.运行以下命令以安装MySQL服务器:

shell 复制代码
sudo yum install mysql-server

2.安装完成后,启动MySQL服务:

shell 复制代码
sudo systemctl start mysqld

3.运行以下命令以保护MySQL安装并设置root密码:

shell 复制代码
sudo mysql_secure_installation

4.完成安全设置后,可以通过以下命令检查MySQL服务的状态:

shell 复制代码
sudo systemctl status mysqld

yum安装默认目录

针对mysql8 redhat 默认安装目录总结如下:

目录 用途 说明
/usr/bin MySQL二进制文件目录 这个目录包含了MySQL服务器和客户端程序的可执行文件,例如mysql、mysqld等
/etc/my.cnf MySQL配置文件目录 这个目录包含了MySQL服务器的配置文件my.cnf,您可以在此文件中进行MySQL的配置
/var/lib/mysql 数据目录 这个目录是MySQL服务器存储数据文件的位置。其中包含了数据库文件、日志文件和其他数据文件
/var/log/mysqld.log 错误日志目录 这个目录包含了MySQL服务器的错误日志文件,您可以在此文件中查看MySQL的错误和警告信息
/tmp 临时文件目录 MySQL服务器使用此目录存储临时文件,例如排序和临时表等
/var/run/mysqld Socket文件目录 MySQL服务器使用此目录存储UNIX域套接字文件,用于与其他进程进行通信

修改默认的数据目录

假设 我们希望将数据目录调整为 /home/guzt/data/

  1. 关闭mysql服务
shell 复制代码
sudo systemctl stop mysqld
  1. 创建自定义目录
shell 复制代码
sudo mkdir /home/guzt/data/mysql
  1. 拷贝数据文件
shell 复制代码
cp -R /var/lib/mysql /home/guzt/data/
  1. 修改自定义目录归属
shell 复制代码
sudo chown -R mysql:mysql /home/guzt/data/
  1. 修改配置文件
shell 复制代码
vim /etc/my.cnf.d/mysql-server.cnf
复制代码
# ##################修改这一行########################
datadir=/home/guzt/data/mysql
# ####################################################
  1. 重启mysql服务
shell 复制代码
sudo systemctl start mysqld
sudo systemctl status mysqld

必要的my.cnf属性修改

shell 复制代码
vim /etc/my.cnf.d/mysql-server.cnf
复制代码
# #####################################################
#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

#设置client连接mysql时的字符集,防止乱码
init_connect ='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

server-id = 110
#开启bin log 功能

log-bin=mysql-bin
#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW

#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL

#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600

log_replica_updates
relay_log_recovery = 1
replica_skip_errors = ddl_exist_errors

#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1
#控制 binlog 写磁盘频率
sync_binlog = 1

[mysqldump]
quick
max_allowed_packet = 128M
# #####################################################

卸载Mysql

如果要协助请执行如下步骤:

shell 复制代码
sudo systemctl stop mysqld
sudo yum remove mysql-server
sudo yum remove mysql mysql-server mysql-libs
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf
sudo userdel mysql
sudo groupdel mysql

运行以下命令以清理任何残留的MySQL文件和目录

shell 复制代码
sudo find / -name mysql
sudo find / -name my.cnf
相关推荐
sun00770022 分钟前
mysql索引底层原理
数据库·mysql
程序员秘密基地40 分钟前
基于html,css,vue,vscode,idea,,java,springboot,mysql数据库,在线旅游,景点管理系统
java·spring boot·mysql·spring·web3
叁沐3 小时前
MySQL 11 怎么给字符串字段加索引?
mysql
淮北4948 小时前
最简单的实验室资产管理系统,使用Flask,mysql,html(四、知识补充)
mysql·flask·html
神仙别闹9 小时前
基于Java+MySQL实现(Web)可扩展的程序在线评测系统
java·前端·mysql
果子⌂11 小时前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
Trust yourself24312 小时前
使用阿里云/腾讯云安装完成mysql使用不了
mysql·阿里云·腾讯云
亲爱的非洲野猪14 小时前
Oracle与MySQL详细对比
数据库·mysql·oracle
Matrix7014 小时前
Navicat实现MySQL数据传输与同步完整指南
数据库·mysql
shepherd11114 小时前
批量update实现方案全面解析与最佳实践,带你掌握到底怎么批量更新最快、性能最高
后端·mysql