当前位置: 首页 > news >正文

centos7 免安装mysql5.7及配置(支持多个mysql)

一) 下载免安装包:

 mysql下载地址: https://dev.mysql.com/downloads/mysql/

下载时,选择以前5.7版本:

image

下载第一个TAR压缩包:

image

二) 定义安装路径并解压安装包

1、假设需要把MySQL放到 /usr/local/qhs/mysql5.7 目录下运行, 则手工创建目录 /usr/local/qhs/mysql5.7, 下文把此目录称为【安装目录】

2、上传压缩包到 【安装目录】 下; 执行 如下命令

 [root@localhost~]# tar -xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

会在目录下解压出 mysql-5.7.35-linux-glibc2.12-x86_64 目录,该目录即为mysql的运行目录,此目录下有 bin 等mysql目录;

三)创建系统mysql组和mysql用户

检查mysql组和用户是否存在,如无则创建

 [root@localhost~]# cat /etc/group | grep mysql [root@localhost~]# cat /etc/passwd | grep mysql

若不存在,则创建如下:

# 创建mysql用户组
[root@localhost~]# groupadd mysql
# 创建一个用户名为mysql的用户,并加入mysql用户组
[root@localhost~]# useradd -g mysql mysql
# 制定password 为mysql
[root@localhost~]# passwd mysql
Changing password for user mysql.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

四)更改【安装目录】所属的组和用户

cd /usr/local/qhs/
# 更改所属的组和用户
[root@localhost local]# chown -R mysql mysql5.7/
[root@localhost local]# chgrp -R mysql mysql5.7/

五)创建mysql的数据目录和日志目录

# 创建数据和日志存储目录(目录可以随意指定,但必须存在,这两个目录在下一步中会使用,这两个目录的所有者必须是mysql用户)
[root@localhost mysql5.7]# cd /usr/local/qhs/mysql5.7/
[root@localhost mysql]# mkdir data
[root@localhost mysql]# mkdir logs
# 修改所有者
[root@localhost mysql]# chown -R mysql:mysql data

六)定义mysql的 my.cnf 文件

此文件是mysql的运行定义文件,需要根据实际情况修改,然后放置到指定目录下,一般情况下,如果不特别说明(比如系统中只有一个MySQL),就放在 /etc 目录下;如果系统需要装多个mysql,那么每个MySQL对应的 my.cnf 文件就需要放在各自配置的目录下:

创建 my.cnf文件

my.cnf内容如下:

[mysqld]
#下面语句的作用主要是当前本机登录不需要密码,可以注释掉
skip-grant-tables
#mysql安装目录,也就是 mysql的 bin 的父目录
basedir=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/
#mysql数据库目录,也就是上面步骤创建的data目录,必须存在
datadir=/usr/local/qhs/mysql5.7/data
#mysql数据库监听端口,可以按需修改,不同mysql开启不同的端口
port = 3307
character_set_server=utf8
max_allowed_packet = 512M
innodb_log_file_size = 2048M
[mysqld_safe]
#错误日志,也就是上面步骤创建的data目录下的一个文件,此文件可以不存在
log-error=/usr/local/qhs/mysql5.7/data/error.log
#pid文件,此配置项有的说不需要,反正我配置上是没有问题的,data目录必须存在
pid-file=/usr/local/qhs/mysql5.7/data/mysqld.pid
#临时目录可以不存在,只要指定就好
tmpdir=/tmp/mysql5.7
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
## 不建议开日志,所有的操作都记录文件太大
# general-log=1
# log-output=FILE
# general-log-file=/data_disk/mysql/logs/mysql.log
slow_query_log=1
long_query_time=3
slow_query_log_file=/data_disk/mysql/logs/slowquery.log
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB 
lower_case_table_names=1
max_allowed_packet=16M

场景一: 系统只有一个MySQL,放在默认目录 /etc/ 下(强烈建议按照场景二配置,因为我是用的场景二,主要是不知道当修改了data目录后,是否需要按照场景二去修改support-files文件里的内容):


# 进入/etc文件夹下
[root@localhost mysql]# cd /etc
# 编辑my.cnf
[root@localhost etc]# vim my.cnf

场景二: 系统有多个MySQL,放在各自配置目录下,例如本例放在 /usr/local/mysql5.7/ mysql-5.7.35-linux-glibc2.12-x86_64/目录下(建议放到my.cnf的basedir 目录下,以免有各种问题):

放在目录下之后,还需要配置如下,进入mysql运行目录的support-files文件夹(与bin同级), 编辑mysql.server文件

#和上面 my.cnf 的配置一样,是mysql的运行目录
basedir=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/
#和上面 my.cnf 的配置一样,是mysql的data目录
datadir=/usr/local/qhs/mysql5.7/data/
#没搞清楚,我是原样使用,反正配置时没有这个文件
lockdir='/var/lock/subsys5.7'
#没搞清楚,我是原样使用,反正配置时没有这个文件
lock_file_path="$lockdir/mysql5.7"
#没搞清楚,我是原样使用,也就是data目录加一个pid文件,此文件运行时生成
mysqld_pid_file_path=/usr/local/mysql5.7/data/mysqld.pid
#!!! (非常重要) 搜索conf后再修改,这个在else语句里面, 这里的值就是当前MySQL的 my.cnf 文件所在位置(非常重要) !!!
conf=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/my.cnf

七) 初始化mysql

[root@localhost mysql] /usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/mysqld  --initialize-insecure  --datadir=/usr/local/qhs/mysql5.7/data/ --basedir=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/ --user=mysql

八)安全模式启动mysql

通过mysqld_safe启动

[root@localhost mysql]# /usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/mysqld_safe --defaults-file=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/my.cnf  --skip-grant-tables --skip-networking &#添加--skip-networking参数,让实例关闭监听端口,自然也就无法建立TCP连接,而只能通过本地socket进行连接。

启动后,通过另外一个SSH命令窗口执行如下步骤

九)修改root密码,授权root远程连接

如下修改后,可通过执行 /usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/mysql -uroot -p 来验证密码

[root@localhost mysql]# /usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64//bin/mysql 
>mysql> flush privileges;
>mysql> update mysql.user set authentication_string=password('Abcd123456') where host='localhost' and user='root';
>mysql> grant all privileges on *.* to 'root'@'%' identified by 'Abcd123456';
>mysql> flush privileges;
>mysql> exit

八) 把mysql启动做成服务

复制该mysql.server文件到/etc/init.d并重命名为mysql5.7(可按自己需要命名)

[root@localhost mysql] cp -i /usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql5.7

九) 启动/停止服务

[root@localhost mysql] service mysql5.7 {start|stop|restart|reload|force-reload|status}
#启动时,如果抛错,可以到error日志中查看。
# 1---比如出现ERROR! The server quit without updating PID file /usr/local/develop/db/mysql5.7/data/mysqld.pid). 就说明进程起不来,而日志中提示
#[ERROR] Could not create unix socket lock file /var/lib/mysql/mysql.sock.lock.
#则需要手工创建文件夹/var/lib/mysql/ 并执行 chown -R mysql:mysql /var/lib/mysql/ 给它赋权;
#还有可能出现自定义的 my.cnf 被忽略的提示,这是因为 my.cnf 的权限不能是777 而应该是644,否则mysql会取默认的 /etc/ 下面的my.cnf

十)重启电脑

十一)启动mysql

把 my.cnf 文件中的 skip-grant-tables 注释掉

 service mysql5.7 start|

十二)阿里云的注意事项

如果是阿里云上安装的mysql,还需要在实例的安全组属性中,添加3306(或对应端口)端口打开规则

点击ECS实例名称,进入ECS详情页面,在页面上可以查看该ECS的各种属性,其中就有一项是 安全组属性(千万不能直接用左边导航菜单的安全组,那个和当前ECS实例没有任何关系,配置了也没用)

FAQ: 启动失败一般是对应的日志文件不存在,或者目录没有权限。
如果服务注册失败,可以通过如下命令直接启动
mysqld --defaults-file=/usr/local/qhs/mysql5.7/mysql-5.7.35-linux-glibc2.12-x86_64/my.cnf --user=root &

若启动时候抛异常: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
则需要建立软连接:ln -s /usr/local/qhs/mysql5.7/mysql.sock /tmp/mysql.sock

最后编辑于:2024-12-14 11:45:34


喜欢的朋友记得点赞、收藏、关注哦!!!

相关文章:

centos7 免安装mysql5.7及配置(支持多个mysql)

一) 下载免安装包: mysql下载地址: https://dev.mysql.com/downloads/mysql/下载时,选择以前5.7版本: image 下载第一个TAR压缩包: image 二) 定义安装路径并解压安装包 1、假设需要把MySQL放到 /usr/local…...

Python的Pandas--Series的创建和实现

1.Series函数的格式: pandas.Series(data,index,dtype,name,copy) data:一组数据(ndarray类型、list、dict等类)或标量值 index:数据索引标签。如果不指定,默认为整数,从0开始 dtype&#x…...

OCR实践-问卷表格统计

前言 书接上文 OCR实践—PaddleOCROCR实践-Table-Transformer 本项目代码已开源 放在 Github上,欢迎参考使用,Star https://github.com/caibucai22/TableAnalysisTool 主要功能说明:对手动拍照的问卷图片进行统计分数(对应分数…...

uniapp中的条件编译

在script中 // #ifdef APP-PLUS console.log("11"); // #endif// #ifdef MP-WEIXIN console.log("22"); // #endif 在template中 <!-- #ifdef APP-PLUS --><view>哈哈哈</view> <!-- #endif --><!-- #ifdef MP-WEIXIN -->…...

Segment Routing Overview

大家觉得有意义和帮助记得及时关注和点赞!!! Segment Routing (SR) 是近年来网络领域的一项新技术&#xff0c;“segment” 在这里 指代网络隔离技术&#xff0c;例如 MPLS。如果快速回顾网络设计在过去几十年的 发展&#xff0c;我们会发现 SR 也许是正在形成的第三代网络设计…...

【K8s】专题十五(6):Kubernetes 网络之 Pod 网络调试

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…...

CMake 构建项目并整理头文件和库文件

本文将介绍如何使用 CMake 构建项目、编译生成库文件&#xff0c;并将头文件和库文件整理到统一的目录中以便在其他项目中使用。 1. 项目结构 假设我们正在构建一个名为 rttr 的开源库&#xff0c;初始的项目结构如下&#xff1a; D:\WorkCode\Demo\rttr-master\|- src\ …...

Boost之log日志使用

不讲理论&#xff0c;直接上在程序中可用代码&#xff1a; 一、引入Boost模块 开发环境&#xff1a;Visual Studio 2017 Boost库版本&#xff1a;1.68.0 安装方式&#xff1a;Nuget 安装命令&#xff1a; #只安装下面几个即可 Install-package boost -version 1.68.0 Install…...

多功能jquery图片预览放大镜插件

xZoom是一款多功能的jquery图片预览放大镜插件。它支持多种图片放大模式&#xff0c;可以和Fancy Box或Magnific Pop-up等插件结合使用&#xff0c;功能非常强大。 在线预览 下载 使用方法 在页面中引入jquery和xzoom.css以及xzoom.js文件。 <link rel"stylesheet&…...

CSS系列(39)-- Shapes详解

前端技术探索系列&#xff1a;CSS Shapes详解 ✨ 致读者&#xff1a;探索形状布局的艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS Shapes&#xff0c;这个强大的形状布局特性。 基础形状 &#x1f680; 圆形与椭圆 /* 基础圆形 */ .circle {widt…...

AI 神经网络在智能家居场景中的应用

在科技持续进步的当下&#xff0c;智能家居领域正经历着深刻变革&#xff0c;AI 神经网络技术的融入成为推动这一变革的关键力量&#xff0c;为家居生活带来了诸多显著变化与提升&#xff0c;本文将几种常见的AI算法应用做了一下总结&#xff0c;希望对物联网从业者有所帮助。 …...

