手把手教你在centos上安装MySQL(避坑必备)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 手把手教你在centos上安装MySQL(避坑必备)

前言

在上篇文章中手把手教你在centos上配置Django项目(超详细步骤) 已经非常详细的讲解了centos部署Django的过程。

这篇文章主要来讲讲装MySQL的步骤以及我遇到的那些坑。


详细步骤

因为MySQL的版本是一直在升级的,所以很多人按照网络上搜出来的教程来安装,可能并不是你需要的版本,这里我来教大家如何找到最新版的下载地址。


1.把MySQL放入YUM列表

因为Centos7操作系统YUM库列表里默认不再提供MySQL,已经被MariaDB代替。我们下面的步骤就将MySQL安装包放入了YUM。

我们首先进入下面的网址


63.jpg


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


然后看下图


64.jpg


先回到home目录下,然后整合刚刚在网站上复制下来的地址


cd /home/
# wget https://repo.mysql.com//刚刚截图上的地址
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm


下载了之后,我们进行安装:


rpm -ivh mysql80-community-release-el7-3.noarch.rpm


2.选择需要安装的Mysql版本

在YUM库中,存储了多个版本的MySQL,现在最新版的MySQL版本为8.0的,我们更新YUM库之后,默认安装的是最新版本的MySQL,其它版本的存储库是禁用的。

我们可以通过下面的命令来看到哪些是禁用的:


yum repolist all | grep mysql


67.jpg


可以看到我在截图中红框所在的位置,因为目前MySQL8是最新的,所以它是默认启用的。我们如果需要安装8,我们可以直接进行安装,不需要其他的配置。

如果你需要安装别的版本,那么你就得进行相关的配置修改:

首先,通过下面命令进行配置文件的编辑:


vim /etc/yum.repos.d/mysql-community.repo


68.jpg


我们可以看到很多的版本,如果我这里需要安装5.7的版本


69.jpg


那么我们将5.7的配置中的enable改为1,然后将8的配置中的enable改为0,这样就能够启用5.7的版本

修改完成之后,我们可以通过下面的命令来检验是否修改成功:


yum repolist enabled | grep mysql


(因为我安装的是8,所以这里就不截图展示了,大家自行执行)


3.安装MySQL

前期工作全部做好了,我们正式的去安装MySQL


sudo yum install mysql-community-server


执行上面的命令进行安装,这个步骤可能需要点时间,大家耐心等待。

如果安装过程中没有出现报错而是出现完成或者completed!这种字样,就说明你安装成功了。


4.设置MySQL

设置开机启动:


systemctl enable mysqld.service


检查是否设置成功:


systemctl list-unit-files | grep mysqld


如果出现下面的结果:


70.jpg


说明启动成功了。

然后开启MySQL服务:


systemctl start mysqld.service


5.修改MySQL密码

查看默认密码:


grep 'temporary password' /var/log/mysqld.log


有些人可能输入命令之后并没有返回什么,也就是说这个文件没有内容。我在下面会告诉大家如何来解决MySQL无法找到初始密码。


登录MySQL:


mysql -u root -p


修改密码:MySQL8.0修改密码需要有大小写字母、数字、特殊字符组合


mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';


命令生效:


mysql>flush privileges;


到这里,恭喜你MySQL安装成功!


一些常见问题

端口被占,报错

mysqld启动,如果报以下错误。


“ Can't start server: Bind on TCP/IP port: Address already in use Do you already have anothe


需要查看3306端口是否被占用:


netstat -nltp|grep mysql


然后将其占用端口kill掉


完全卸载MySQL

很多时候一些莫名其妙的报错,可能是因为你的某个文件缺失,例如上面的找不到初始密码,大部分原因是因为你安装的时候出错了,导致你无法获取,当然也有其他办法,会在下面说道。

卸载:


yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf


一步一步执行,如果装了mysql-devel(其他一样add command),卸载为:


yum remove mysql mysql-devel mysql-server mysql-libs compat-mysql51


如果在安装过程中,出现了一些奇怪的错误,第一步一定是要仔细阅读报错信息,一定看清楚是哪方面的问题,如果是文件相关的出现错误或者缺失,建议大家先把MySQL卸载然后按照我的步骤重新安装。


MySQL没有初始密码,查看不了mysqld.log文件

首先,找到find / -name my.cnf 查询my.cnf文件路径:


71.jpg


使用vim编辑该文件,然后在 [mysqld]下面加上 skip-grant-tables 然后按ESC后,输入:wq后回车退出。

使用service mysqld restart 命令 重启mysqld服务。

最后一步就是使用mysql -u root -p(回车)即可,可以忽略密码。


外网/客户端访问问题,比如navicat连接

首先需要授权用户名的权限


#远程设置
mysql> use mysql;
mysql> update user set host='%' where user='root';
#授权用户名的权限,赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;


因为mysql8是加密的密码,所以我们需要安装下面的方法设置密码:


mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'Root!!2018' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root!!2018';
mysql> FLUSH PRIVILEGES;


关闭防火墙:


sudo systemctl stop firewalld.service


关闭开机启动:


sudo systemctl disable firewalld.service


并且需要在阿里云或者云服务器那边开放3306端口

然后就测试成功:


72.jpg

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
46 4
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
97 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
74 2
|
29天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
158 0
|
1月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
176 0
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
71 15
|
2天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。