一介闲人
一介闲人
1、检查系统是否有mariadb或mysql正在运行
ps ajx | grep mariadb
ps ajx | grep mysql
如果有,需要先停止运行
systemctl stop mariadb.service
systemctl stop mysqld
2、检查系统中是否安装了mariadb或mysql
rpm -qa | grep mariadb
rpm -qa | grep mysql
如果有安装,则需要先卸载干净
yum -y remove 软件名(根据以上查询结果复制)
检查是否存在配置文件 /etc/my.cnf,重命名备份或者删除
3、关闭 SElinux(可选,避免权限拦截)
# 临时关闭(立即生效,重启失效)
setenforce 0
# 永久关闭(重启生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
MySQL 8.0.44+ 版本新增 mysql-community-client-plugins 依赖,需下载以下 6 个核心包(CentOS 7 选 el7 版本,x86_64 架构)
官方 GPG 密钥包(解决 NOKEY) mysql80-community-release-el7-7.noarch.rpm (下载地址:https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm )
系统基础依赖 libaio-0.3.109-13.el7.x86_64.rpm (下载地址:https://vault.centos.org/7.9.2009/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm )
系统开发依赖 libaio-devel-0.3.109-13.el7.x86_64.rpm (下载地址:https://vault.centos.org/7.9.2009/os/x86_64/Packages/libaio-devel-0.3.109-13.el7.x86_64.rpm )
客户端插件(8.0.44+必需) mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm (下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm )
公共依赖包 mysql-community-common-8.0.45-1.el7.x86_64.rpm (下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-common-8.0.45-1.el7.x86_64.rpm )
库文件包 mysql-community-libs-8.0.45-1.el7.x86_64.rpm (下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-libs-8.0.45-1.el7.x86_64.rpm )
客户端工具包 mysql-community-client-8.0.45-1.el7.x86_64.rpm (下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-client-8.0.45-1.el7.x86_64.rpm )
服务端核心包 mysql-community-server-8.0.45-1.el7.x86_64.rpm (下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-server-8.0.45-1.el7.x86_64.rpm )
以上rpm包来源:
1、MySQL 官方 RPM 包:https://dev.mysql.com/downloads/mysql/8.0.html#downloads 选择「Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)」,下载上述 MySQL 相关包;
2、系统依赖包(libaio):https://vault.centos.org/7.9.2009/os/x86_64/Packages/ 搜索 libaio 下载对应 rpm;
3、GPG 密钥包:https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
将下载到的RPM包文件上传到服务器的/root/mysql-rpm目录,各显神通,想怎么传就怎么传
1、进入RPM包目录
cd /root/mysql-rpm
2、导入 MySQL 官方 GPG 密钥(解决 NOKEY 警告)
# 安装密钥包
rpm -ivh mysql80-community-release-el7-7.noarch.rpm --nodeps --force
# 导入密钥到系统
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
3、安装系统依赖(libaio)
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm --nodeps --force
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm --nodeps --force
4、按依赖顺序安装 MySQL RPM 包(核心步骤)
必须按以下顺序安装,否则会报依赖错误!
# 步骤1:安装客户端插件包(8.0.44+ 必需)
rpm -ivh mysql-community-client-plugins-8.0.45-1.el7.x86_64.rpm --nodeps --force
# 步骤2:安装公共依赖包
rpm -ivh mysql-community-common-8.0.45-1.el7.x86_64.rpm --nodeps --force
# 步骤3:安装库文件包
rpm -ivh mysql-community-libs-8.0.45-1.el7.x86_64.rpm --nodeps --force
# 步骤4:安装客户端包
rpm -ivh mysql-community-client-8.0.45-1.el7.x86_64.rpm --nodeps --force
# 步骤5:安装服务端包(最后装,依赖前所有包)
rpm -ivh mysql-community-server-8.0.45-1.el7.x86_64.rpm --nodeps --force
安装成功提示:Preparing... ################################# [100%] + Updating / installing... 无报错;
若报错「文件已存在」:加 --replacefiles 参数(如 rpm -ivh 包名 --nodeps --force --replacefiles)。
4、验证安装成功
[root@localhost ~]# ls /etc/my.cnf
/etc/my.cnf
[root@localhost ~]# which mysqld
/usr/sbin/mysqld
[root@localhost ~]# which mysql
/usr/bin/mysql
以上信息表示安装成功
vim /etc/my.cnf
添加以下配置
character-set-server=utf8
default-storage-engine=innodb
配置后,重启数据库生效。
1、查看mysql运行状态
systemctl status mysqld
2、启动mysql
systemctl start mysqld
3、停止mysql
systemctl stop mysqld
4、重启mysql
systemctl restart mysqld
5、设置开机自启
systemctl enable mysqld
6、禁止开机自启
systemctl disable mysqld
1、查看初始密码
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2024-04-15T01:54:50.429650Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: lQ(uaDq6v!dU
以上信息显示初始密码为:lQ(uaDq6v!dU
2、登录mysql
mysql -uroot -p
输入密码,输入的时候不会显示密码
3、修改策略(这步可跳过)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+--------+
8 rows in set (0.00 sec)
设置新的策略
set global validate_password.policy=LOW;
set global validate_password.length=4;
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.special_char_count=0;
4、修改密码
alter user 'root'@'localhost' IDENTIFIED BY 'Root@123456';
5、刷新
flush privileges;
1、创建任意主机连接的root账号
CREATE USER 'root'@'%' IDENTIFIED BY 'Root@123456';
2、授权
grant all privileges on *.* to 'root'@'%' with grant option;
3、刷新
flush privileges;
1、查看防火墙状态
firewall-cmd --state
或者
systemctl status firewalld
2、查看开放端口列表
firewall-cmd --list-ports
3、开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
4、关闭防火墙(比较粗暴,除了没啥用的服务器不建议关闭)
systemctl stop firewalld
systemctl disable firewalld
5、重启防火墙
firewall-cmd --reload
未安装 mysql-community-client-plugins 包,回到第三步第4点,先装该包再装 libs 包。
临时密码过期,重新用临时密码登录并立即改密码
mysql -u root -p临时密码 --connect-expired-password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
root 未授权远程访问,回到第四步第4点重新执行授权命令,或检查防火墙/SElinux 是否关闭。
# 1. 停止 MySQL 服务
systemctl stop mysqld
# 2. 跳过权限验证启动
mysqld_safe --skip-grant-tables --user=mysql &
# 3. 免密登录
mysql -u root
# 4. 修改密码
USE mysql;
UPDATE user SET authentication_string = PASSWORD('Root@123456') WHERE user = 'root';
FLUSH PRIVILEGES;
EXIT;
# 5. 重启 MySQL
systemctl restart mysqld
声明:本文参考 CentOS 7 RPM 安装 MySQL 8 详细步骤,整合而成
评论