当前位置: 首页 > 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;请求了我们…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...