使用yum 安装mysql数据库

news2024/10/7 8:25:28

h这是参照msyql官方文档写的(网上的教程五花八门,各有各的特色和技巧,不过还是以官方文档为主要参考最靠谱)
注意 : 适用于第一次安装的情况,系统上已经有之前安装过的版本的话,官方文档同一章也有升级、替换该怎么操作,我这里不侧重。
①msyql官方指引戳这里(强烈建议打开这个对照着操作);
②安装完成后修改编码、重设密码、开放端口部分参考了:在Linux上安装MySQL

目录

安装前准备

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

二、查看你的Linux内核版本

安装过程

yum安装数据库

一、从mysql官网获取yum源

二、使用yum安装mysql

1、添加mysql yum源

2、选择要安装的mysql版本

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

4、安装mysql

5、开启msyql服务

6、改默认密码

7、创建远程访问用户

8、开启防火墙的3306端口

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

10*、aliyun安全组开启3306端口

11、连接测试

修改yum安装的mysql默认目录

1.创建新目录

2.把MySQL服务进程停掉:

4.修改配置文件 my.cnf

5.修改MySQL启动脚本/etc/init.d/mysql

6.检查相关目录的属主和权限。

7.重新启动MySQL服务

8.启动时报错,需临时关闭需要将Selinux临时关闭才能启动成功:

9.设置SELinux禁止启动

10重启后登录验证



安装前准备

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

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

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


二、查看你的Linux内核版本


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

cat /proc/version
或者
hostnamectl

我的内核版本是 Linux 3.10.0-1160.99.1.el7.x86_64是64位的linx3.10.0版本(x86就是32位,x86_64就是64位的)al7划重点,你用CentOS那可能就是el开头,用Ubuntu可能还不一样,欢迎留言区补充。

安装过程

yum安装数据库


一、从mysql官网获取yum源


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

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

这里选哪一个是个问题(也可能选哪个没什么影响…),不过讲道理应该是根据你的内核版本来选。

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

二、使用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版本,也就是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.

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

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


然后再执行查看语句,可以看到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
5、开启msyql服务


开启服务

systemctl start mysqld

查看状态

systemctl status mysqld

到这里安装部分算是完成了,官方安装文档看到这里就可以了。下面是一些配置-改密码,开远程服务,防火墙开端口…

6、改默认密码


mysql服务第一次启动的时候,会默认创建一个“超管账户”——‘root’@‘localhost’——就是本地使用root账号登录。
这个账号的默认密码会存在日志里。通过以下命令取出。

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

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

登录
mysql -uroot -p
改密码

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

上面还可以看到,我第一次改的密码太简单,所以他给我抛了个ERROR,第二次按照他的规则改,才成功。
这是因为mysql有一个密码验证插件,你的密码需要至少一个大写,一个小写,一个数字,一个特殊字符,长度至少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@localhost用户只能本地登录,这里创建的用户把超管后面的localhost换成了%,就是可以从任意地址访问的一个用户。

8、开启防火墙的3306端口


服务器一般是要开防火墙的。所以上面虽然创建了可以远程登录的用户,但是远程想要进来,还需要让防火墙知道怎样的访问允许进来。
mysql服务默认启动在3306端口,所以需要防火墙开启3306端口。
这里需要注意:
linux的防火墙常见的(我搜到的比较多的,可能因为大部分博客都是互相抄的),有两个,一个是firewalld服务,另一个是iptables。
应该是比较新的linux版本——好像是linux7以后——firewalld替代了iptables。
总之这里需要做的是:开启防火墙,然后添加规则打开3306端口。
①如果你是firewalld(就是有这个服务,不然执行下面的语句会提示没有这个服务)

没开启的话先开启服务

systemctl start firewalld

查看状态

systemctl status firewalld 

开启3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

重新载入

firewall-cmd --reload

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

先看下有没有这个服务
service iptables status
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*、aliyun安全组开启3306端口


一般的服务器做完上面的步骤,你用navicat什么的客户端远程连接服务器上的数据库也就没问题了。
但这里我用的是aliyun的服务器,所以还需要一些额外的配置——阿里在你的云服务器的防火墙之外又加了一套自己的"防火墙",你需要再告诉这个防火墙开启3306端口)
首先需要在你的控制台建一个安全组

然后点把你的实例(也就是你的服务器)加到这个安全组里

好了,这样就能连接成功了。

11、连接测试

修改yum安装的mysql默认目录

1.创建新目录
#数据目录设置为 /home/data
mkdir -p /home/data
2.把MySQL服务进程停掉:
mysqladmin -u root -p shutdown

  3. 把/var/lib/mysql 整个目录移到/home/data

mv /var/lib/mysql /home/data/
4.修改配置文件 my.cnf
#假如/etc/目录下没有my.cnf配置文档,请到/usr/share/mysql/下找到*.cnf文档
#拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
cp /usr/share/mysql/my.cnf /etc/my.cnf


vi  my.cnf   
[mysqld]
port   = 3306
socket  = /home/data/mysql/mysql.sock   #修改socket参数
5.修改MySQL启动脚本/etc/init.d/mysql
vi /etc/init.d/mysql
datadir=/home/data/mysql   #修改datadir数据目录的位置

#做一个mysql.sock 链接:

ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
6.检查相关目录的属主和权限。
chown -R mysql:mysql /home/data/mysql/  #设置数据库的归属为mysql 
7.重新启动MySQL服务
/etc/init.d/mysql start
8.启动时报错,需临时关闭需要将Selinux临时关闭才能启动成功:
[root@localhost /]# systemctl mysqld start
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@localhost /]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 日 2020-06-14 22:13:45 CST; 1min 16s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 19271 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 19241 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 19271 (code=exited, status=1/FAILURE)
   Status: "Server startup in progress"
    Error: 13 (权限不够)
6月 14 22:13:43 localhost.localdomain systemd[1]: Starting MySQL Server...
6月 14 22:13:45 localhost.localdomain systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
6月 14 22:13:45 localhost.localdomain systemd[1]: Failed to start MySQL Server.
6月 14 22:13:45 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
6月 14 22:13:45 localhost.localdomain systemd[1]: mysqld.service failed.
[root@localhost /]# setenforce 0 
[root@localhost /]# systemctl start mysqld
9.设置SELinux禁止启动

表示 设置SELinux 成为permissive模式 临时关闭selinux防火墙
永久关闭:输入命令

vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled,然后保存退出

10重启后登录验证

总结
从mysql官网选yum源那个地方,elX的内核还好说,别的Linux版本真心不知道该怎么选yum源,真心希望同学们能分享一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【广州华锐互动】AR轨道交通综合教学平台的应用

轨道交通是一种复杂且精密的系统,涵盖了众多技术和工程学科,包括机械、电气和计算机科学等。对于学生来说,理解和掌握这些知识是一项挑战。然而,AR技术的出现为解决这一问题提供了可能。 通过AR技术,教师可以创建生动、…

Linux ❀ 磁盘IO较大故障告警排查确认方法

