CentOS Stream 9中安装MySQL的详细步骤

文章目录

卸载MySQL

安装前先卸载系统上旧版本的 MySQL(没有则跳过此步骤)

  1. 查看已安装的MySQL

    shell 复制代码
    rpm -qa | grep mysql
  2. 卸载查询到的所有安装包

    shell 复制代码
    rpm -e PackageName		# 可批量删除
  3. 删除my.cnf
    查看/etc/my.cnf文件是否还存在,若存在则直接删除rm -f /etcmy.cnf

在线安装

  1. 进入官网下载所需的MySQL版本,下载后上传至服务器任意目录下

    或者复制下载链接,使用wget命令在线下载

    shell 复制代码
    wget https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpm
  2. 安装RPM包

    shell 复制代码
    rpm -ivh mysql80-community-release-el9-3.noarch.rpm

    安装后可以看到yum源配置目录下新增3个MySQL相关文件

  3. 安装MySQL

    shell 复制代码
    dnf install mysql-community-server -y
  4. 启动MySQL

    shell 复制代码
    systemctl enable --now mysqld.service	# 开机自启并立即启动mysql
    systemctl status mysqld.service			# 查看mysql状态
  5. 查看初始密码

    shell 复制代码
    grep "password" /var/log/mysqld.log
  6. 基础配置

    使用初始密码登录MySQL,执行命令mysql -u root -p

    1. 修改初始化密码

      sql 复制代码
      # ↓MySQL8密码等级要求较高,首次修改密码时必须包含大小写字母、数字和特殊符号
      alter user "root"@"localhost" identified by "Test!@12";		# 修改root密码
    2. 配置可远程连接

      sql 复制代码
      use mysql;			# 使用mysql库
      update user set host="%" where user="root";		# 将host修改为所有ip均可以访问
      flush privileges;	# 刷新权限
    3. 修改密码策略

      首次修改密码后才可以查看密码策略的具体信息,因此只有修改初始密码后才能修改密码策略

      sql 复制代码
      show variables like "validate_password%";		# 查看密码策略

      修改密码策略等级和长度

      sql 复制代码
      set global validate_password.length=5;			# 密码长度设置为5位数
      set global validate_password.policy=0;			# 密码策略改为低
      alter user "root"@"%" identified by "12345";	# 之后就可以设置简单的密码啦

离线安装

  1. 进入官网下载所需的MySQL版本,下载后上传至服务器任意目录下

  2. 解压

    shell 复制代码
    mkdir mysql-8.0.34		# 创建mysql-8.0.34目录
    tar -xf mysql-8.0.34-1.el9.x86_64.rpm-bundle.tar -C mysql-8.0.34/	# 将tar包解压到新建的目录下
  3. 安装解压后的所有文件

    shell 复制代码
    cd mysql-8.0.34/		# 进入mysql-8.0.34目录
    rpm -ivh mysql-community-* --force --nodeps		# 不检查依赖并强制安装所有mysql-community-开头的rpm文件
  4. 上述安装会自动添加用户和用户组mysql,所以只要修改MySQL数据所在目录的所有者为mysql用户和用户组即可

    shell 复制代码
    # ↓创建mysql数据存放目录,存放位置可自行选择
    mkdir -p /var/lib/mysql/data
    mkdir -p /var/lib/mysql/run
    mkdir -p /var/lib/mysql/tmp
    
    chown -R  mysql:mysql /var/lib/mysql	# 将mysql目录的所有者给mysql用户和用户组
    chown mysql:mysql /var/log/mysqld.log	# 将mysqld.log文件的所有者给mysql用户和用户组
  5. 配置MySQL

    执行命令vim /etc/my.cnf,添加以下信息,请根据实际路径进行修改,注意:请检查此文件内是否已存在相关信息,若已存在相关字段,请直接修改,否则配置路径冲突或错误均会造成MySQL服务启动失败

    ini 复制代码
    [mysqld]
    datadir=/var/lib/mysql/data
    socket=/var/lib/mysql/run/mysqld.sock
    pid-file=/var/lib/mysql/run/mysqld.pid
    tmpdir=/var/lib/mysql/tmp
    log-error=/var/log/mysqld.log
    
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    skip-character-set-client-handshake=true
    skip-name-resolve
    
    user=mysql
    port=3306
    
    [mysql]
    port=3306
    default-character-set=utf8mb4
    
    [client]
    default-character-set=utf8mb4
    socket=/var/lib/mysql/run/mysqld.sock
    
    [mysqldump]
    quick
    max_allowed_packet=1024M
    default-character-set=utf8mb4
  6. 启动MySQL

    shell 复制代码
    systemctl start mysql.service
    systemctl status mysql.service

    其它操作和【在线安装】中的步骤4之后的操作一样,就不再赘述啦!

忘记密码

若忘记数据库密码,可通过跳过授权表访问数据库,然后重置密码

  1. vim /etc/my.cnf文件,在[mysqld]下添加以下内容,然后保存退出

    shell 复制代码
    skip-grant-tables
  2. 重启MySQL服务

    shell 复制代码
    systemctl restart mysqld.service
  3. 访问MySQL,执行命令:mysql -u root -p,不输入密码,直接回车键即可访问

    sql 复制代码
    use mysql;			# 使用mysql库
    update user set authentication_string="" where user="root";	# 将密码置位空
    flush privileges;	# 刷新权限
  4. 再次编辑vim /etc/my.cnf文件,删除刚才添加的skip-grant-tables,保存退出, 重启MySQL服务systemctl restart mysqld.service就可以无密码访问数据库啦,之后可通过alter user "root"@"%" identified by "Test!@12";命令设置新的访问密码

更多SQL命令请查看常用SQL语句总结

相关推荐
dreamread2 分钟前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
小江的记录本2 分钟前
【SQL】多表关系与冷热数据(全维度知识体系)
数据库·sql·mysql·数据库开发·数据库架构
酿情师10 分钟前
Windows Subsystem for Linux (WSL, Ubuntu)安装教程(详细)
linux·windows·ubuntu
zjjsctcdl1 小时前
【prometheus】监控MySQL并实现可视化
数据库·mysql·prometheus
阿波罗尼亚1 小时前
MySQL 存储引擎 FEDERATED
数据库·mysql
lym5400508891 小时前
MySQL篇(管理工具)
数据库·mysql
Titan20241 小时前
Linux环境变量个人笔记
linux·服务器·c++
青柠代码录1 小时前
【Linux】路径区分:testdir、testdir/、testdir/*
linux·运维·服务器
7yewh1 小时前
jetson_yolo_deployment 02_linux_dev_skills
linux·python·嵌入式硬件·yolo·嵌入式
supersolon2 小时前
Windows下WSL(Ubuntu24.04)安装Nodejs
linux·ubuntu·node.js