Linux系统安装部署MySQL完整教程(图文详解)

news2024/11/28 19:22:49

前言:最近网上翻阅了大量关于Linux安装部署MySQL的教程,在自己部署的时候总是存在一些小问题,例如:版本冲突,配置失败和启动失败等等,功夫不负有心人,最后还是安装部署成功了,所以本篇博客记录了我是如何完整一步步的安装部署MySQL起来的,每一行代码都进行了严格的测试,其中的坑博主已经替大家全部踩完了,完整详细的步骤都在这篇博客中了,特此分享!

目录

一、准备MySQL安装包

二、安装MySQL

三、创建用户组和用户

四、配置MySQL

五、初始化MySQL

六、启动MySQL 

七、登录并修改初始密码

八、修改访问权限

九、放行端口号

十、Navicat访问MySQL

十二、设置开机自启

十三、总结


一、准备MySQL安装包

这是官网:https://dev.mysql.com/downloads/mysql/5.7.html

进去以后,系统选择Linux - Generic,最后选择64位的点击Download

选择直接下载即可

注:这边之所以选择的是5.7版本,是因为之前选择了最新版部署总是存在初始化失败的问题,所以我还是选择了更加稳定的版本。 

二、安装MySQL

这边我把自己的华为云服务器预先重装了系统,就是为了一步步干净完整的阐述搭建流程。

1、在根目录下新建一个mysql文件夹(图方便)

mkdir mysql

2、进入该目录

cd /mysql

3、将下载好的压缩包上传到Linux服务器上(Xftp)

​ 

4、解压

tar zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

5、解压完成以后,重命名一下解压后的目录名称,实在是太长了

mv mysql-5.7.43-linux-glibc2.12-x86_64/ mysql-5.7

三、创建用户组和用户

1、创建名为mysql的用户组

groupadd mysql

 2、添加用户htt到mysql用户组

useradd -r -g mysql htt

四、配置MySQL

1、进入到刚才解压的MySQL目录下

cd /mysql/mysql-5.7

2、创建一个名为data的目录

mkdir data

3、给用户组中的htt用户赋予data目录的权限

chown htt:mysql -R /mysql/mysql-5.7/data/

4、配置my.cnf文件

vim /etc/my.cnf

5、删除my.cnf文件中所有内容,复制如下内容

[mysqld]
bind-address=0.0.0.0
port=3306
user=htt
basedir=/mysql/mysql-5.7
datadir=/mysql/mysql-5.7/data
socket=/tmp/mysql.sock
log-error=/mysql/mysql-5.7/data/mysql.err
pid-file=/mysql/mysql-5.7/data/mysql.pid
max_connections=10000
max_user_connections=2000
wait_timeout=200
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1

命令详解

参数解释
bind-address=0.0.0.0设置MySQL绑定监听的IP地址,0.0.0.0表示监听所有IP,允许远程连接。
port=3306设置MySQL服务的端口号,默认是3306
user=htt指定运行mysqld进程的系统用户为htt
basedir=/mysql/mysql-5.7设置MySQL的安装基目录
datadir=/mysql/mysql-5.7/data设置MySQL的数据文件目录
socket=/tmp/mysql.sock设置本地连接时使用的Unix socket文件路径
log-error=/mysql/mysql-5.7/data/mysql.err
设置错误日志文件路径
pid-file=/mysql/mysql-5.7/data/mysql.pid设置存放进程PID的文件路径
max_connections=10000设置最大连接数,包括TCP和socket连接
max_user_connections=2000设置单个用户最大并发连接数
wait_timeout=200设置空闲连接超时时间,单位秒
character_set_server=utf8mb4设置服务器默认字符集
symbolic-links=0禁用symbolic link符号链接支持
explicit_defaults_for_timestamp设置timestamp列默认值声明方式
lower_case_table_names=1表名区分大小写,设置为1表示不区分

注: 记得改成自己的目录

6、 按i键进入编辑模式,粘贴进去

7、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可

五、初始化MySQL

1、先进入安装目录的bin目录下

cd /mysql/mysql-5.7/bin

2、初始化MySQL的数据目录

./mysqld --defaults-file=/etc/my.cnf --basedir=/mysql/mysql-5.7 --datadir=/mysql/mysql-5.7/data --user=htt --initialize

命令详解

参数详解
./mysqld启动mysqld服务器程序
--defaults-file=/etc/my.cnf指定配置文件路径为/etc/my.cnf
--basedir=/mysql/mysql-5.7指定MySQL的安装目录
--datadir=/mysql/mysql-5.7/data指定数据目录路径
--user=htt以htt用户身份启动
--initialize初始化数据目录,创建必要的系统表等

执行以后控制台报了如下错误:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 

执行如下命令,安装一下即可:

yum -y install libaio

3、再次执行刚才的命令,然后执行命令查看日志当中的初始密码

cat /mysql/mysql-5.7/data/mysql.err

红框是初始密码,一会登录MySQL会用到

NYURXh_Wx5o!

六、启动MySQL 

1、进入support-files目录下

cd /mysql/mysql-5.7/support-files

2、 运行mysql.server来启动MySQL服务

sudo ./mysql.server start

启动成功!

七、登录并修改初始密码

1、进入MySQL的bin目录

cd /mysql/mysql-5.7/bin

2、登录MySQL

./mysql -u root -p

3、把刚才的NYURXh_Wx5o!粘贴进来,然后敲回车

这样就登录进来了!

4、修改初始密码为root

SET PASSWORD = PASSWORD('root');

  

5、将root用户的密码过期策略设置为永不过期

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

6、刷新

FLUSH PRIVILEGES;

这样就可以了!

八、修改访问权限

1、访问mysql库

use mysql

2、打开root用户的远程访问权限,允许任何主机使用root用户连接MySQL数据库

update user set host = '%' where user = 'root';

3、刷新

FLUSH PRIVILEGES;

这样就修改完成了! 

九、放行端口号

我这边购买的是华为云服务器,需要在安全组放行MySQL的3306端口,否则无法访问! 

十、Navicat访问MySQL

输入服务器ip、端口号、账号和密码,连接成功!

这样就安装部署成功啦!

十二、设置开机自启

1、将MySQL的服务脚本创建一个符号链接到系统服务脚本目录下,文件名为mysql

ln -s /mysql/mysql-5.7/support-files/mysql.server /etc/init.d/mysql

命令详解

参数解释
ln -s创建一个符号链接
/mysql/mysql-5.7/support-files/mysql.serverMySQL数据库自带的服务脚本,用于控制MySQL服务器的启动和停止
/etc/init.d/mysql系统服务脚本存放的位置

2、将MySQL的客户端程序mysql创建一个符号链接到系统命令目录/usr/bin下

ln -s /mysql/mysql-5.7/bin/mysql /usr/bin/mysql

命令详解 

参数解释
ln -s创建一个符号链接
/usr/bin/mysql在系统命令目录下创建mysql符号链接
/mysql/mysql-5.7/bin/mysqlMySQL客户端程序mysql的原始路径

3、重启MySQL

service mysql restart

4、给/etc/init.d/mysql文件添加可执行权限

chmod +x /etc/init.d/mysql

5、将mysql服务添加为开机自动启动的服务

chkconfig --add mysql

6、查看服务列表

chkconfig --list

2-5级别显示为on,表示开机自动启动 

这样就设置好了! 

十三、总结

以上就是对于如何使用Linux安装部署MySQL的完整过程了,如有问题,欢迎评论区讨论! 

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

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

相关文章

《TCP IP网路编程》第九章

第 9 章 套接字的多种可选项 我们进行套接字编程时往往只关注数据通信,而忽略了套接字具有的不同特性。但是,理解这些特性并根据实际需要进行更改也很重要。下面列出了一些套接字可选项。 从表中可以看出,套接字可选项是分层的。 IPPROTO_IP …

[java安全]TemplatesImpl在Shiro550反序列化

文章目录 【java安全】TemplatesImpl在Shiro550反序列化Shiro的原理Shiro反序列化产生演示攻击过程payload使用key加密 构造不含数组的GadGets简单调用链 改造cc6为CommonsCollctionsShiro完整POC触发Shiro550漏洞进阶POC总结 【java安全】TemplatesImpl在Shiro550反序列化 Sh…

论文工具——写论文好用的绘图工具(甘特图+流程图+网络模型图+泳道图)

文章目录 引言正文手动画图的在线画图工具tldraw开源免费ProcessOnDraw.io 网络模型图工具NN-SVG设置参数自动生成Netron上传模型自动生成PlotNeuralNet编码生成 总结 引言 在写HiFi-GAN论文的代码阅读过程中,我发现仅仅通过文字来描述网络结构,不够详细…

ORB-SLAM2学习笔记4之KITTI开源数据集运行ORB-SLAM2生成轨迹并用evo工具评估轨迹

文章目录 0 引言1 KITTI数据集1.1 下载数据1.2 真值轨迹格式转换 2 单目ORB-SLAM22.1 运行ORB-SLAM22.2 evo评估轨迹(tum格式)2.2.1 载入和对比轨迹2.2.2 计算绝对轨迹误差 3 双目ORB-SLAM23.1 运行ORB-SLAM23.2 evo评估轨迹(kitti格式)3.2.1 载入和对比轨迹3.2.2 计算绝对轨迹…

Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透」

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 前言 MongoDB是一个基于分布式文件存储的数据库。由 C 语言编写,旨在为 WEB 应用提供可扩展的高…

升级dubbo3方案

