这是参考msyql官方文档编写的(网上有各种教程,各有各的特点和技巧,但以官方文档为主要参考是最靠谱的)
注:适用于首次安装。 如果系统上有以前安装的版本,官方文档的同一章节也有如何升级和替换的说明。 这里我不重点讨论它。
①msyql官方指南点击这里(强烈建议打开这个并按照操作);
② 安装完成后,修改代码、重置密码、开放端口请参考:在Linux上安装MySQL
目录
安装前的准备1.可以考虑更换国内的yum镜像
根据我作为老中医多年的经验,当你需要从某些仓库下载某些包时,最好先看看如何替换国内镜像(不然下载会很慢,还会出现更新时遗漏了一些项目)导致最终项目报告出现莫名其妙的错误); 所以,yum镜像源更换可以参考:yum更换国内镜像源
我的环境是一台ECS服务器,系统镜像是阿里巴巴自家的Cloud Linux 2镜像(阿里巴巴自家的Linux系统版本,详情参见这个-Cloud Linux概述),该镜像默认使用阿里巴巴自家的yum。 源,您不再需要手动更改它。
2.检查您的Linux内核版本
这主要是安装mysql时在官网选择合适的yum源。
查看内核版本请参考:查看Linux内核版本
实施
cat /proc/version
或者
hostnamectl
我的内核版本是Linux 4.19.91-25.6.al7。
是64位的linx4.19版本(x86是32位,也就是64位)
关键点是al7。 如果你使用它,它可能以 el 开头。 如果你使用它,情况可能会有所不同。 欢迎在留言区补充。
找了好久关于内核版本号的解释,这篇文章还是比较详细的。
Linux内核版本介绍及查询。 如果我一遍又一遍地复制它,大多数其他东西几乎都是一样的。 整天抄袭真是无耻。
安装过程 1.从mysql官网获取yum源
mysql官方下载页面:
根据你的内核版本,选择合适的yum仓库
这里选择哪一个是一个问题(可能你选哪一个都没关系……),但是原因应该根据你的内核版本而定。
比如你的内核版本是...XX.el7.,就选择图中的第二个即可。
但我这里比较困惑,我是Linux 4.19.91-25.6.al7.,
很难说为此选择哪个内核。 我还问了他们云服务器的客服,他说任何一台都可以。 ? ? ? ! ! !
最后我选择了第二个,el7。 因为我在阿里巴巴Linux镜像的介绍中看到了这样一句话:
也就是说阿里巴巴的Linux镜像是兼容的,所以可以理解为al7 ≈ el7?! 无论如何,我选择了第二个。 如果有同学使用其他Linux内核版本,希望您留言一下您最终选择的是哪个rpm包。
简而言之,下载后,将这个文件上传到你的Linux服务器上。
2.使用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包名)
2.选择需要安装的mysql版本
添加yum源后,如果不做任何操作直接安装,会默认安装最新的mysql版本,即.0的最新版本。
我这里由于兼容性问题需要使用.7,所以需要更改配置(如果想直接安装8.0版本,可以跳过这一步):
以下语句用于查看当前mysql yum源下有哪些子源(不同的mysql版本使用不同的子源)
yum repolist all | grep mysql
我在上图中展示了这个语句的结果。 可以看到.0仓库默认是启用的。
有两种方法可以启用 5.7 和禁用 8.0。 一种是使用命令修改*/etc/yum.repos.d/mysql-.repo*文件。 另一种是直接修改这个文件XD。
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
执行结果如图(可以看到值发生了变化——0表示关闭,1表示打开)
然后执行view语句可以看到mysql 5.7已经启用,8.0已经禁用。
yum repolist all | grep mysql
3*、el8版本内核需要的额外操作
也就是说el8版本的Linux默认有一个mysql模块,这个模块会覆盖我们刚刚添加的mysql yum源提供的一些包。 所以这个模块应该被禁用。
我不确定是否可以用el8版本的内核执行。 我尝试了一下,最多就是说找不到命令。
sudo yum module disable mysql
4.安装mysql
sudo yum install mysql-community-server
如果你使用国内的镜像,这一步安装起来应该很快,比直接从官网下载mysql压缩包(600多M)还要快。
没什么好说的,就是一路走好。
5.启动msyql服务
开启服务
systemctl start mysqld
查看状态
systemctl status mysqld
安装部分现已完成。 您可以在这里阅读官方安装文档。 以下是一些配置 - 更改密码、启用远程服务、打开防火墙端口......
6.更改默认密码
mysql服务第一次启动时,会默认创建一个“超级管理账户”——'root'@'',即使用root账户在本地登录。
该帐户的默认密码将存储在日志中。 使用以下命令将其删除。
sudo grep 'temporary password' /var/log/mysqld.log
获取该密码后,登录mysql服务并修改密码。
登录
mysql -uroot -p
改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
上面也可以看到,我第一次改的密码太简单了,所以他给我抛出了一个ERROR。 我第二次就按照他的规则改了,成功了。
这是因为mysql有密码验证插件。 您的密码必须至少包含 1 个大写字母、1 个小写字母、1 个数字、1 个特殊字符,且长度至少为 8 个字符。
您也可以自行修改此身份验证策略。 事实上,没有必要。 如果确实需要简单的密码,可以参考:ERROR 1819 密码策略修改
7.创建远程访问用户
建用户
create user 'root'@'%' identified with mysql_native_password by '你的密码';
赋权限
grant all privileges on *.* to 'root'@'%' with grant option;
刷新用户权限
flush privileges;
超级管理账号root@用户只能本地登录。 这里创建的用户用%代替了超级管理,是一个可以从任意地址访问的用户。
8、打开防火墙的3306端口
服务器通常需要防火墙。 因此,虽然上面创建了可以远程登录的用户,但是如果想要远程进来,还是需要让防火墙知道允许什么样的访问。
mysql服务默认启动在3306端口,因此防火墙需要开放3306端口。
这里需要注意的事项:
常见的Linux防火墙有两种(我发现的比较多,可能是因为大多数博客互相抄袭),一种是服务型的,一种是服务型的。
它应该被一个相对较新的 Linux 版本取代 - 似乎是在未来。
简而言之,这里需要做的是:打开防火墙,然后添加规则,开放3306端口。
① 如果您是(即您有此服务,否则执行以下语句会提示没有此服务)
没开启的话先开启服务
systemctl start firewalld
查看状态
systemctl status firewalld
开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入
firewall-cmd --reload
②如果是(则表示有该服务,否则执行以下语句会提示没有该服务)
先看下有没有这个服务
service iptables status
如果您的服务器开启了该服务,您可以参考以下文章开放3306端口:
如何在Linux中打开3306端口
③更多相关/命令请参考:
详细阐述和
9、配置mysql默认编码为utf-8
使用vim修改my.cnf文件(纯小白建议先熟悉一下vim操作)
vim /etc/my.cnf
添加以下配置
character_set_server=utf8
init_connect='SET NAMES utf8'
进行更改后,保存并使用 :wq 退出。 不要忘记重新启动 mysql 服务以使更改生效。
systemctl restart mysqld
重启后查看可以看到字符集已经变成utf-8了。
先登录mysql,再执行
mysql> show variables like '%character%';
10*。 安全组开放3306端口
在一般服务器上完成上述步骤后,无论你用什么客户端远程连接服务器上的数据库都没有问题。
但这里我使用的是服务器,所以需要一些额外的配置——阿里巴巴除了你的云服务器的防火墙之外还添加了自己的“防火墙”。 您需要告诉此防火墙打开端口 3306)
首先,您需要在控制台中创建一个安全组
然后点击将你的实例(也就是你的服务器)添加到这个安全组中
好的,这样就连接成功了。
11、连接测试
总结
说到从mysql官网选择yum源,elX内核是可以的。 我实在不知道其他Linux版本如何选择yum源。 真心希望同学们能够分享。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。