史上最全Centos7安装MySql8 - rpm方式

本文提供了一种使用rpm方式在Centos7上安装MySQL8的全面指南,包括删除旧包、下载安装包、安装过程、初始化数据库、设置新密码以及处理可能出现的错误和启动问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、准备工作:

删除旧包

rpm -e $(rpm -qa|grep mysql) --nodeps
rpm -qa|grep mariadb //查看是否自带mariadb
rpm -e packagename  --nodeps //卸载包

2、下载安装包

官网地址

https://dev.mysql.com/downloads/mysql/

选择系统

Select Operating System:Red Hat Enterprise Linux / Oracle Linux

Select OS Version:Red Hat Enterprise Linux7 / Oracle Linux7(x86,64-bit)

在这里插入图片描述

版本选择

在这里插入图片描述## 下载软件

mkdir /usr/local/soft/mysql
cd /usr/local/soft/mysql
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar

3、安装MySQL8

解压安装包

tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
[root@localhost soft]# ll
总用量 1630044
-rw-r--r--.  1 root root  834560000 5月  31 09:16 mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--.  1 7155 31415  48822048 3月  27 20:14 mysql-community-client-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415    623508 3月  27 20:14 mysql-community-common-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415   8129988 3月  27 20:14 mysql-community-devel-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415  23599996 3月  27 20:14 mysql-community-embedded-compat-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415   4667884 3月  27 20:14 mysql-community-libs-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415   1277128 3月  27 20:14 mysql-community-libs-compat-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415 512057468 3月  27 20:15 mysql-community-server-8.0.20-1.el7.x86_64.rpm
-rw-r--r--.  1 7155 31415 235369940 3月  27 20:16 mysql-community-test-8.0.20-1.el7.x86_64.rpm

安装数据库

会提示依赖关系,按照提示依次安装

rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm

//net-tools 被 mysql-community-server-8.0.21-1.el7.x86_64 需要
yum -y install net-tools mariadb-libs

//提示这个libmysqlclient.so.18(libmysqlclient_18)(64bit),它被软件包 2:postfix-2.10.1-7.el7.x86_64 需要
//官网下载
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/
//示例下载步骤一
wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
//示例下载步骤一
rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

//启动失败请查看文章末尾提示

初始数据库

在/var/log/mysqld.log生成随机密码

sudo mysqld --initialize

启动数据库

sudo service mysqld start

数据库状态

[root@localhost soft]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2020-05-31 10:01:18 CST; 45min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 15924 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 16003 (mysqld)
   Status: "Server is operational"
    Tasks: 40
   Memory: 440.0M
   CGroup: /system.slice/mysqld.service
           └─16003 /usr/sbin/mysqld

5月 31 10:01:08 localhost.localdomain systemd[1]: Starting MySQL Server...
5月 31 10:01:18 localhost.localdomain systemd[1]: Started MySQL Server.

数据库登录

初始密码看提示1

mysql -u root -p

新密码修改

新密码设置需要符合提示2密码规则

mysqladmin -u root -p password "新密码"

3、提示:

①获取初始密码

cat /var/log/mysqld.log

[root@localhost soft]# grep 'temporary password' /var/log/mysqld.log
2020-05-31T01:58:34.017409Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: e;Z#OhD7j9A_
2020-05-31T02:01:12.440392Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: eIpSuF&ht8O.

②重置密码规则

MySQL8设置密码需要 大写+小写+数字+符号+八位以上

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| 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      |
+--------------------------------------+--------+
7 rows in set (0.06 sec)

③报错情况处理

查看日志,找到错误并修改

[root@localhost ~]# vi /var/log/mysqld.log
200423 13:19:58 mysqld_safe Logging to '/var/log/mysqld.log'.
200423 13:19:58 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2020-04-23 13:19:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-04-23 13:19:58 0 [Note] /usr/sbin/mysqld (mysqld 5.6.47) starting as process 6677 ...
2020-04-23 13:19:58 6677 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2020-04-23 13:19:58 6677 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

④启动失败

//1、找到MySQL配置文件位置
mysql --help | grep my.cnf
//2、找到错误日志的位置
cat /ect/my.cnf
//3、查找错误日志,找到错误信息
cat /var/log/mysqld.log

⑤重置密码

1、免密码登陆
找到mysql配置文件:my.cnf,
在【mysqld】模块添加:skip-grant-tables   保存退出

2、使配置生效
重启mysql服务:  service mysqld restart

3、将旧密码置空
mysql -u root -p    //提示输入密码时直接敲回车。
//选择数据库
use mysql
//将密码置空
update user set authentication_string = '' where user = 'root';
//退出
quit

4、去除免密码登陆
删掉步骤1的语句  skip-grant-tables
重启服务  service mysqld restart

5、修改密码
mysql -u root -p  //提示输入密码时直接敲回车,刚刚已经将密码置空了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';//'abc123@xxx'  密码形式过于简单则会报错

ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值