dubbo3 新特性 1. Dubbo3 应用级服务发现设计 显著降低服务发现过程的资源消耗,包括提升注册中心容量上限、降低消费端地址解析资源占用等,使得 Dubbo3 框架能够支持更大规模集群的服务治理,实现无限水平扩容。适配底层基础设施服务发现模型…

【VScode/VS】解决头文件路径问题

vs 中明明包含了头文件所在路径&#xff0c;但是却找不到头文件 首先&#xff0c;将要添加的压缩包解压&#xff0c;放在任意一个盘里&#xff0c;注意&#xff0c;我们在代码里要添加的头文件路径是 #include <tensorflow/c/c_api.h> 接下来我们要添加在VS中的所有路径…

CHI协议保序之trans order保序

一致性系统中&#xff0c;使用三种保序方式&#xff1b; Transaction ordering □ 除了 comp response 来规定 RN 发出的 requeset 的执行顺序之外&#xff0c;还有一种 order 机制来定义RN<->HN,HN<->SN 之间&#xff0c;命令执行的顺序&#xff1a; □ 该机制通…

C语言编程---案例练习

文章目录 格式化输出 格式化输出 %d&#xff0c;输出整数&#xff1b; %f&#xff0c;输出浮点数&#xff1b;%.3f 保留三位小数&#xff1b; %e&#xff0c;输出双精度浮点数&#xff1b; %c&#xff0c;输出单个字符&#xff1b;将字符格式化%d&#xff0c;即转ASCII码&…

解决JMeter+Grafana+influxdb 配置出现transaction无数据情形

问题描述 JMeterGrafanainfluxdb 配置时&#xff0c;Darren洋发现jmeter中明明已经配置好了事务条件以及接口实例信息&#xff0c;但就是在grafana的头部导航栏中的transaction按钮下来没有相应事务数据信息&#xff0c;经过相关资料查询&#xff0c;Darren洋发现执行以下两个步…

EAP系统如何助力光伏制造行业实现数据采集和控制的自动化?

光伏制造行业作为清洁能源领域的重要组成部分&#xff0c;随着市场的扩大和技术的进步&#xff0c;对生产效率、产品质量和成本控制的要求也越来越高。在这个竞争激烈的行业中&#xff0c;企业需要寻求自动化解决方案来提高生产效率和降低人工成本。 图.光伏面板生产&#xff0…

155.最小栈-C++

题目来源&#xff1a;力扣 题目描述&#xff1a; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部…

数据库redis作业

数据库redis作业 redis9种数据类型的基本操作 redis持久化&#xff1a;分别启用rdb和aof&#xff0c;并查看是否有对应文件生成 作业1&#xff1a;redis9种数据类型的基本操作 1、key操作 key * #查询所有的key keys *exists 参数 #参数&#xff1a;key #判断该key是否存…

网络安全防御篇之安全问题及防火墙简介

网络安全常识及术语 网络的脆弱性 什么样的网络是安全的

20230723将红米redmi note 5 pro由默认的12小时显示修改为24小时显示

20230723将红米redmi note 5 pro由默认的12小时显示修改为24小时显示 2023/7/23 18:51 redmi note 5 pro 24小时 显示 https://jingyan.baidu.com/article/95c9d20dae4c42ad4e7561e7.html 红米手机24小时制怎么设置 播报文章 原创|浏览&#xff1a;169|更新&#xff1a;2021-02…

【网络】应用层——协议定制 | 序列化和反序列化 | 初识http

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 在前面本喵已经带大家见识过了scoket网络通信的样子&#xff0c;现在开始深入学习网络的原理&#xff…

华为OD机试真题 Java 实现【经典屏保】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、补充说明四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、再输入4、再输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&…

【微信小程序】使用iView组件库的ActionSheet组件实现底部选择功能

效果1 效果2 要在微信小程序中使用iView组件库的ActionSheet组件&#xff0c;可以按照以下步骤进行&#xff1a; 首先&#xff0c;确保已经引入了iView组件库的样式和脚本文件。可以在app.wxss中引入iView的样式文件&#xff1a; import "/path/to/iview/weapp/dist/sty…

RocketMQ深入分析

RocketMQ深入分析 1. 消息存储 目前的MQ中间件从存储模型来&#xff0c;分为需要持久化和不需要持久化的两种模型&#xff0c;现在大多数的是支持持久化存储的&#xff0c;比如ActiveMQ、RabbitMQ、Kafka、RocketMQ&#xff0c;ZeroMQ却不需要支持持久化存储而业务系统也大多…

Upgrading kubeadm clusters from v1.27.3 to v1.27.4

文章目录 1. Before you begin2. Notes3. Master3.1 Login into the first node and upgrade the kubeadm tool only3.2 Verify the upgrade plan3.3 Drain the control plane node3.4 kubeadm upgrade3.5 Uncordon the control plane node3.6 Upgrade kubelet and kubectl3.7 …