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

相关推荐
scoone3 分钟前
ssh登陆服务器后支持Tab键命令补全
linux·shell
给我整点护发素37 分钟前
Flink执行sql时报错
大数据·sql·flink
小扳1 小时前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器
运维佬1 小时前
CentOS 9 配置网卡
linux·centos
轩轩曲觞阁1 小时前
Linux网络——网络初识
linux·网络
2401_840192272 小时前
python基础大杂烩
linux·开发语言·python
weixin_438197382 小时前
K8S创建云主机配置docker仓库
linux·云原生·容器·eureka·kubernetes
明月与玄武3 小时前
关于性能测试:数据库的 SQL 性能优化实战
数据库·sql·性能优化
网安_秋刀鱼3 小时前
PHP代码审计 - SQL注入
sql·web安全·网络安全·php·1024程序员节
PcVue China6 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle