MySQL多实例安装配置是一种在一台服务器上运行多个独立MySQL服务的方法,这允许你为不同的应用程序或项目分配单独的数据库资源,提高系统管理和资源利用率。在本文中,我们将详细介绍在Ubuntu 11.1环境下,使用二进制包MySQL-5.5.19安装配置多实例的过程。
你需要从官方网站www.mysql.com下载MySQL的二进制安装包,例如mysql-5.5.19-linux2.6-x86_64.tar.gz。然后,创建一个名为`mysql`的系统用户和组,以便于管理数据库服务。执行以下命令:
```bash
groupadd mysql
useradd -r -g mysql mysql
```
接下来,选择一个合适的安装目录,比如`/usr/local/mysql`,并解压缩下载的MySQL包到该目录。同时,为每个实例创建单独的数据存储目录,例如`/usr/local/mysql/data1`和`/usr/local/mysql/data2`。
在安装过程中,需要初始化每个实例。使用`mysql_install_db`脚本,并指定基于目录和数据存储位置:
```bash
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data1 --user=mysql
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data2 --user=mysql
```
接下来,复制MySQL配置文件(如`my-medium.cnf`)并重命名,例如为`my1.cnf`和`my2.cnf`。然后,根据每个实例的需求修改配置文件。对于第二个实例,例如`my2.cnf`,你需要更改`port`、`socket`等参数,确保它们与第一个实例不冲突:
```ini
[client]
#password= your_password
port= 3307
socket= /tmp/mysq13307.sock
[mysqld]
port= 3307
socket= /tmp/mysql3307.sock
```
启动每个数据库实例,使用`mysqld_safe`命令,并指定相应的配置文件和数据目录:
```bash
./bin/mysqld_safe --defaults-extra-file=/usr/local/mysql/my1.cnf --datadir=/usr/local/mysql/data1 &
./bin/mysqld_safe --defaults-extra-file=/usr/local/mysql/my2.cnf --datadir=/usr/local/mysql/data2 &
```
现在你可以使用`mysql`客户端连接到每个实例,分别使用对应的端口和套接字:
```bash
mysql –uroot –p –h127.0.0.1 –P3306
mysql –uroot –p –h127.0.0.1 –P3307
```
为了方便日常使用,添加MySQL二进制路径到环境变量中:
```bash
vi ~/.profile
export PATH=$PATH:/usr/local/mysql/bin
```
此外,设置MySQL客户端默认连接的套接字:
```bash
/usr/local/mysql/bin/mysql --socket=/tmp/mysql.sock
/usr/local/mysql/bin/mysql --socket=/tmp/mysql3307.sock
```
为了实现系统启动时自动运行这两个实例,编辑`rc.local`文件:
```bash
cd /etc
vi rc.local
```
在文件末尾添加启动命令:
```bash
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/usr/local/mysql/my1.cnf --datadir=/usr/local/mysql/data1 &
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/usr/local/mysql/my2.cnf --datadir=/usr/local/mysql/data2 &
```
完成上述步骤后,你已经在同一台服务器上成功配置了两个独立的MySQL实例,每个实例都有自己的端口、套接字和数据存储目录,能够独立运行和管理。这样的配置方式有助于资源隔离和优化,特别适合需要多个数据库服务的应用场景。