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语句总结

相关推荐
try2find32 分钟前
移动conda虚拟环境的安装目录
linux·运维·conda
长征coder41 分钟前
AWS MySQL 读写分离配置指南
mysql·云计算·aws
码农101号1 小时前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器
PanZonghui1 小时前
Centos项目部署之Nginx 的安装与卸载
linux·nginx
ladymorgana1 小时前
【docker】修改 MySQL 密码后 Navicat 仍能用原密码连接
mysql·adb·docker
PanZonghui1 小时前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
PanZonghui1 小时前
Centos项目部署之运行SpringBoot打包后的jar文件
linux·spring boot
PanZonghui1 小时前
Centos项目部署之Java安装与配置
java·linux
程序员弘羽2 小时前
Linux进程管理:从基础到实战
linux·运维·服务器
GreatSQL社区2 小时前
用systemd管理GreatSQL服务详解
数据库·mysql·greatsql