Linux环境下如何安装MySQL数据库

1.概述

mysql二进制安装的优点在于可以在任何路径下安装,且具有良好的灵活性,一台服务器也可以安装多个mysql实例。这种方式的不足之处在于它是在编译过后的,因此性能不如从源代码编译的版本,并且无法灵活地定制编译参数。如果用户即不想安装最简单却不够灵活的rpm包,又不想安装复杂费时的源码包,那么已编译好的二进制包将是最好的选择。

2.前期准备

2.1下载mysql二进制安装包

mysql官网:https://dev.mysql.com/downloads/mysql/

Linux环境下如何安装MySQL数据库

因为我下载的是mysql-8.0.23-linux-glibc2.12-x86_64.tar版本,如果有最新版本,则下载最新版本就好了。

2.2导入mysql二进制安装包

通过Xftp工具把安装包传输到linux系统package目录去:

Linux环境下如何安装MySQL数据库

3.mysql部署

解压mysql安装包

--切换到安装目录cd /app--解压xz压缩文件tar -xvf /app/package/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

修改mysql文件夹名称

--把mysql-8.0.23-linux-glibc2.12-x86_64修改为mysql文件夹名称mv /app/mysql-8.0.23-linux-glibc2.12-x86_64 /app/mysql

创建data目录

--在mysql根目录下创建data目录,用于存放数据mkdir /app/mysql/data

创建mysql用户组和mysql用户

--创建mysql用户组和mysql用户groupadd mysqluseradd -g mysql mysql

修改mysql目录权限

--修改mysql目录权限chown -R mysql.mysql /app/mysql/

初始化数据库

--先切换到mysql安装目录cd /app/mysql--初始化数据库bin/mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

Linux环境下如何安装MySQL数据库

配置mysql

--先切换到mysql.support-files目录cd /app/mysql/support-files--在mysql/support-files创建文件my-default.cnftouch my-default.cnf--复制配置文件到/etc/my.cnfcp -a ./my-default.cnf /etc/my.cnf--编辑my.cnfvim /etc/my.cnf

my.cnf输入如下配置内容:

