运维实战---多种方式在Linux中部署并初始化MySQL

news2026/3/14 23:01:44
运维实战—多种方式在Linux中部署并初始化MySQL前言实验环境介绍一、源码包安装MySQL1、配置MySQL编译安装2、初始化数据库3、配置环境变量二、yum安装MySQL三、rpm安装MySQL前言MySQL是常用的关系型数据库具有以下特点1、开源不需要支付额外的费用即可使用2、支持包括Windows/Linux在内的多个操作系统3、支持多种语言包括中文编码GB 2312、BIG5日文的shift_JIS4、为包括C、C、java、python、PHP在内的多种编程语言提供了API5、支持多种存储引擎例如MyISAM、InnoDB6、使用标准的SQL语言进行操作7、支持多线程充分利用CPU资源8、存储数据量大32位系统表文件最大可支持4GB64位系统表文件最大可支持8TB9、可以定制采用了GPL协议通过修改源码来开发自己的MySQL系统基于以上特点MySQL被广泛用于学习与实际工作中本篇文章介绍在Linux系统中使用多种方式部署并初始化MySQL数据库包括源码安装、rpm安装以及yum安装实验环境介绍1、最小化安装的4核4g Centos7.6 虚拟机2、XShell远程连接工具3、本文章中使用的所有源码包、rpm包的下载地址https://www.mysql.com/downloads/一、源码包安装MySQL相较于其他两种安装源码安装较繁琐但优势在于可以在安装时以及初始化阶段将需要设置的参数一次性设置到位以下是安装过程1、配置MySQL编译安装一些版本的Linux系统中默认存在mariadb组件该组件与安装MySQL是冲突的在安装MySQL之前必须把该组件卸载掉其中 --nodeps可以指定只删除mariadb-libs不删除其依赖关系rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs接下来为MySQL安装依赖这些依赖包在本地yum源中均存在无需配置其他网络yum源。不会配置本地yum源的同学请看CentOS7.6配置本地仓库yum install -y cmake make gcc gcc-c openssl openssl-devel ncurses ncurses-devel bisonbison-devel将依赖包上传至Linux系统中需要安装命令lrzsz该命令可实现Windows拖动文件上传至Linux系统中yum -y install lrzsz之后将在MySQL官网上下载的源码包拖动上传至Linux系统解压源码包到指定路径下解压完成后切换到该路径下tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/ cd /usr/src/mysql-5.7.37/接着进行预编译有别于其他软件MySQL的预编译使用的是cmake命令复制以下代码cmake -DCMAKE_INSTALL_PREFIX/usr/local/mysql -DMYSQL_DATADIR/usr/local/mysql/data -DSYSCONFDIR/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINEON -DWITH_MYISAM_STORAGE_ENGINEON -DDEFAULT_CHARSETutf8 -DDEFAULT_COLLATIONutf8_general_ci -DENABLED_LOCAL_INFILEON -DMYSQL_TCP_PORT3306 -DMYSQL_UNIX_ADDR/usr/local/mysql/tmp/mysql.sock -DWITH_INNODB_MEMCACHEDON -DWITH_BOOSTboost/boost_1_59_0#解释一下上述代码-DCMAKE_INSTALL_PREFIX —指定安装路径-DMYSQL_DATADIR —数据目录即MySQL的数据存放路径-DSYSCONFDIR —配置文件所在路径-DWITH_INNOBASE_STORAGE_ENGINE/-DWITH_MYISAM_STORAGE_ENGINE —启用两种存储引擎-DDEFAULT_CHARSET/-DDEFAULT_COLLATION —指定字符集-DENABLED_LOCAL_INFILE —启用或禁用LOAD DATA LOCAL INFILE 语句-DMYSQL_TCP_PORT —指定服务端口号-DMYSQL_UNIX_ADDR —指定Unix套接字文件的路径-DWITH_INNODB_MEMCACHED —启用或禁用InnoDB 存储引擎对 Memcached 的支持-DWITH_BOOST —指定boost库运行完上述代码如果出现报错检查一下依赖包是否都齐全接着进行编译安装make -j4 make install其中-j选项表示多个线程进行编译这样可以节省时间2、初始化数据库安装完成后运行如下代码groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local/mysql mkdir -p /usr/local/mysql/data mkdir -p /usr/local/mysql/etc mkdir -p /usr/local/mysql/tmp mkdir -p /usr/local/mysql/logs chown -R mysql:mysql /usr/local/mysql vim /usr/local/mysql/etc/my.cnf解释一下上述代码groupadd mysql #为MySQL创建一个组来管理软件的运行useradd -r-g mysql -s /bin/false mysql #为MySQL创建一个用户来管理软件的运行cd /usr/local/mysql #切换到MySQL的安装路径mkdir -p /usr/local/mysql/data #创建安装前指定的数据存放目录mkdir -p /usr/local/mysql/etc #创建安装前指定的配置文件所在目录mkdir -p /usr/local/mysql/tmp #创建临时文件目录mkdir -p /usr/local/mysql/logs #创建日志文件目录vim /usr/local/mysql/etc/my.cnf #创建编辑配置文件默认也存在配置文件但其中内容较少将以下的配置文件粘贴进去[client] #客户端设置 port3306 #服务器监听端口默认为3306 socket/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径默认/tmp/mysql.sock [mysqld] #服务端设置 ## 一般配置选项 port3306 #服务器监听端口默认为3306 basedir/usr/local/mysql #MySQL安装根目录 datadir/usr/local/mysql/data #MySQL数据文件目录 socket/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径默认/tmp/mysql.sock pid-file/usr/local/mysql/tmp/mysql.pid #服务进程pid文件路径 character_set_serverutf8 #默认字符集 default_storage_engineInnoDB #默认InnoDB存储引擎 usermysql ## 连接配置选项 max_connections200 #最大并发连接数 table_open_cache400 #表打开缓存大小默认2000 open_files_limit1000 #打开文件数限制默认5000 max_connect_errors200 #最大连接失败数默认100 back_log100 #请求连接队列数 connect_timeout20 #连接超时时间默认10秒 interactive_timeout1200 #交互式超时时间默认28800秒 wait_timeout600 #非交互超时时间默认28800秒 net_read_timeout30 #读取超时时间默认30秒 net_write_timeout60 #写入超时时间默认60秒 max_allowed_packet8M #最大传输数据字节默认4M thread_cache_size10 #线程缓冲区池大小 thread_stack256K #线程栈大小32位平台196608、64位平台262144 ## 临时内存配置选项 tmpdir/tmp #临时目录路径 tmp_table_size64M #临时表大小默认16M max_heap_table_size64M #最大内存表大小默认16M sort_buffer_size1M #排序缓冲区大小默认256K join_buffer_size1M #join缓冲区大小默认256K ## Innodb配置选项 #innodb_thread_concurrency0 #InnoDB线程并发数 innodb_io_capacity200 #IO容量可用于InnoDB后台任务的每秒I/O操作数IOPS innodb_io_capacity_max400 #IO最大容量InnoDB在这种情况下由后台任务执行的最大IOPS数 innodb_lock_wait_timeout50 #InnoDB引擎锁等待超时时间默认50单位秒 innodb_buffer_pool_size512M #InnoDB缓冲池大小默认128M innodb_buffer_pool_instances4 #InnoDB缓冲池划分区域数 innodb_max_dirty_pages_pct75 #缓冲池最大允许脏页比例默认为75 innodb_flush_methodO_DIRECT #日志刷新方法默认为fdatasync innodb_flush_log_at_trx_commit2 #事务日志刷新方式默认为0 transaction_isolationREPEATABLE-READ #事务隔离级别默认REPEATABLE-READ innodb_data_home_dir/usr/local/mysql/data #表空间文件路径默认保存在MySQL的datadir中 innodb_data_file_pathibdata1:128M:autoextend #表空间文件大小 innodb_file_per_tableON #每表独立表空间 innodb_log_group_home_dir/usr/local/mysql/data #redoLog文件目录默认保存在MySQL的datadir中 innodb_log_files_in_group2 #日志组中的日志文件数默认为2 innodb_log_file_size128M #日志文件大小默认为48MB innodb_log_buffer_size32M #日志缓冲区大小默认为16MB ## MyISAM配置选项 key_buffer_size32M #索引缓冲区大小默认8M read_buffer_size4M #顺序读缓区冲大小默认128K read_rnd_buffer_size4M #随机读缓冲区大小默认256K bulk_insert_buffer_size8M #块插入缓冲区大小默认8M myisam_sort_buffer_size8M #MyISAM排序缓冲大小默认8M #myisam_max_sort_file_size1G #MyISAM排序最大临时大小 myisam_repair_threads1 #MyISAM修复线程 skip-external-locking #跳过外部锁定启用文件锁会影响性能 ## 日志配置选项 log_outputFILE #日志输出目标TABLE输出到表、FILE输出到文件、NONE不输出可选择一个或多个以逗号分隔 log_error/usr/local/mysql/logs/error.log #错误日志存放路径 log_error_verbosity1 #错误日志过滤允许的值为1仅错误2错误和警告3错误、警告和注释默认值为3。 log_timestampsSYSTEM #错误日志消息格式日志中显示时间戳的时区UTC默认值和 SYSTEM本地系统时区 general_logON #开启查询日志一般选择不开启因为查询日志记录很详细会增大磁盘IO开销影响性能 general_log_file/usr/local/mysql/logs/general.log #通用查询日志存放路径 ## 慢查询日志配置选项 slow_query_logON #开启慢查询日志 slow_query_log_file/usr/local/mysql/logs/slowq.log #慢查询日志存放路径 long_query_time2 #慢查询时间默认10单位秒 min_examined_row_limit100 #最小检查行限制检索的行数必须达到此值才可被记为慢查询 log_slow_admin_statementsON #记录慢查询管理语句 log_queries_not_using_indexesON #记录查询未使用索引语句 log_throttle_queries_not_using_indexes5 #记录未使用索引速率限制默认为0不限制 log_slow_slave_statementsON #记录从库复制的慢查询作为从库时生效从库复制中如果有慢查询也将被记录 ## 复制配置选项 server-id1 #MySQL服务唯一标识 log-binmysql-bin #开启二进制日志默认位置是datadir数据目录 log-bin-indexmysql-bin.index #binlog索引文件 binlog_formatMIXED #binlog日志格式分三种STATEMENT、ROW或MIXEDMySQL 5.7.7之前默认为STATEMENT之后默认为ROW binlog_cache_size1M #binlog缓存大小默认32KB max_binlog_cache_size1G #binlog最大缓存大小推荐最大值为4GB max_binlog_size256M #binlog最大文件大小最小值为4096字节最大值和默认值为1GB expire_logs_days7 #binlog过期天数默认为0不自动删除 log_slave_updatesON #binlog级联复制 sync_binlog1 #binlog同步频率0为禁用同步最佳性能但可能丢失事务为1开启同步影响性能但最安全不会丢失任何事务为N操作N次事务后同步1次 relay_logrelay-bin #relaylog文件路径默认位置是datadir数据目录 relay_log_indexrelay-log.index #relaylog索引文件 max_relay_log_size256M #relaylog最大文件大小 relay_log_purgeON #中继日志自动清除默认值为1ON relay_log_recoveryON #中继日志自动恢复 auto_increment_offset1 #自增值偏移量 auto_increment_increment1 #自增值自增量 slave_net_timeout60 #从机连接超时时间 replicate-wild-ignore-tablemysql.% #复制时忽略的数据库表告诉从线程不要复制到与给定通配符模式匹配的表 skip-slave-start #跳过Slave启动Slave复制进程不随MySQL启动而启动 ## 其他配置选项 #memlockON #开启内存锁此选项生效需系统支持mlockall()调用将mysqld进程锁定在内存中防止遇到操作系统导致mysqld交换到磁盘的问题 [mysqldump] #mysqldump数据库备份工具 quick #强制mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中 max_allowed_packet16M #最大传输数据字节使用mysqldump工具备份数据库时某表过大会导致备份失败需要增大该值大于表大小即可 [myisamchk] #使用myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查、修复、优化他们 key_buffer_size32M #索引缓冲区大小 myisam_sort_buffer_size8M #排序缓冲区大小 read_buffer_size4M #读取缓区冲大小 write_buffer_size4M #写入缓冲区大小初始化最后一步按照配置文件的内容来创建数据库bin/mysqld --defaults-file/usr/local/mysql/etc/my.cnf --initialize --usermysql3、配置环境变量为MySQL数据库配置环境变量echo export MYSQL_HOME/usr/local/mysql /etc/profile #软件的路径 echo export PATH$MYSQL_HOME/bin:$PATH /etc/profile #命令的路径 source /etc/profile #重新加载系统环境变量配置文件复制配置文件到init.d目录使系统能够使使用systemctl命令管理MySQLcp /usr/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysql cd /etc/init.d/ chmod x mysql systemctl daemon-reload systemctl start mysql chkconfig mysql on systemctl status mysql设置软链接,把MySQL的命令都放在默认的命令里面使得可以在系统的任何地方使用MySQL的命令ln -s /usr/local/mysql/bin/* /usr/local/bin/自MySQL5.7版本起MySQL初始有默认密码存放在日志文件当中cat /usr/local/mysql/logs/error.log将冒号之后的内容复制mysql -uroot -p粘贴回车进入之后的第一条命令只能修改密码其他命令均无效set passwordpassword(123456);语法 set passwordpassword(‘新密码’);至此源码包安装MySQL完成可以开始使用数据库了二、yum安装MySQLyum安装和rpm安装较简单安装lrzsz命令使文件能上传到Linux中yum -y install lrzsz将在MySQL官网上下载的适合自己系统版本的yum源上传安装yum源rpm -ivh mysql84-community-release-el7-1.noarch.rpm查看可用的rpm包yum list | grep mysql安装mysql-community-servr即可会自动解决依赖关系yum -y install mysql-community-server开启数据库服务systemctl start mysqld systemctl enable mysqld systemctl status mysqld查看mysql默认密码cat /var/log/mysqld.log | grep password进入MySQLmysql -uroot -p修改密码ALTER USER rootlocalhost IDENTIFIED BY NewPassword!123; FLUSH PRIVILEGES;至此yum安装完成可以开始使用三、rpm安装MySQL同样上传rpm包yum -y install lrzsz由于rpm包的互相依赖关系必须按照如下顺序安装rpm -e mariadb-libs --nodeps rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm下载完成之后启动systemctl start mysqld systemctl enable mysqld systemctl status mysqldcat /var/log/mysqld.log | grep password mysql -uroot -prpm安装方式默认密码策略为8位大小写、数字、符号set passwordpassword(Aa12345);至此安装完成本篇文章到处结束

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…