前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你在centos上安装MySQL(避坑必备)

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

作者头像
Python进击者
发布2020-03-19 14:18:22
6680
发布2020-03-19 14:18:22
举报
文章被收录于专栏:JAVAandPython君JAVAandPython君

前言

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

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

详细步骤

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

1.把MySQL放入YUM列表

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

我们首先进入下面的网址

代码语言:javascript
复制
https://dev.mysql.com/downloads/repo/yum/

然后看下图

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

代码语言:javascript
复制
cd /home/

# wget https://repo.mysql.com//刚刚截图上的地址

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

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

代码语言:javascript
复制
rpm -ivh mysql80-community-release-el7-3.noarch.rpm

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

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

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

代码语言:javascript
复制
yum repolist all | grep mysql

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

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

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

代码语言:javascript
复制
vim /etc/yum.repos.d/mysql-community.repo

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

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

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

代码语言:javascript
复制
yum repolist enabled | grep mysql

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

3.安装MySQL

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

代码语言:javascript
复制
sudo yum install mysql-community-server

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

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

4.设置MySQL

设置开机启动:

代码语言:javascript
复制
systemctl enable mysqld.service

检查是否设置成功:

代码语言:javascript
复制
systemctl list-unit-files | grep mysqld

如果出现下面的结果:

说明启动成功了。

然后开启MySQL服务:

代码语言:javascript
复制
systemctl start mysqld.service

5.修改MySQL密码

查看默认密码:

代码语言:javascript
复制
grep 'temporary password' /var/log/mysqld.log

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

登录MySQL:

代码语言:javascript
复制
mysql -u root -p  

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

代码语言:javascript
复制
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

命令生效:

代码语言:javascript
复制
mysql>flush privileges;

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

一些常见问题

端口被占,报错

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

代码语言:javascript
复制
“ Can't start server: Bind on TCP/IP port: Address already in use Do you already have anothe

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

代码语言:javascript
复制
netstat -nltp|grep mysql

然后将其占用端口kill掉

完全卸载MySQL

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

卸载:

代码语言:javascript
复制
yum remove mysql mysql-server mysql-libs compat-mysql51

rm -rf /var/lib/mysql

rm /etc/my.cnf

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

代码语言:javascript
复制
yum remove mysql mysql-devel mysql-server mysql-libs compat-mysql51

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

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

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

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

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

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

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

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

代码语言:javascript
复制
#远程设置
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是加密的密码,所以我们需要安装下面的方法设置密码:

代码语言:javascript
复制
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;

关闭防火墙:

代码语言:javascript
复制
sudo systemctl stop firewalld.service

关闭开机启动:

代码语言:javascript
复制
sudo systemctl disable firewalld.service

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

然后就测试成功:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python进击者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 详细步骤
    • 1.把MySQL放入YUM列表
      • 2.选择需要安装的Mysql版本
        • 3.安装MySQL
          • 4.设置MySQL
            • 5.修改MySQL密码
            • 一些常见问题
              • 端口被占,报错
                • 完全卸载MySQL
                  • MySQL没有初始密码,查看不了mysqld.log文件
                    • 外网/客户端访问问题,比如navicat连接
                    相关产品与服务
                    云数据库 SQL Server
                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档