mysql的安装与mysql一机多实例(低版本)

2024-05-06 00:48

本文主要是介绍mysql的安装与mysql一机多实例(低版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mysql的安装与mysql一机多实例(低版本)



在写这篇文档之前,我查了一些资料,不知是简单的原因还是什么其他原因,各个资料都写的相当的模糊,所以,我详细的做了一次,并写成了文档分享给大家

      首先我们用的是Linux redhat 4.6 系统,mysql的版本为mysql-5.0.18.tar.gz,内核版本如下图:

本文理论的东西,不在详加解释,只讲安装完成部署一机多实例。目前具本人了解,一机多实例实现的方法大体有三种,第一mysql多次安装,并安装在不同的目录,第二、就是,用mysqld_sasf来指定不同参数来实现多实例。相比较我们的讲的方法是最简单的。

我们用源码包安装mysql,我的mysql的源码包放在了根目录下的/duyunlong目录中。

#tar -zxf mysql-5.0.18.tar.gz

#cd mysql-5.0.18

解压完之后,进入mysql-5.0.18的目录中,编辑安装脚本,(当然,我个人喜欢脚本安装,不容易出错且简单。),

#touch mysql_install

#chmod  777 mysql_install

在编辑这个安装脚本之前我们来看看mysql中的安装说明文件INSTALL_SOUCE

 

#vim INSTALL-SOURCE

 

我们把上面的这段文字复制到我们的脚本文件中,如下图

我们执行脚本./mysql_install,就可以完成mysql的安装

安装完后,在/etc/有mysql的配置文件my.cnf,我们把它删除,重新建立新空文件my.cnf

#rm -fr /etc/my.cnf

#touch /etc/my.cnf

#vim /etc/my.cnf  编辑下面的配置参数,然后保存退出。

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
[mysqld1]
datadir = /var/lib/mysql1
socket = /var/lib/mysql1/mysql.sock
pid-file = /var/lib/mysql1/mysqld.pid
user = mysql
port = 3307
server-id = 100
log-bin = mysql-bin
log-error = /var/log/mysqld1.log
[mysqld2]
datadir = /var/lib/mysql2
socket = /var/lib/mysql2/mysql.sock
pid-file = /var/lib/mysql2/mysqld.pid
user = test
port = 3308
server-id = 200
log-bin = mysql-bin
log-error = /var/log/mysqld2.log
skip-slave-start

然后我们执行初始化操作
初试化(要保证mysql和test是存在的系统帐户)
/usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql1
/usr/bin/mysql_install_db --user=test --datadir=/var/lib/mysql2
然后我们用mysqld_multi来启动实例,如下图:

出现了错误的原因是:由于你安装mysql的 bin 路径不在默认的搜索path中,导致在启动时无法正确的传送参数给/usr/local/mysql/libexec/mysqld
解决方法:
echo "PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile
 重启系统使系统变量生效

我们可以查看下端口,如下图:

 

可以看到3307,3308端口都在监听状态

这样我们就完成了,mysql的安装于一机多实例的配置,然后我们来启动这些实例,并验证我们起来的实例,不是同一个数据库,如下图:

进入数据库中,切换到test数据库下创建一个表名为jobs,主要是验证,我们启动的实例是不是同一个数据库,并顺便查看test数据库下的所有表,我们看到只有jobs这个表,

 

我们看可以看下数据的使用者,用select user();看下当前的使用者

 

同样的道理我们启动第二个如下图:

 

为了验证启动的实例不是同一个数据库,同上面,切换到test数据库里,创建一表为duyunlong并查看所有表,发现并没有jobs这个表,那么说明我们启动的实例不在同一数据库里:如下图:

查看当前使用帐号:

 

这篇关于mysql的安装与mysql一机多实例(低版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963097

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误