Rocky DEM tutorial7_Conical Dryer_锥形干燥器

tutorial 7_Conical Dryer_锥形干燥器 文章目录 tutorial 7_Conical Dryer_锥形干燥器0. 目的1. 模型介绍2. 模型设置2.1设置physics2.2 导入几何2.3 设置motion2.4 Boundary边界设置2.5 设置材料2.6设置材料间相互作用2.7 创建粒子2.8 设置颗粒进口2.9 求解器设置3. 后处理Enj…...

CSS(二):美化网页元素

目录 字体样式 文本样式 列表样式 背景图片 字体样式 字体相关的 CSS 属性&#xff1a; font-family&#xff1a;设置字体font-size&#xff1a;设置字体大小font-weight&#xff1a;设置字体的粗细&#xff08;如 normal, bold, lighter 等&#xff09;color&#xff1a;…...

平方根无迹卡尔曼滤波(SR-UKF)算法,用于处理三维非线性状态估计问题

本MATLAB 代码实现了平方根无迹卡尔曼滤波&#xff08;SR-UKF&#xff09;算法&#xff0c;用于处理三维非线性状态估计问题 文章目录 运行结果代码概述代码 运行结果 三轴状态曲线对比&#xff1a; 三轴误差曲线对比&#xff1a; 误差统计特性输出&#xff08;命令行截图&…...

【论文笔记】Visual Alignment Pre-training for Sign Language Translation

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Visual Alignment Pre-tra…...

NLP基础知识 - 向量化

NLP基础知识 - 向量化 目录 NLP基础知识 - 向量化 NLP基础知识 - 向量化目录什么是向量化&#xff1f;为什么需要向量化&#xff1f;常见的向量化方法1. 词袋模型&#xff08;Bag of Words, BoW&#xff09;2. TF-IDF&#xff08;词频-逆文档频率&#xff09;3. 词嵌入&#x…...

JAVA学习笔记_MySQL进阶

文章目录 存储引擎InnoDB引擎MyISAM引擎Memory存储引擎的选择 索引索引数据结构Btree(多路平衡查找树)BTreeHash索引为什么InnoDQB存储引擎采用Btree索引结构 索引分类思考题 索引语法索引性能分析慢查询日志show profiesexplain 索引的使用规则最左前缀法则索引失效SQL提示覆盖…...

ffmpeg: stream_loop报错 Error while filtering: Operation not permitted

问题描述 执行ffmpeg命令的时候&#xff0c;报错&#xff1a;Error while filtering: Operation not permitted 我得命令如下 ffmpeg -framerate 25 -y -i /data/workerspace/mtk/work_home/mtk_202406111543-l9CSU91H1f1b3/tmp/%08d.png -stream_loop -1 -i /data/workerspa…...

Vue.use()和Vue.component()

当很多页面用到同一个组件&#xff0c;又不想每次都在局部注册时&#xff0c;可以在main.js 中全局注册 Vue.component()一次只能注册一个组件 import CcInput from /components/cc-input.vue Vue.component(CcInput);Vue.use()一次可以注册多个组件 对于自定义的组件&#…...

javaweb 04 springmvc

0.1 在上一次的课程中&#xff0c;我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。 其实呢&#xff0c;是我们在浏览器发起请求&#xff0c;请求了我们…...

AgentCPM深度研报助手使用技巧:三个参数让报告更专业

AgentCPM深度研报助手使用技巧&#xff1a;三个参数让报告更专业 1. 为什么你的AI研报总像“流水账”&#xff1f;问题可能出在参数上 你用过AI写报告&#xff0c;结果是不是这样&#xff1a;内容看起来都对&#xff0c;但读起来总觉得“差点意思”&#xff1f;结构松散像拼凑…...

Hunyuan-MT-7B性能实测:像素语言传送门在单卡A10上并发10路翻译的延迟与稳定性报告

