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

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

MySQL 横向衍生表(Lateral Derived Tables)的实现

《MySQL横向衍生表(LateralDerivedTables)的实现》横向衍生表适用于在需要通过子查询获取中间结果集的场景,相对于普通衍生表,横向衍生表可以引用在其之前出现过的表名,本文就来... 目录一、横向衍生表用法示例1.1 用法示例1.2 使用建议前面我们介绍过mysql中的衍生表(From子句