Linux安装MySQL(使用yum)

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

安装前准备

一、可以考虑替换国内yum镜像

根据我老中医多年的经验,需要从某些仓库啊之类的下载某些包的时候,最好先看看怎么替换国内的镜像(否则下载会非常慢,更拉的时候还会缺这少那导致最后项目报莫名其妙地报错);so,yum的镜像源替换可以参考:yum更换国内镜像源

我的环境是aliyun的ECS服务器,系统镜像选了阿里自己的Alibaba Cloud Linux 2镜像(阿里自己的一个linux系统版本,具体可以看这——Alibaba Cloud Linux概述。),这个镜像默认就用了阿里自己的yum源,就不用再自己手动改了。

Linux安装MySQL(使用yum)

二、查看你的Linux内核版本

这个主要是为了安装mysql时在官网选择合适的yum源,
查看内核版本可以参考:查看Linux内核版本
执行

cat /proc/version
或者
hostnamectl

Linux安装MySQL(使用yum)

我的内核版本是Linux 4.19.91-25.6.al7.x86_64

是64位的linx4.19版本(x86就是32位,x86_64就是64位的)

al7划重点,你用CentOS那可能就是el开头,用Ubuntu可能还不一样

很长一段时间以来,我一直在寻找内核版本号的解释,而这一次更详细。

[En]

I’ve been looking for an explanation of the kernel version number for a long time, and this one is more detailed.

Linux内核版本介绍与查询。其它的大部分是抄来抄去都差不多,整天抄来抄去脸都不要了。

安装过程

一、从mysql官网获取yum源

mysql官方下载页:https://dev.mysql.com/downloads/

Linux安装MySQL(使用yum)

根据你的内核版本,选择合适的yum仓库

Linux安装MySQL(使用yum)

这是一个问题,在这里选择哪一个(或者它可能无关紧要),但原因应该基于您的内核版本。

[En]

It’s a question of which one to choose here (or it may not matter.), but reason should be based on your kernel version.

举例来说,你内核版本是…XX.el7.x86_64的话,选图上第二个就行了。

不过我这里就比较纠结了,我是 Linux 4.19.91-25.6.al7.x86_64,
这个aliyun的内核该选哪个不太好说,我还去问了他们云服务器的客服,他说哪个都行。???!!!

最后我选了第二个,就是el7那个。因为我看到阿里的这个linux镜像简介上这么说:

Linux安装MySQL(使用yum)

也就是阿里这个Linux镜像兼容CentOS7,那就可以理解成 al7 ≈ el7 ?!总之我选了第二个。如果有使用别的linux内核版本的同学。

总之,下载下来之后把这个文件上传到你的linux服务器上。

Linux安装MySQL(使用yum)

二、使用yum安装mysql

安装mysql的步骤,强烈建议按照我刚开始发的mysql官方指引上的步骤来,他每一步都有详细的解释,我这里只简单跟一下。

1、添加mysql yum源

cd到你上传rpm包的目录下。

把你下载下来的这个mysql 的yum源(就是这个rpm包)添加到你系统的yum源中去。

cd /your_rpm_root/

sudo rpm -Uvh mysql80-community-release-el7-5.noarch.rpm(前面换成你自己的rpm包名)

Linux安装MySQL(使用yum)

2、选择要安装的mysql版本

添加完yum源之后,如果什么都不做直接安装的话,会默认安装最新的mysql版本,也就是mysql8.0的最新发行版。

我这里因为兼容问题需要使用mysql5.7,所以要改一下配置(想直接装8.0版本的可以跳过这一步):

下面的语句用于查看当前mysql yum源下哪些子源可用(不同的mysql版本使用不同的子仓库)

yum repolist all | grep mysql

这个语句的结果我在上面一张图里展示了,可以看到默认开启的是mysql8.0的仓库。

开启5.7,禁用8.0有两种方法,一个是用命令修改 _/etc/yum.repos.d/mysql-community.repo_文件。另一个是直接修改这个文件XD.

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

执行结果如图(可以看到enable的值变了-0代表关闭,1代表开启)

Linux安装MySQL(使用yum)

Linux安装MySQL(使用yum)

然后再执行查看语句,可以看到mysql 5.7已经启用了,8.0已经禁用了。

yum repolist all | grep mysql

Linux安装MySQL(使用yum)

3、el8版本内核需要的额外操作

就是说el8版本的linux默认有一个mysql模块,会覆盖我们刚添加的mysql yum源提供的一些包。所以要把这个模块禁用。

不确定是不是el8版本内核的也可以执行一下,我试了,顶多说找不到这个命令。

sudo yum module disable mysql

4、安装mysql

sudo yum install mysql-community-server

如果你使用国内镜像,这一步装起来应该很快,比直接在官网下载mysql的压缩包(600多M)还快。

没什么好说的,一路yes即可。

5、开启msyql服务

