Linux安装MySQL

演示系统:CentOS-7-x86_64。

一、软件下载

线上下载:MySQL Product Archives

某度下载:

wget下载:

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

二、检查安装环境

 2.1 检查是否已安装mariadb

一些Linux分发版就将mariadb作为系统默认安装的数据库系统,所以需要去除掉:

rpm -qa | grep -i mariadb

可能结果显示  mariadb-libs-5.5.65-1.el7.x86_64

去除依赖:

rpm -ev --nodeps mariadb-libs-5.5.65-1.el7.x86_64

2.2 检查libaio与net-tools

rpm -qa | grep libaio
rpm -qa | grep net-tools

 若不存在需要下载安装:

yum install -y libaio
yum install -y net-tools

 

三、安装

3.1 解压安装包

tar -xvf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar

注意此处解压命令是,-xvf 没有z

 3.2 安装

需要按照以下安装顺序进行安装:

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.31-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.31-1.el7.x86_64.rpm 

3.3 服务启动

启动服务 systemctl start mysqld
查看状态 systemctl status mysqld
关闭
服务 systemctl stop mysqld

3.4 查看初始随机密码  

cat /var/log/mysqld.log | grep password

 3.5 使用root角色登录

mysql -u root -p

3.6 修改密码

ALTER user 'root'@'localhost' IDENTIFIED BY 'new password';

按照MySQL8.0默认的密码组件,此时的密码要求是必须包含数字,大小写字母,特殊字符,且长度不低于8位,否则会提示密码不符合规则。如果想使用弱密码,可以修改(自行百度)。

3.7 开放远程登录权限

 安装好后角色只能在本地登录,正规的做法应当是用root权限分配其他不同角色供远程登录,这里还是强行开启root角色的远程登录权限。

use mysql;
select host,user from user;
update user set host='%' where user ='root';

执行以上语句之后在执行刷新权限:

flush privileges;

3.8 开放防火墙端口

 由于3306在Linux中默认关闭的,所以需要开放远程端口(需要的开,云服务器还需要在控制台中安全组策略打开端口)。

查询3306端口是否开启

firewall-cmd --query-port=3306/tcp

开启3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载防火墙

firewall-cmd --reload

此时我们的程序已经可以直接连接MySQL了。

3.9 配置文件更改(非必须)

要修改mysql数据和日志存放位置等信息,配置文件是/etc/my.cnf,直接修改保存位置。

vim /etc/my.cnf 

3.10 MySQL数据迁移到数据盘
 详见:MySQL迁移数据到数据盘

四、问题

4.1 mariadb-libs 被 mysql-community-libs-8.0.31-1.el7.x86_64 取代

 这种情况就是已经自带安装了mariadb数据库,所以安装失败。

解决办法:卸载mariadb:

yum remove mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

4.2 rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by mysql-community-common-8.0.30-1.el9.x86_64 

 

 这个问题原因是版本不匹配导致的,由于系统是centos7,但安装包是.el9.x86_64版本的,官网上el9对应的是centos9的,所以我们需要下载el7的安装包;

 

posted @ 2023-03-07 16:23  砰砰的猿  阅读(1390)  评论(0编辑  收藏  举报