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

前言:最近网上翻阅了大量关于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.mzph.cn/news/9010.shtml

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

相关文章

[SQL系列] 从头开始学PostgreSQL 事务 锁 子查询

[SQL系列] 从头开始学PostgreSQL 索引 修改 视图_Edward.W的博客-CSDN博客https://blog.csdn.net/u013379032/article/details/131818865 事务 事务是一系列逻辑相关的数据库操作,可以作为一个整体进行操作或者回滚。事务通常会包含一个序列的读或者写操作&#xf…

Flink任务优化分享

Flink任务优化分享 1.背景介绍 线上计算任务在某版本上线之后发现每日的任务时长都需要三个多小时才能完成,计算时间超过了预估时间,通过Dolphinscheduler的每日调度任务看,在数据层 dwd 的数据分段任务存在严重的性能问题,每天…

【python】flask查询更新指定的某一条记录

PackageRecord.query.filter_by(idpackage_id).update(json_data) 这段代码的问题在于它不能正确地更新指定的记录。这是因为 update() 方法是 SQLAlchemy 提供的一种批量更新的方法,他通过接收一个字典对象来更新记录。但是在你的代码中,json_data 应该…

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言: AES-128加密的ts视频切片【第一个】,打开有时间限制的! https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…

研发机器配网方案(针对禁止外网电脑的组网方案)

背景:公司是研发型小公司,难免会使用A某D和K某l 等国内免费软件,这两个是业界律师函发得最多的软件。最简单的方案是离网使用,但是离网使用比较麻烦的是要进行文件传输,需要使用U盘拷贝,另外研发型企业一般…

ChatGPT:人机交互新境界,AI智能引领未来

一、ChatGPT:智能交流的新标杆 ChatGPT是基于GPT技术的最新版本,拥有深度学习模型的基因。它通过在大量数据上进行预训练,可以理解和生成自然语言,从而实现了与人类更加自然流畅的对话和交流。 二、ChatGPT的技术背景和工作原理 …

【动态规划上分复盘】这是你熟悉的地下城游戏吗?

欢迎 前言一、动态规划五步曲二、地下城游戏题目分析思路:动态规划具体代码如下 总结 前言 本文讲解关于动态规划思路的两道题目。 一、动态规划五步曲 1.确定状态表示(确定dp数组的含义)2.确定状态转移方程(确定dp的递推公式&a…

Docker:Docker-Compose

Docker:Docker-Compose 一、Docker-Compose 介绍1.1 Docker-Compose 概述二、Docker-Compose 安装2.1 Docker Compose 环境安装2.2 下载2.3 安装三、Docker-Compose 使用3.1 YAML 文件格式及编写注意事项3.2 使用 YAML 时需要注意下面事项3.3 Docker-Compose配置常用字段3.4 D…

Python中pyecharts模块

pyecharts模块 官网:pyecharts官网 pyecharts框架画廊 如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成概况 : Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而…

java面试整理

一、 JVM部分 JVM内存溢出(一)之排查初体验_少负 | 气节的博客-CSDN博客 JVM内存溢出(二)之双亲委派机制_少负 | 气节的博客-CSDN博客 JVM内存溢出(三)之JVM8内存模型_少负 | 气节的博客-CSDN博客 JVM内存溢出(四)之垃圾回收器_少负 | 气节的博客-CSDN博客 JVM内存溢出(五…

解决 excel 文件头问题 sap 不识别

一个任务需要上传 excel 到 sap 使用 openpyxl 生成的不识别 excel 保存后可以识别 经过分析,可能是文件头的问题,因为看起来没有区别。 excel 的文件头为 [Content_Types].xml openpyxl 生成的文件头为 docProps/app.xml 修改为文件头有点过于繁琐…

巅峰极客2023 hellosql

随便输一个payload,有waf 这题只有两个回显,分别是太酷啦和nonono,不显示报错、登录成功等各种信息,目前只能想到用时间盲注。 抓包fuzz,194都是被过滤的 不止这些,手工测出来if、sleep、benchmark、*、rp…

办公室安全升级,如何保障人身财产安全?

视频监控,一种常见的安全措施,以监视和记录办公室内的活动。这项技术为企业提供了许多优势,包括保障员工和财产安全、帮助调查犯罪事件、提高业务管理效率以及应对突发事件。 因此,在合理范围内应用视频监控,将为企业提…

【算法题】2763. 所有子数组中不平衡数字之和

题目&#xff1a; 一个长度为 n 下标从 0 开始的整数数组 arr 的 不平衡数字 定义为&#xff0c;在 sarr sorted(arr) 数组中&#xff0c;满足以下条件的下标数目&#xff1a; 0 < i < n - 1 &#xff0c;和 sarr[i1] - sarr[i] > 1 这里&#xff0c;sorted(arr) 表…

【Python提取Excel表格中符合条件的数据】

使用Python提取Excel表格中符合条件的数据 在数据处理和分析的过程中&#xff0c;我们经常需要从Excel表格中提取特定条件下的数据。Python的pandas库为我们提供了方便的方法来进行数据查询和过滤。 表格内容如下&#xff1a; 序号xy11.52.823.24.732.13.644.31.954.13.2 我…

go压力测试

压力测试 1.1.1. Go怎么写测试用例 开发程序其中很重要的一点是测试&#xff0c;我们如何保证代码的质量&#xff0c;如何保证每个函数是可运行&#xff0c;运行结果是正确的&#xff0c;又如何保证写出来的代码性能是好的&#xff0c;我们知道单元测试的重点在于发现程序设计…

Oralce数据库 手工重新创建控制文件

控制文件对于Oralce数据库的作用&#xff0c;就好像微软操作系统中注册表的作用一样。控制文件是一个比较小的二进制文件&#xff0c;记录着数据库的结构信息。如果数据库控制文件发生孙华的话&#xff0c;则Oracle将无法正常启动。通常情况下&#xff0c;在创建数据库时会自动…

SAP从放弃到入门系列之批次派生-Batch Derivation-Part1

文章目录 一、概述二、系统配置三、主数据3.1 分类主数据3.2 派生规则设置3.2.1发送物料3.2.2 接收物料 四、 测试数据&#xff08;生产订单&#xff09;五、 最后 Batch Derivation翻译成批次派生&#xff08;衍生&#xff09;或批次继承都是问题不大&#xff0c;继承和派生个…

LeetCode104. 二叉树的最大深度

104. 二叉树的最大深度 文章目录 [104. 二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)一、题目二、题解方法一&#xff1a;递归方法二&#xff1a;迭代 一、题目 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶…

机器学习深度学习——线性回归的基本元素

回归用来表示输入输出之间的关系。 用实际例子来解释一下线性回归&#xff1a;根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型&#xff0c;需要收集一个真实的数据集&#xff0c;该数据集包括了房屋的销售价格、面积和房龄。 在机器学习中&#xff0c;这个数…