开启服务
systemctl start mysqld
查看状态
systemctl status mysqld

Linux安装MySQL(使用yum)

安装部分已在此处完成,您可以在此处查看官方安装文档。以下是一些配置-更改密码、打开远程服务、防火墙打开端口。

[En]

The installation part is completed here, and you can see the official installation documentation here. Here are some configurations-change password, open remote service, firewall open port.

6、改默认密码

mysql服务第一次启动的时候,会默认创建一个”超管账户”——’root’@’localhost’——就是本地使用root账号登录。

此帐户的默认密码将存储在日志中。使用以下命令将其删除。

[En]

The default password for this account will be stored in the log. Take it out with the following command.

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

获得这个密码之后,登录mysql服务,修改密码。

登录
mysql -uroot -p
改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

Linux安装MySQL(使用yum)

上面还可以看到,我第一次改的密码太简单,所以他给我抛了个ERROR,第二次按照他的规则改,才成功。

这是因为mysql有一个密码验证插件,你的密码需要至少一个大写,一个小写,一个数字,一个特殊字符,长度至少8位。

Linux安装MySQL(使用yum)

你也可以自己修改这个认证策略,其实没必要,如果你真的需要一个简单的密码的话,可以参考:ERROR 1819 密码策略修改

7、创建远程访问用户

建用户
create user 'root'@'%' identified with mysql_native_password by '你的密码';
赋权限
grant all privileges on *.* to 'root'@'%' with grant option;
刷新用户权限
flush privileges;

超管账号那个root@localhost用户只能本地登录,这里创建的用户把超管后面的localhost换成了%,就是可以从任意地址访问的一个用户。

Linux安装MySQL(使用yum)

8、开启防火墙的3306端口

服务器通常必须打开防火墙。因此,虽然上面已经创建了可以远程登录的用户,但如果想要远程登录,还需要让防火墙知道如何允许访问。

[En]

The server usually has to turn on the firewall. So although the above has created users who can log in remotely, if you want to come in remotely, you also need to let the firewall know how to allow access.

mysql服务默认启动在3306端口,所以需要防火墙开启3306端口。

这里需要注意:

linux的防火墙常见的(我搜到的比较多的,可能因为大部分博客都是互相抄的),有两个,一个是firewalld服务,另一个是iptables。

应该是比较新的linux版本——好像是linux7以后——firewalld替代了iptables。

总而言之,您在这里需要做的是打开防火墙,然后添加规则以打开端口3306。

[En]

All in all, what you need to do here is to turn on the firewall, and then add rules to open port 3306.

①如果你是firewalld(就是有这个服务,不然执行下面的语句会提示没有这个服务)

没开启的话先开启服务
systemctl start firewalld
查看状态
systemctl status firewalld
开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入
firewall-cmd --reload

Linux安装MySQL(使用yum)

②如果是iptables(就是有这个服务,不然执行下面的语句会提示没有这个服务)

先看下有没有这个服务
service iptables status

如果您的服务器运行此服务,您可以参考下面的文章打开端口3306:

[En]

If your server runs this service, you can refer to the following article to open port 3306:

linux怎么开放3306端口

③更多相关firewalld/iptables命令可参考:
细说firewalld和iptables

9、配置mysql默认编码为utf-8

使用vim修改my.cnf文件(纯小白建议先熟悉一下vim操作)
vim /etc/my.cnf

添加如下配置

character_set_server=utf8
init_connect='SET NAMES utf8'

Linux安装MySQL(使用yum)

改完之后,:wq保存退出,别忘了重启一下mysql服务使改动生效。

systemctl restart mysqld

重启完之后检查一下,可以看到字符集都变成utf-8了

先登录mysql,再执行
mysql> show variables like '%character%';

Linux安装MySQL(使用yum)

10、aliyun安全组开启3306端口

一般的服务器做完上面的步骤,你用navicat什么的客户端远程连接服务器上的数据库也就没问题了。

但这里我用的是aliyun的服务器,所以还需要一些额外的配置——阿里在你的云服务器的防火墙之外又加了一套自己的”防火墙”,你需要再告诉这个防火墙开启3306端口)

首先,您需要在控制台上设置一个安全组。

[En]

First, you need to set up a security group on your console.

Linux安装MySQL(使用yum)

然后点击将您的实例(即您的服务器)添加到此安全组

[En]

Then click to add your instance (that is, your server) to this security group

Linux安装MySQL(使用yum)

好了,这样我们就可以成功连接了。

[En]

All right, so we can connect successfully.

11、连接测试

Linux安装MySQL(使用yum)

总结

从mysql官网选yum源那个地方,elX的内核还好说,别的Linux版本真心不知道该怎么选yum源。

本文转自:https://blog.csdn.net/qq_38907313/article/details/123574181

Original: https://www.cnblogs.com/helong-123/p/16374666.html
Author: 萌褚
Title: Linux安装MySQL(使用yum)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523381/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球