Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86489
  • 博文数量: 10
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-18 18:17
文章分类

全部博文(10)

文章存档

2011年(2)

2010年(8)

我的朋友

分类: LINUX

2010-08-26 17:32:36

查了下网上的操作方式,虽然都是启动多个mysql socket但是配置略有区别,网上都是用mysqld_multi这个命令在my.cnf下配置,而我们这里的方式是直接在启动mysqld时指定不同的cnf,启动多个Mysqld,可能意思是一样的。



不过以下方法在ubuntu下尝试失败,在redhat9下确成功,暂时没找到问题,估计是 ubuntu启动MYSQL时设置的进程不太一样,我这里总提示写进程文件时冲突。



redhat9的mysql是rmp安装的。



将 /var/lib/mysql/下的mysql目录(包含了mysql的基础数据库表)copy到其他目录,这里是 /home/mysql/mysql3304/mysql下(不要在copy到/var/lib/mysql下,这样mysql在启动时会认为有一个叫 3304的数据库存在)



在mysql3304下建立3304.cnf 内容如下:



[mysqld]


datadir=/home/mysql/mysql3304 #复制出来的数据库目录


port=3304


socket=/tmp/mysql3304.sock #端口号的socket地址



set-variable = max_connections=500



set-variable = key_buffer=256M


set-variable = max_allowed_packet=5M


set-variable = table_cache=500


set-variable = sort_buffer=8M


set-variable = record_buffer=8M


set-variable = myisam_sort_buffer_size=64M


set-variable = thread_cache=8


set-variable = connect_timeout=20


set-variable = thread_concurrency=2



log-bin


server-id=1



将所有文件权限修改为mysql组,否则会出现启动时进程不能写入文件的错误。



启动时输入 safe_mysqld –defaults-file=/home/mysql/mysql3304/3304.cnf



该端口的进程就启动了,在访问该数据库时输入mysql -u root -p -S /tmp/mysql3304.sock,密码同最原始的Mysql数据库密码一样。



如果需要在建立其他端口号的数据库,继续上面的操作,如果copy的是3304这个目录的话,一定要将pid文件删除,包含了当前的进程号,肯定会有冲突。



如果在服务器启动时开启多个mysql,在/etc/rc.local下增加 safe_mysqld–defaults-file=/home/mysql/mysql3304/3304.cnf &

  

阅读(464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~