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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 手把手教你在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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
1811 4
MySQL源码编译安装
|
7月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
1009 4
MySQL二进制包安装
|
7月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
746 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
7月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
716 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
775 6
|
7月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
2143 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
8月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
1889 16
|
9月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
651 10
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
526 3