Skip to content

CentOS 7安装Mysql

1.下载mysql官方yum源

这里选择Linux 7,因为系统是centos 7

mysql5.7下载地址:https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

下图是mysql8.4

image-20250918111707642

下载rpm包,并上传至服务器

image-20250918114555844

2.安装运行

shell
#解压并安装mysql84-community-release-el7-2.noarch.rpm 
rpm -ivh mysql84-community-release-el7-2.noarch.rpm 

#安装Mysql
yum install -y mysql-community-server

#运行mysql服务端
systemctl start mysqld

出现密钥问题执行:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3.配置

  1. 获取MySQL的初始密码

    shell
    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
    grep 'temporary password' /var/log/mysqld.log
  2. 登录MySQL数据库系统

    shell
    # 执行
    mysql -uroot -p
    # 解释
    # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
    # -p,表示使用密码登陆
    
    # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
  3. 修改root密码

    sql
    #mysql8不再启用 mysql_native_password 插件,取而代之的是更安全的 caching_sha2_password 插件
    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '密码';
    
    
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
  4. [扩展],配置root的简单密码

    我们可以给root设置简单密码,如123456.

    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

    sql
    set global validate_password.policy=0;		# 密码安全级别低
    set global validate_password.length=4;		# 密码长度最低4位即可
  5. 允许root远程登录,并设置远程登录密码

    默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

    请注意,允许root远程登录会带来安全风险

    sql
    #mysql8同样需要使用 caching_sha2_password
    
    #已经配置了简单密码可以将密码设置123456
    create user 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456'
    
    # 第一次设置root远程登录,并配置远程密码使用如下SQL命令
    create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
    
    # 后续修改密码使用如下SQL命令
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

    出现权限不够时:

    1. 切换到系统数据库 mysql

      sql
      USE mysql;
    2. 查看 root 用户的当前权限(确认 host 是否为 %,即允许远程登录):

      sql
      SELECT user, host FROM user WHERE user = 'root';
      • 若host不是%,先修改为允许所有远程主机登录(表示任意主机):

        sql
        UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost';
        FLUSH PRIVILEGES;  -- 刷新权限
    3. 授予 root 用户所有数据库的全部权限(包括创建数据库):

      sql
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;  -- 刷新权限使配置生效
      • *.* 表示所有数据库的所有表;
      • 'root'@'%' 表示允许 root 用户从任意远程主机登录;
      • WITH GRANT OPTION 允许该用户给其他用户授权(可选)。
  6. 退出MySQL控制台页面

    sql
    # 退出命令
    exit
    
    # 或者通过快捷键退出:ctrl + d
  7. 检查端口

    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    shell
    netstat -anp | grep 3306

    image-20221012192303607

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

卸载MySQL

1.关闭正在运行的mysql

shell
systemctl stop mysqld

2.在CentOS上通过yum源获取的安装包都是以.rpm为后缀的格式,通过rpm命令查看mysql的安装包

shell
rpm -qa | grep mysql

3.批量化卸载mysql安装包,通过管道将mysql安装包以xargs形式给给卸载程序

shell
rpm -qa | grep mysql | xargs yum -y remove

4.删除配置文件

shell
sudo rm -rf /var/lib/mysql
sudo rm /etc/my.cnf

4.mysql卸载后默认不会删除数据,查看mysql遗留下来的数据

shell
ls /var/lib/mysql/

5.删除任何与mysql有关目录

shell
sudo find / -iname 'mysql*' -print -exec rm -rf {} +