Linux安装MYSQL - RPM方式

前言
我用的是虚拟机, Linux centos7 环境

在安装之前,确认是否安装过mysql,如果安装过,请卸载完全后在安装

卸载
1 检查是否安装了MySQL组件

rpm -qa|grep mysql

rpmmysql 安装_数据库

2 关闭mysql服务

systemctl stop mysqld

3 卸载删除MySQL各类组件(上面查出来的)

注意:是卸载软件的名称,不是软件包的名称,不要带上 .rpm后缀

rpm -e mysql-community-common-5.7.34-1.el7.x86_64 //卸载命令
//如果上面的命令卸载不掉,可以增加--nodeps参数
rpm -e --nodeps mysql-community-common-5.7.34-1.el7.x86_64 //强制卸载

rpmmysql 安装_rpmmysql 安装_02

4 删除 mysql 相关文件
  • 查找相关文件
    find / -name mysql
  • 删除相关文件
    rm -rf xxx
5 删除 my.cnf
rm -rf   /etc/my.cnf

rpmmysql 安装_自启动_03

RPM 安装

官网:https://www.mysql.com

1 下载

rpmmysql 安装_mysql_04

rpmmysql 安装_自启动_05

选择xxx.rpm-bundle.tar 下载(这里面是mysql的rpm包集合)

rpmmysql 安装_linux_06

2 解压

解压后如图所示,将这些rpm包传到linux环境上

rpmmysql 安装_rpmmysql 安装_07

3 安装

1 将文件拷贝到/opt目录下 (opt目录需要root用户登陆)

rpmmysql 安装_自启动_08

2 执行安装命令

在mysql的安装文件目录下执行:(必须按照顺序执行)

rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm 
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm

安装出现问题

错误:依赖检测失败:
mariadb-libs 被 mysql-community-libs-8.0.31-1.el7.x86_64 取代

rpmmysql 安装_mysql_09


解决

执行 yum remove mysql-libs

rpmmysql 安装_自启动_10


3 验证是否安装成功

执行如下命令,如果成功表示安装mysql成功

mysql --version 
#或
mysqladmin --version

rpmmysql 安装_自启动_11


4 服务的初始化为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

mysqld --initialize --user=mysql 说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。

查看密码:

cat /var/log/mysqld.log

rpmmysql 安装_自启动_12


框住的就是密码

5 启动mysql

#加不加.service后缀都可以 
//启动
systemctl start mysqld.service 
//关闭
systemctl stop mysqld.service 
//重启
systemctl restart mysqld.service 
//查看状态
systemctl status mysqld.service

rpmmysql 安装_数据库_13

设置服务自启动(默认是enable,可以先查看状态,如果不是,在进行设置)

systemctl enable mysqld    //设置自启动

查看是否设置自启动

systemctl list-unit-files|grep mysqld  //查看服务自启动设置状态

rpmmysql 安装_mysql_14

如果不想自启动,可以执行下面的命令

systemctl disable mysqld

4 登录mysql

1 首次登陆mysql需修改密码

mysql -hlocalhost -P3306 -uroot -p

因为密码是过期的,不能进行操作,需要修改密码

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY  'new_password';

2 设置远程登录

用本地客户端去连接,会拒绝连接。这时需要设置远程登录

rpmmysql 安装_mysql_15

2.1 防火墙设置

这里有两种方式
第一种:如果是我们自己的环境,可以直接关闭防火墙
第二种:如果环境需要开启防火墙,我们就只可以开放程序需要用到的端口。

  • 关闭防火墙

systemctl stop firewalld

下面是设置防火墙的一些命令

systemctl start firewalld  //开启防火墙
systemctl status firewalld   //查看防火墙的状态
systemctl stop firewalld    //关闭防火墙
systemctl enable firewalld   //设置开机启用防火墙 
systemctl disable firewalld  //设置开机禁用防火墙
  • 开启端口
aa

2.1 操作 mysql中的user 表

rpmmysql 安装_mysql_16

从上面看到root用户支持的主机登录ip为localhost,需要将localhost 改为%,这样就所有ip都能支持

将Host列修改为%

update user set host = '%' where user ='root';
flush privileges; //刷新使立即生效

rpmmysql 安装_数据库_17

注意:

我用的工具是 navicat.
如果你用的是sqlyog,由于加密方式不兼容的问题,可能会出现下面的报错

rpmmysql 安装_mysql_18

执行下面的命令设置密码解决

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123