linux mysql多实例_Linux下mysql的安装与mysql一机多实例

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

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

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

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

#tar -zxf mysql-5.0.18.tar.gz

#cd mysql-5.0.18

3ab7da31b4a137a726019748ec90de3f.png

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

#touch mysql_install

#chmod  777 mysql_install

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

40aa534dc2a86f3bee2b188ece4f0a08.png

#vim INSTALL-SOURCE

8144c4f5d64d09c1dc1a5336d7faee4e.png

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

bc35c268d839dc1edb67d4f45023e1a9.png

我们执行脚本./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来启动实例,如下图:

da81a1c73f59a8a10e080ecce845e4f8.png

出现了错误的原因是:由于你安装mysql的 bin 路径不在默认的搜索path中,导致在启动时无法正确的传送参数给/usr/local/mysql/libexec/mysqld

解决方法:

echo "PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile

重启系统使系统变量生效

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

782bdddac1b8ef7211f4e36358c7a819.png

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

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

71e9da101d7be7208cb531403c0af1a5.png

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

705c6f57442bb5a2504dafab20044440.png

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

549589b7f4d60d7cfc2f748fbc8fcca3.png

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

0c91f009b31ea87859d61ef111127db0.png

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

16a6067c383173a52f947deea6c13411.png

查看当前使用帐号:

dfaae2b9d10f1cb80c6296ae65c90ec1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统下,可以通过多个实例来运行多个MySQL服务器,每个实例可以拥有独立的配置文件、数据目录和日志文件等。这样可以方便地管理多个不同的MySQL实例,提高系统的可靠性和稳定性。下面简单介绍一下在LinuxMySQL实例安装的过程。 1. 安装MySQL 首先需要安装MySQL,可以通过命令行或者图形界面进行安装。以Ubuntu系统为例,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install mysql-server ``` 2. 创建新的MySQL实例目录 在Linux系统下,每个MySQL实例需要有独立的数据目录和日志文件等。可以使用以下命令创建一个新的MySQL实例目录: ``` sudo mkdir /var/lib/mysql2 ``` 3. 复制MySQL配置文件 每个MySQL实例需要有独立的配置文件,可以通过复制默认配置文件来创建新的配置文件。以Ubuntu系统为例,可以使用以下命令复制默认配置文件: ``` sudo cp /etc/mysql/my.cnf /etc/mysql/my2.cnf ``` 4. 修改新的配置文件 修改新的配置文件,使其指向新的数据目录和日志文件等。以Ubuntu系统为例,可以使用以下命令编辑新的配置文件: ``` sudo vi /etc/mysql/my2.cnf ``` 在文件中修改以下内容: ``` [client] port = 3307 socket = /var/run/mysqld/mysqld2.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3307 basedir = /usr datadir = /var/lib/mysql2 tmpdir = /tmp log_error = /var/log/mysql/error2.log ``` 其中,需要修改的内容主要是端口号、数据目录、日志文件等。 5. 初始化新的MySQL实例 使用以下命令初始化新的MySQL实例: ``` sudo mysqld --defaults-file=/etc/mysql/my2.cnf --initialize-insecure --user=mysql ``` 其中,--defaults-file参数指定使用新的配置文件,--initialize-insecure参数表示不设置root密码,--user参数表示启动MySQL进程的用户。 6. 启动新的MySQL实例 使用以下命令启动新的MySQL实例: ``` sudo systemctl start mysql@2.service ``` 其中,2表示新的MySQL实例的编号。 至此,多实例MySQL服务器已经成功安装。可以通过以下命令查看多个MySQL实例的状态: ``` sudo systemctl status mysql@*.service ``` 其中,*表示所有的MySQL实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值