• yum安装mysql8


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

    说明

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

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

    安装步骤

    确保您具有管理员权限或以root用户身份登录到系统
    1.运行以下命令以安装MySQL服务器:

    sudo yum install mysql-server
    
    • 1

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

    sudo systemctl start mysqld
    
    • 1

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

    sudo mysql_secure_installation
    
    • 1

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

    sudo systemctl status mysqld
    
    • 1

    yum安装默认目录

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

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

    修改默认的数据目录

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

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

    必要的my.cnf属性修改

    vim /etc/my.cnf.d/mysql-server.cnf
    
    • 1
    # #####################################################
    #若你的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
    # #####################################################
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    卸载Mysql

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

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    sudo find / -name mysql
    sudo find / -name my.cnf
    
    • 1
    • 2
  • 相关阅读:
    软件开发项目文档系列之十如何撰写测试用例
    gorm-增删改查
    java中的线程如何理解——精简
    【云原生】Apache Livy on k8s 讲解与实战操作
    解决Intellij IDEA @Test没有提示问题
    新版ubuntu20.04 使用root用户并自动登录
    『吴秋霖赠书活动 | 第三期』《Python asyncio并发编程》
    C语言辅助学习系统(asp.net开发)
    【FaceRevelio】一种用于智能手机的带有前置摄像头的 人脸活跃度检测系统
    HittER: Hierarchical Transformers for Knowledge Graph Embeddings
  • 原文地址:https://blog.csdn.net/gzt19881123/article/details/132919138