Linux安装MYSQL - RPM方式
前言
我用的是虚拟机, Linux centos7 环境
在安装之前,确认是否安装过mysql,如果安装过,请卸载完全后在安装
卸载
1 检查是否安装了MySQL组件
rpm -qa|grep mysql
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 //强制卸载
4 删除 mysql 相关文件
- 查找相关文件
find / -name mysql - 删除相关文件
rm -rf xxx
5 删除 my.cnf
rm -rf /etc/my.cnf
RPM 安装
1 下载
选择xxx.rpm-bundle.tar 下载(这里面是mysql的rpm包集合)
2 解压
解压后如图所示,将这些rpm包传到linux环境上
3 安装
1 将文件拷贝到/opt目录下 (opt目录需要root用户登陆)
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 取代
解决
执行 yum remove mysql-libs
3 验证是否安装成功
执行如下命令,如果成功表示安装mysql成功
mysql --version
#或
mysqladmin --version
4 服务的初始化为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。
查看密码:
cat /var/log/mysqld.log
框住的就是密码
5 启动mysql
#加不加.service后缀都可以
//启动
systemctl start mysqld.service
//关闭
systemctl stop mysqld.service
//重启
systemctl restart mysqld.service
//查看状态
systemctl status mysqld.service
设置服务自启动(默认是enable,可以先查看状态,如果不是,在进行设置)
systemctl enable mysqld //设置自启动
查看是否设置自启动
systemctl list-unit-files|grep mysqld //查看服务自启动设置状态
如果不想自启动,可以执行下面的命令
systemctl disable mysqld
4 登录mysql
1 首次登陆mysql需修改密码
mysql -hlocalhost -P3306 -uroot -p
因为密码是过期的,不能进行操作,需要修改密码
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
2 设置远程登录
用本地客户端去连接,会拒绝连接。这时需要设置远程登录
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 表
从上面看到root用户支持的主机登录ip为localhost,需要将localhost 改为%,这样就所有ip都能支持
将Host列修改为%
update user set host = '%' where user ='root';
flush privileges; //刷新使立即生效
注意:
我用的工具是 navicat.
如果你用的是sqlyog,由于加密方式不兼容的问题,可能会出现下面的报错
执行下面的命令设置密码解决
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123