文章目录 1、iotop2、iostat3、磁盘压力测试 问题描述:在日常运维工作中,经常会遇到Linux服务器出现Disk磁盘I/O( I/O 英文全称是 Input/Output,中文译为 输入与输出,通常指存储器与其他设备之间的数据交换操作&#x…

sip网络话筒主机SIP桌面式对讲广播主机

sip网络话筒主机SIP桌面式对讲广播主机 SV-8003VP是我司的一款SIP桌面式对讲主机,具有10/100M以太网接口,配置了麦克风输入和扬声器输出,还配置多达22个按键和2.8英寸液晶显示屏,可以配合SIP服务器使用。SV-8003VP网路寻呼话筒可以…

SAP SD定价过程 含税未税 最大区别

SAP SD定价过程 含税&未税 最大区别 最大区别应该为,税条件类型: 含税一般用 MWSI 未税一般用 MWST

HarmonyOS/OpenHarmony原生应用开发-华为Serverless认证服务说明(二)

一、支持HarmonyOS(Stage模型-API9)应用的账户注册登录方式 文档中的TS作者认为就是ArkTS之意。暂时支持四种模式,手机、邮箱、匿名、自有账户。 二、暂时不支持HarmonyOS(Stage模型-API9)应用的账户注册登录方式 包括华为账户注册登录,HarmonyOS…

使用Fillder的一点总结

文章目录 最近使用Fillder的一点总结一、前言二、关于FildderScript的吐槽三、关于filters四、关于快捷方式的吐槽五、关于断点 最近使用Fillder的一点总结 纯乱搞,但是不得不说Fillder确实厉害 一、前言 安装请在官网下载 简单食用方法可参阅:https…

C#实现OPC DA转OPC UA服务器

运行软件前提前安装好OPC运行组件: 为方便演示,提前准备好了一个DAServer服务器: 接下来开始配置: 该软件主要实现的功能如下: 配置过程也相对简单: 第一步: 编辑如下文件: 第二步…

git介绍和安装、(git,github,gitlab,gitee介绍)、git工作流程、git常用命令、git忽略文件

1 git介绍和安装 2 git,github,gitlab,gitee介绍 3 git工作流程 4 git常用命令 5 git忽略文件 1 git介绍和安装 首页功能写完了---》正常应该提交到版本仓库---》大家都能看到这个---》 运维应该把现在这个项目部署到测试环境中---》测试…

最新抖音去水印PHP源码 非第三方接口

简介: 最新抖音去水印PHP源码 非第三方接口 源码全开源 视频解析接口来自官方抖音视频接口!非第三方接口!上传PHP环境中即可运行!支持上传二级目录访问! 访问你的域名地址/douyin.php douyin.php(此文件可以自行重新命名) 支持带有文本的链接和视频ID或者分享的…

【ppt技巧】批量修改ppt中的字体

PPT文件中的字体想要全部更换,有什么方便的方法吗?今天分享两个方法,一键修改ppt文件字体。 方法一: 找到功能栏中的编辑选项卡,点击替换 – 替换字体,在里面选择我们想要替换的字体就可以了。 方法二&am…

springboot项目集成kafka,并创建kafka生成消息线程池

效果图: 步骤1:添加依赖 <!-- kafka依赖 --><dependency><groupId>org.apache.kafka</groupId><<

10、SpringBoot_测试用例

四、测试用例 1.准备工作 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>com…

医药行业投资公司都有哪些?医药企业项目投资分析实用工具

据药融云-投融资数据库信息调研结果发现&#xff0c;在 3000家参与医疗投资的资方中,有超200家专注医疗投资的机构。 资方的信息可以通过垂直的生物医药行业投融资数据库进行查找&#xff0c;该类数据库收载了全球绝大部分的生物医药行业投资机构信息&#xff08;包含了投资机构…

SonarQube学习笔记三:直接使用sonar-scanner扫描器

目录 1.安装Sanner扫描器2.环境变量配置3.创建项目3.1 登录并创建项目3.2 输入项目名称信息3.3 选择分析仓库类型3.4 创建令牌3.5 保存令牌&#xff08;非必须&#xff09;3.6 选择构建技术方案3.6.1 .Net类项目3.6.2 Java类项目 3.7 获取Sonar检查结果3.8 在页面查看检查结果或…

微积分 - 对数函数与指数函数的导数

指数法则 对数法则 换底法则&#xff1a;对于任意的底数b>1和c>1以及任意的数x>0有&#xff1a; 对数函数和指数函数求导 令,那么g的导数是什么&#xff1f;使用导数的定义我们得到&#xff1a; 我们如何来简化这个杂乱的公式呢&#xff1f;当然是使用对数法则了&a…

nodejs+vue 高校社团综合服务系统elementui

在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。为确保中国经济的持续发展&#xff0c; 第三章 系统分析 5 3.1 系统设计目标 6 3.2 系统可行性分析 6 3.3 系统功能分析和描述 7 3.4系统UML用例分析 8 3.4.1管理员用例 9 3.4.2用户用例 9 3.5…

【算法|双指针系列No.3】leetcode202. 快乐数

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

Unity基础课程之物理引擎2-用于射击或者点击消除的射线检测方法

业务逻辑 这段代码实现了一个功能&#xff0c;当玩家按下鼠标左键或按下Q键时&#xff0c;从游戏主角的位置沿着主角的前方方向发射一条射线。如果射线碰撞到了具有Collider触发或碰撞器的游戏物体&#xff0c;则销毁该游戏物体。 程序逻辑 程序的逻辑如下&#xff1a; 1. 在…

SI314软硬件兼容替代GTX314L—低功耗14通道电容触摸传感器

Si314是一款具有自动灵敏度校准功能的14通道电容传感器&#xff0c;其工作电压范围为1.8~5.5V。 Si314设置休眠模式来节省功耗&#xff0c;此时&#xff0c;功耗电流为10uA3.3V。 Si314各个感应通道可实现独立使能、校准、灵敏度调节&#xff0c;可以确保可靠性&#xff0c;且具…

自动化测试框架有哪几种?搭建的思路是什么?完整指南奉上!

前言&#xff1a; 任何成功的自动化测试过程的关键组成部分都是测试自动化框架。降低维护成本&#xff0c;测试工作效率提升和提高质量保证团队的投资回报率ROI是优化敏捷流程时所提供的主要优势之一。 出于以下原因&#xff0c;自动化对于高效的测试过程至关重要&#xff1a…