在CentOS 5.2环境下,有时我们需要在同一台服务器上安装并配置多个MySQL数据库实例,以便服务于不同的应用或项目。这主要涉及到数据库的编译安装、用户管理、配置文件定制以及服务启动等多个步骤。下面我们将详细介绍如何实现这一目标。
我们来看如何编译安装第一个MySQL 5.1.33:
1. 创建MySQL用户组和用户:
```
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql -s /bin/nologin -d /usr/local/mysql
```
2. 解压MySQL源码包:
```
tar -zxvf mysql-5.1.33.tar.gz
```
3. 进入源码目录并配置:
```
cd mysql-5.1.33/
./configure --prefix=/usr/local/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innodb
```
4. 编译和安装:
```
make && make install
```
5. 修改权限和所有权:
```
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
```
6. 配置my.cnf文件:
```
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
```
7. 如果需要在本机运行MySQL服务,执行以下步骤:
a. 初始化数据目录:
```
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
```
b. 启动MySQL服务:
```
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
echo "/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &" >> /etc/rc.local
```
c. 设置root用户的密码:
```
mysqladmin -u root password 1234
mysqladmin -u root -p password 456
```
d. 登录MySQL并创建新的用户:
```
mysql -u root -p
grant all on *.* to 'mysql3306'@'%' identified by 'mysql3306';
```
接下来,我们来配置第二个MySQL实例:
1. 创建新的MySQL用户组和用户:
```
/usr/sbin/useradd -g mysql mysql3307 -s /bin/nologin -d /usr/local/mysql3307
```
2. 重复编译和安装过程,但指定不同的安装路径:
```
./configure --prefix=/usr/local/mysql3307/ ...
make; make install
```
3. 修改新MySQL实例的权限和所有权:
```
chmod +w /usr/local/mysql3307
chown -R mysql3307:mysql /usr/local/mysql3307
chmod -R 777 /usr/local/mysql3307
```
4. 复制第一个MySQL实例的my.cnf文件,并根据需要进行适当修改:
```
cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql3307/my.cnf
```
5. 初始化第二个MySQL实例的数据目录:
```
/usr/local/mysql3307/bin/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307
```
6. 启动第二个MySQL实例:
可以参照第一个MySQL实例的启动方式,但需要确保使用新的配置文件和数据目录。
通过以上步骤,你将在CentOS 5.2系统上成功安装并配置了两个独立的MySQL数据库实例。每个实例都有自己的用户、数据目录和配置文件,能够独立运行并提供服务。请注意,不同MySQL实例之间的数据和用户是隔离的,不能直接互相访问。如果需要在多个实例间共享数据,需要通过网络连接或其他数据迁移方式来实现。同时,确保对每个实例的安全性进行适当的管理,包括限制用户权限、定期备份等。