Hunyuan-MT-7B性能实测&#xff1a;像素语言传送门在单卡A10上并发10路翻译的延迟与稳定性报告 1. 测试背景与目标 像素语言传送门&#xff08;Pixel Language Portal&#xff09;是基于腾讯Hunyuan-MT-7B模型构建的创新翻译工具&#xff0c;其独特的16-bit像素冒险界面设计为…...

有源vs无源晶振怎么选?从接法差异到成本对比的5个实战建议

有源与无源晶振选型指南&#xff1a;5个关键决策维度与实战技巧 在硬件设计领域&#xff0c;时钟信号如同系统的心跳&#xff0c;而晶振的选择直接影响着整个电路的稳定性和可靠性。面对市场上琳琅满目的有源和无源晶振&#xff0c;工程师常常陷入选择困境——是追求有源晶振的…...

流图与地平线图

1. 流图&#xff1a;数据的河流如果把传统的堆叠面积图想象成一块块整齐堆叠的积木&#xff0c;那么流图就像一条蜿蜒流淌的河流&#xff0c;河道的宽窄变化自然流畅&#xff0c;波峰波谷过渡平滑。它特别适合展示多个类别数据随时间的变化趋势&#xff0c;尤其是当你想强调整体…...

量子态可视化太难?用C++ + ImGUI实时渲染Bloch球+概率幅热力图(含跨平台编译脚本)

第一章&#xff1a;量子态可视化太难&#xff1f;用C ImGUI实时渲染Bloch球概率幅热力图&#xff08;含跨平台编译脚本&#xff09;量子计算教学与算法调试中&#xff0c;单量子比特态的几何表示——Bloch球——是理解叠加、相位与测量的核心工具&#xff1b;而复数概率幅的模…...

电路板测试点设计与自动化测试实践

1. 测试点的本质作用在电子制造领域&#xff0c;测试点&#xff08;Test Point&#xff09;是电路板上那些看似多余的小圆点&#xff0c;但它们却是保证产品质量的关键设计。作为一名有十年经验的硬件工程师&#xff0c;我见过太多因为忽视测试点设计而导致量产失败的案例。测试…...

MCP3302/MCP3304 13位差分ADC驱动开发与硬件协同设计指南

1. MCP330X库深度解析&#xff1a;面向嵌入式工程师的13位差分ADC驱动开发指南MCP330X系列Arduino库是专为Microchip MCP3302与MCP3304高精度模数转换器设计的底层驱动框架。该库并非简单封装&#xff0c;而是基于对SPI协议时序、ADC采样原理及嵌入式资源约束的深刻理解所构建的…...

踩下油门的那一刻,P2并联混动系统开始了一场精密的能量博弈。咱们今天不聊枯燥的理论,直接钻进Simulink模型里看看这套系统怎么玩转发动机和电机的“二人转

基于Matlab/simulink的P2并联PHEV插电式混合动力汽车建模控制仿真模型&#xff08;同轴、双轴并联插电混合动力汽车仿真模型&#xff09; ——包括整车HCU控制单元、发动机模型、驱动电机模型、AMT5档自动变速箱模型、驾驶员模型、电池能量管理控制模型等&#xff0c;建模详细清…...

OrCAD Capture CIS DRC矩阵设置实战:如何自定义ERC检查规则

OrCAD Capture CIS DRC矩阵深度定制指南&#xff1a;从基础配置到高阶规则设计 1. 理解DRC矩阵的核心价值与应用场景 在复杂电路设计领域&#xff0c;标准化的设计规则检查(DRC)往往无法满足特殊元件的连接验证需求。OrCAD Capture CIS的ERC矩阵功能正是为解决这一痛点而生——…...

AI辅助开发:让快马智能生成带安全验证的路由器手机登录界面

最近在做一个路由器管理后台的移动端登录页面&#xff0c;需要实现192.168.1.1这个常见路由器地址的手机端登录功能。作为一个前端开发者&#xff0c;我发现用AI辅助开发可以大大提升效率&#xff0c;特别是处理安全验证这类复杂逻辑时。下面分享下我的实践过程。 需求分析 首先…...