seacaptain 发表于 2003-09-24 14:17

启动多个mysqld-HOWTO

为达到启动多个mysqld服务,只要启动时使用不同pid-file,datadir,socket,port是完全的可行。
步骤:
1、准备目录
mkdir /mysql1
chown mysql:mysql /mysql1
chmod 755 mysql /mysql1
2、准备新的服务要读取的数据库
cp /path/to/mysql/var /mysql1
3、创建mysqld启动脚本
#start_msyql
#!/bin/sh
rundir="$1"
port="$2"
echo "$rundir"
/www/mysql/bin/safe_mysqld --user=mysql --pid-file="$rundir"/mysql.pid

--datadir="$rundir"/var -O max_connections=500 -O wait_timeout=600 -O key_buffer=32M

--port="$port" --socket="$rundir"/mysql.sock &
说明:
脚本使用方法./start_mysql /mysql1 3307
./start_mysql dir port
dir:指的是mysql数据库及运行时产生的文件所在目录
port:指新的mysqld监听的端口

4、创建mysqld的停止脚本
#stop_mysql
#!/bin/sh
rundir="$1"
echo "$rundir"
/www/mysql/bin/mysqladmin -u root -p -S"$rundir"/mysql.sock shutdown

seacaptain 发表于 2003-09-24 18:58

启动多个mysqld-HOWTO

没人看啊

seacaptain 发表于 2003-09-24 18:58

启动多个mysqld-HOWTO

这个版面太不活跃了

andrewchoi 发表于 2003-09-24 21:20

启动多个mysqld-HOWTO

啟動多過 mysqld 有什麼可處?
比一個 deamon 有性能上有分別嗎?
請指教一下!:D

gunguymadman007 发表于 2003-09-25 09:57

启动多个mysqld-HOWTO

原帖由 "seacaptain"]这个版面太不活跃了
   是啊   发的帖子几乎都是白版清一色   挺郁闷的

jo_fox 发表于 2004-05-14 11:01

启动多个mysqld-HOWTO

#start_msyql
      2 #!/bin/sh
      3 rundir="/home/qd_data"
      4 port="4567"
      5 echo "$rundir"
      6 /usr/bin/safe_mysqld --user=mysql --pid-file="$rundir"/mysql.pid --datad      ir="$rundir" -O max_connections=150 -O wait_timeout=600 -O key_buffer=32      M --port="$port" --socket="$rundir"/mysql.sock &


启动时候出错

040514 11:07:05mysqld started
      2 0405143:07:05Can't start server: Bind on TCP/IP port: Address alread      y in use
      3 0405143:07:05Do you already have another mysqld server running on po      rt: 3306 ?
      4 0405143:07:05Aborting
      5
      6 0405143:07:05/usr/sbin/mysqld: Shutdown Complete
      7
      8 040514 11:07:05mysqld ended


怎么还是使用3306端口阿?

bon 发表于 2005-04-02 00:03

启动多个mysqld-HOWTO

请问楼主这样做有什么好处吗?

kerlion 发表于 2011-07-18 10:54

本帖最后由 kerlion 于 2011-07-18 10:56 编辑

你这个太复杂,还有很多问题,关键的问题是my.cnf怎么读取??!!难道共享吗??

我的解决方案时,每个实例使用一个单独的my.cnf,什么端口,socket,datadir等所有的参数在这个my.cnf文件理设置

这是我的脚本

cat /DB/mysql3201/mysql_start.ksh
MYSQL_CONF=/DB/mysql3201/data/my.cnf
mysqld_safe --defaults-extra-file=$MYSQL_CONF --user=mysql &


cat /DB/mysql3202/mysql_start.ksh
MYSQL_CONF=/DB/mysql3202/data/my.cnf
mysqld_safe --defaults-extra-file=$MYSQL_CONF --user=mysql &


cat /DB/mysql3203/mysql_start.ksh
MYSQL_CONF=/DB/mysql3203/data/my.cnf
mysqld_safe --defaults-extra-file=$MYSQL_CONF --user=mysql &

kerlion 发表于 2011-07-18 10:59

回复 6# jo_fox


我想是使用了共享的/etc/my.cnf

把port, datadir, socket等要先去掉才行, 你所有的实例要使用同样的配置了,哈哈!!

kerlion 发表于 2012-08-20 10:16

本帖最后由 kerlion 于 2012-08-20 10:16 编辑

纠正一下小错误
启动的时候用--defaults-file而不是--defaults-extra-file
区别,自己查文档,这个参数一定是第一个参数,一般情况下也只需要这一个参数,所有的配置都放到my.cnf中去

好处:
可以启动任意多个版本,任意多个实例,互相不干扰,my.cnf配置文件也是互相独立的

页: [1] 2
查看完整版本: 启动多个mysqld-HOWTO