[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306user=mysqlsocket=/tmp/mysql.sockbasedir=/app/mysqldatadir=/app/mysql/data

配置环境变量

--编辑profile文件vim /etc/profile--配置mysql环境变量PATH=/data/mysql/bin:/data/mysql/lib:$PATHexport PATH--使mysql环境变量生效source /etc/profile--看环境变量是否生效echo $PATH

启动mysql

cd /app/mysql/binsystemctl start mysqldorservice mysql start

启动mysql时候可能会遇到如下错误:

Failed to start mysqld.service: Unit not found.

Linux环境下如何安装MySQL数据库

or

Starting MySQL.Logging to ‘/app/mysql/data/dengwu.err’.

… ERROR! The server quit without updating PID file (/app/mysql/data/dengwu.pid).

Linux环境下如何安装MySQL数据库

解决方法如下:

库宝AI 库宝AI

库宝AI是一款功能多样的智能伙伴助手,涵盖AI写作辅助、智能设计、图像生成、智能对话等多个方面。

库宝AI 109 查看详情 库宝AI

--需要安装mariadb-serveryum install -y mariadb-server--然后启动mariadb服务systemctl start mariadb.service--需要的可以添加mariadb服务开机启动systemctl enable mariadb.service

Job for mariadb.service failed because the control process exited with error code. See “systemctl status mariadb.service” and “journalctl -xe” for details.

Linux环境下如何安装MySQL数据库

解决方法如下:

chown -R mysql.mysql /app/mysql/

Starting MySQL… ERROR! The server quit without updating PID file (/app/mysql/data/dengwu.pid).

解决方法如下:

--查看mysql进程ps -ef|grep mysqld--杀死mysql进程kill -9 mysql进程ID

然后重新启动下mysql:

Linux环境下如何安装MySQL数据库

4.修改mysql密码

root用户第一次登录mysql,因为初始密码我们并不知道,一般情况下我们都会重新设置一个新的密码,具体操作如下:

--编辑my.cnfvim /etc/my.cnf

输入如下命令行:

default_authentication_plugin=mysql_native_password

如果忘记了密码再加上:

--跳过密码验证(等设置了密码就去掉)skip-grant-tables

然后登录mysql:

--登录mysqlmysql -u root -p

然后输入命令查看mysql用户组:

--查看mysql用户表select user,host,authentication_string from mysql.user;

Linux环境下如何安装MySQL数据库

看看root用户没有开启远程连接权限,如果没有则执行如下命令:

--修改root用户可以远程连接update mysql.user set host='%' where user='root';

开启远程连接权限后,再来修改root用户密码:

--如果host是localhost则@字符后面是localhost,反之则是%,以host结果为准--修改加密规则alter user 'root'@'%' identified by 'qwer1234' password expire never;--更新一下用户的密码alter user 'root'@'%' identified with mysql_native_password by 'qwer1234';--刷新权限flush privileges;--修改root用户密码alter user 'root'@'%' identified by 'qwer1234';

Linux环境下如何安装MySQL数据库

如果防火墙开启了,则需要加入允许mysql端口访问权限,具体命令如下:

--允许访问firewall-cmd --permanent --zone=public --add-port=3306/tcp--重新加载firewall-cmd --reload--查看是否开通访问权限firewall-cmd --permanent --zone=public --query-port=3306/tcp

然后重新启动mysql:

--重新启动mysqlservice mysql restart;

5.配置mysql阿里云安全组策略

登录阿里云->安全组规则->访问规则->入方向->手动添加如下策略:

Linux环境下如何安装MySQL数据库

使用Navicat连接成功:

Linux环境下如何安装MySQL数据库

以上就是Linux环境下如何安装MySQL数据库的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/264838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 10:13:18
下一篇 2025年11月4日 10:16:29

相关推荐

  • Go语言开发环境GOPATH配置深度解析与安装路径问题解决

    本文深入探讨了go语言开发中go install命令将二进制文件安装到错误路径(如/usr/lib/go)导致权限拒绝的问题。核心在于gopath和gobin环境变量的错误或缺失配置。文章详细阐述了如何正确设置gopath和gobin,确保go工具链能将编译后的可执行文件正确放置到用户指定的目录,从…

    好文分享 2025年12月16日
    000
  • 在 Go 中实现终端屏幕居中显示文本

    本文介绍了如何使用 Go 语言获取终端窗口的尺寸,并在屏幕中心显示指定文本。我们将利用 golang.org/x/crypto/ssh/terminal 包提供的功能来实现这一目标,并提供示例代码和注意事项,帮助开发者构建更友好的终端应用程序。 获取终端尺寸 在 Go 中,要获取终端窗口的宽度和高度…

    2025年12月16日
    000
  • Go语言性能基准测试:标准实践与参数化优化

    本文详细介绍了go语言中进行性能基准测试的标准方法,强调了使用`benchmarkxxx`函数和`go test -bench=.`命令的正确实践。针对重复代码(dry原则)的挑战,文章提出了通过通用基准测试函数结合特定包装器进行参数化测试的有效策略,帮助开发者编写高效且可维护的性能测试代码。 在G…

    2025年12月16日
    000
  • 使用Go Build Constraints实现跨平台代码管理

    go语言通过构建约束(build constraints)机制,优雅地解决了平台特定代码的兼容性问题。开发者可以利用文件注释或文件名约定,为不同操作系统或架构编写独立的实现,从而在编译时自动选择正确的代码,无需传统预处理器,确保跨平台应用的顺畅构建与运行。 在开发跨平台应用程序时,经常会遇到某些功能…

    2025年12月16日
    000
  • 解决Go go get获取Mercurial仓库包时’hg’未找到的错误

    在使用go语言的`go get`命令获取基于mercurial(`hg`)版本控制系统的远程包时,用户可能会遇到“exec: “hg”: executable file not found in %path%”的错误。本文旨在解释此问题的根源,即系统环境中缺少mercuria…

    2025年12月16日
    000
  • 解决Go语言go get命令中“可执行文件未找到”错误的实用指南

    当使用go语言的`go get`命令获取远程包时,若遇到“exec: “xxx”: executable file not found in %path%”错误,通常意味着系统缺少该远程仓库所依赖的版本控制系统(如mercurial、git、svn)的客户端工具,或者这些工具…

    2025年12月16日
    000
  • Go语言中CGO静态链接C库的实践指南

    本文详细阐述了在go语言中使用cgo静态链接c库的方法。核心在于确保go版本为1.1及以上,并正确配置#cgo ldflags指向静态库文件。同时,文章也探讨了如何通过cgo_enabled=0构建完全静态的go可执行文件,以避免运行时对系统动态库的依赖。 引言:CGO与静态链接C库 Go语言通过C…

    2025年12月16日
    000
  • Go语言go get命令:解决“hg”可执行文件未找到错误

    本文旨在解决go语言开发中,使用`go get`命令获取基于mercurial版本控制系统的远程包时,出现的“exec: “hg”: executable file not found in %path%”错误。核心解决方案是安装mercurial客户端,并确保其可执行文件路…

    2025年12月16日
    000
  • 解决Go安装包权限问题:正确配置GOPATH与GOBIN

    本文旨在解决go语言开发中go install命令因权限不足而失败的问题,即go尝试将编译产物安装到goroot而非用户定义的gopath。我们将深入探讨gopath和gobin的正确配置方法,并提供详细的步骤和示例,确保go包能被正确安装到用户可写的路径,从而避免“权限拒绝”错误。 在Go语言开发…

    2025年12月16日
    000
  • Go Cgo项目中使用环境变量灵活配置C/C++库路径

    本文旨在解决go语言c++go编译中,c/c++库路径硬编码导致的环境不兼容问题。通过深入解析cgo编译指示(`// #cgo`)与`cgo_cflags`、`cgo_ldflags`等环境变量的协同工作机制,教程将指导开发者如何利用环境变量动态指定库的包含路径和链接路径,从而实现跨平台、多开发者环…

    2025年12月16日
    000
  • Go Cgo项目中使用环境变量灵活配置外部C库路径

    本文旨在解决Go Cgo项目中外部C库路径硬编码导致的跨环境兼容性问题。我们将深入探讨为何不能直接在`#cgo`指令中使用环境变量,并详细介绍如何通过Go提供的`CGO_CFLAGS`和`CGO_LDFLAGS`等环境变量,在编译时动态指定C库的包含和链接路径,从而实现更灵活、可移植的Go C绑定编…

    2025年12月16日
    000
  • Go Web 服务器无响应问题排查与解决

    本文旨在帮助开发者解决Go Web服务器在本地运行时无法访问的问题。通过分析常见原因,例如监听地址配置错误和潜在的权限、防火墙问题,提供切实可行的解决方案,并强调错误处理的重要性,确保服务器稳定运行。 在开发Go Web应用程序时,有时会遇到服务器启动后无法通过浏览器访问 localhost:808…

    2025年12月16日
    000
  • 解决 Go Get 获取 Mercurial 仓库包时 ’hg’ 未找到的问题

    本文详细阐述了在使用 `go get` 命令获取基于 mercurial (hg) 版本控制系统的 go 语言包时,遇到 ‘exec: “hg”: executable file not found in %path%’ 错误的解决方案。核心在于需要安…

    2025年12月16日
    000
  • Cgo构建中利用环境变量动态管理外部库路径

    本文探讨了在go语言的cgo绑定中,如何解决硬编码外部库路径导致的环境不兼容问题。通过利用cgo_cflags和cgo_ldflags等环境变量,开发者可以动态指定编译和链接所需的库路径,从而避免在cgo指令中固定路径,提高项目的可移植性和跨平台兼容性。文章提供了具体的示例代码和实践指导,帮助开发者…

    2025年12月16日
    000
  • Golang简单博客系统开发实战

    答案:用Go语言可快速搭建一个具备文章发布、查看和管理功能的简单博客系统。通过合理设计项目结构,定义文章模型并使用内存存储,结合HTTP路由与处理器实现CRUD操作,利用模板引擎渲染HTML页面,并提供静态资源访问支持,最终运行服务即可在浏览器中访问基础博客首页,具备完整雏形且易于扩展。 想快速上手…

    2025年12月16日
    000
  • 文件IO操作性能优化实践

    文件IO优化需减少系统调用、提升吞吐量,核心方法包括:使用缓冲流(如Java的BufferedInputStream、C的setvbuf)合并小IO;批量写入与预分配空间以降低磁盘开销;内存映射(mmap/MappedByteBuffer)加速大文件访问;结合异步IO(如io_uring)与多线程并…

    2025年12月16日
    000
  • Golang开发环境安全加固与配置优化方法

    Go开发环境安全需从最小权限、模块校验、静态扫描和构建优化入手。1. 使用非特权账户运行开发工具,减少攻击面;2. 配置可信GOPROXY与GOSUMDB,启用模块完整性验证,定期检查依赖;3. 集成gosec和govulncheck进行安全扫描,结合CI流程提升代码质量;4. 编译时禁用CGO、启…

    2025年12月16日
    000
  • 动态 Kind 在 App Engine 中的索引配置

    本文档介绍了在 Google App Engine (GAE) 中处理动态 Kind 的索引配置问题。由于 GAE 仅允许通过 `index.yaml` 文件和 `appcfg.py` 工具进行索引配置,因此针对 Kind 名称动态生成的情况,提出了一种通过外部服务器动态生成 `index.yaml…

    2025年12月16日
    000
  • Go语言:使用gofmt进行快速语法检查

    本文详细介绍了在go语言开发中,如何不进行完整项目构建的前提下,快速有效地检查源代码的语法错误。我们将重点探讨`gofmt`工具及其关键的`-e`选项,该选项能够报告代码中的所有语法问题。文章将通过命令行示例演示其用法,并解释如何利用命令的退出状态码来判断语法检查结果,帮助开发者实现高效的代码预检和…

    2025年12月16日
    000
  • Go语言跨平台开发:利用构建约束实现条件编译

    在go语言中开发跨平台应用时,经常会遇到需要针对特定操作系统或架构编写不同代码逻辑的情况。go语言通过其强大的构建约束(build constraints)机制,提供了一种优雅且原生的解决方案,无需预处理器即可实现条件编译。本文将详细介绍如何利用文件命名约定和文件注释两种方式来管理平台特定的模块,确…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信