MYSQL 配置多个端口

来源:互联网 发布:7.07 知乎 编辑:程序博客网 时间:2024/05/21 07:00
详细步骤:
 
1、首先要先把my.cnf配置文件复制一份,开几个端口要复制几份当然要重新命名.
 
如:
 
cp /etc/my.cnf /etc/my3306.cnf
 
cp /etc/my.cnf /etc/my3307.cnf
 
cp /etc/my.cnf /etc/my3308.cnf
 
2、修改my_1.cnf my_2.cnf my_3.cnf文件把默认的3306端口改成 3307 3308 3309.
 
如:
 
[client]
 
port = 3308
 
socket = /tmp/mysql3308.sock
 
default-character-set=UTF
 
[mysqld]
 
port = 3308
 
socket = /tmp/mysql3308.sock
 
basedir=/usr/local/mysql


二。

在同一个mysqld上运行多个端口


0. 当前默认端口3306的配置和启动方式:

/etc/my.ini中的配置:

[client]port        = 3306socket      = /tmp/mysql.sock[mysqld]port        = 3306socket      = /tmp/mysql.sock

通过如下方式启动

cd /usr/local/stow/mysql-5.0.51a-linux-i686-icc-glibc23./bin/mysqld_safe 

1. 配置3307端口mysql

1.1 创建数据库

cd /usr/local/stow/mysql-5.0.51a-linux-i686-icc-glibc23./scripts/mysql_install_db --datadir=/home/zhouguoqiang/tmp/mysql_3307/data

不必理会其中的warning、ERROR信息。此外,如果没有特殊说明,下文均是在当前目录下操作。

1.2 指定3307专有的配置

编辑文件/home/zhouguoqiang/tmp/mysql_3307/my.cnf,添加如下内容:

[mysqld]port= 3307socket= /tmp/mysql_3307.sockdatadir= /home/zhouguoqiang/tmp/mysql_3307/datainnodb_data_home_dir = /home/zhouguoqiang/tmp/mysql_3307/datainnodb_log_group_home_dir = /home/zhouguoqiang/tmp/mysql_3307/data

注意,如果使用了innodb类型的数据库或者/etc/my.cnf里指定了innodb目录相关的参数,这里一定要重新指定成适当位置,否则将会共用3306中的innodb_data_home_dir和innodb_log_group_home_dir,进而导致3307端口的mysql启动失败(没有权限或者文件被锁)。

1.3 启动3307端口的数据库

./bin/mysqld_safe --defaults-extra-file=/home/zhouguoqiang/tmp/mysql_3307/my.cnf

需要注意的是,还有一个参数--defaults-file,二者是有区别的:

--defaults-file
加载指定的配置文件,将会完全覆盖/etc/my.cnf中的配置
--default-extra-file
加载配置文件中指定的项,不会完全覆盖/etc/my.cnf中的配置。如果同时在/etc/my.cnf中配置过,将会优先使用指定配置文件里的。

1.4 访问3307端口的数据库

由于默认是3306端口,因此需要指定端口号

mysql -uroot -P 3307 -h 127.0.0.1

必须指定-h,而且不能使用localhost

1.5 停止3307端口的数据库

 mysqladmin  -uroot -S /tmp/mysql_3307.sock shutdown 

 
datadir=/www/mysqldata8
3、创建数据库指定存放数据的目录
 
mkdir /www/mysqldata3306
 
mkdir /www/mysqldata3307
 
mkdir /www/mysqldata3308
 
4、初始化数据库
 
/usr/local/mysql/scripts/mysql_install_db --datadir=/www/mysqldata3306/ --user=mysql --basedir=/usr/local/mysql
 
/usr/local/mysql/scripts/mysql_install_db --datadir=/www/mysqldata3307/ --user=mysql --basedir=/usr/local/mysql
 
/usr/local/mysql/scripts/mysql_install_db --datadir=/www/mysqldata3308/ --user=mysql --basedir=/usr/local/mysql
 
5、启动mysql,要指定.cnf文件和目录启动
 
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/etc/my3306.cnf --datadir=/www/mysqldata3306 --user=mysql &
 
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/etc/my3307.cnf --datadir=/www/mysqldata3307 --user=mysql &
 
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/etc/my3308.cnf --datadir=/www/mysqldata3308 --user=mysql &
 

 
6、停止MYSQL,对应的sock文件。
 
/usr/local/mysql/bin/mysqladmin -uroot -S /tmp/mysql3308.sock shutdown
 
7、登陆mysql
 
mysql -S /tmp/mysq3308.sock -P 3308
0 0