linux下启动多个不同版本的mysql服务

张映 发表于 2010-09-14

分类目录: mysql

标签:, , ,

一,我的电脑里面mysql的情况

我电脑里面有二个mysql

1,一个是软件管理工具安装的mysql,如yum,apt get,pacman这样的软件,版本是mysql5.1.50

2,另一个是我手动编译安装的,安装在/usr/local/mysql下面,版本是mysql5.1.26-rc-log

如果能启动多个mysql服务的话,其实有许多好处的,你可以查看一下mysql性能的提升啊;启动了多个mysql服务后,你可以进行数据库进的数据同步,做个mysql集群什么的等等,我的初忠呢是想搞个比较新版本,又不想把以前的那个msyql给搞得不能用了,最好都能用。

二,安装配置要注意的地方

1,安装的目录不要一样,不管你是用管理软件安装的,还是手动安装的,多个mysql不要安装在同一个目录。

2,数据库文件存放的地方,不要相同,也就是my.cnf里面的datadir的的设置不要一样

3,mysql的启动端口不要一样,默认的3306,多个时候可以13306,13307等最好设置成10000以外的。

4,mysql的服务socket不要设置成一样,就是my.cnf里面socket的设置不要一样

5,mysql服务的pid文件不要设置成一样,就是my.cnf里面pid-file的设置不要一样

看一下其中一个my.cnf中mysqld的配置,

[mysqld]
port        = 13306
pid-file     = /var/lib/mysql/mysql.pid
socket        = /tmp/mysql50.sock
datadir        = /var/lib/mysql
tmpdir      = /tmp
basedir     = /usr
skip-locking
#skip-federated
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

另一个my.cnf中mysqld的配置

[mysqld]
pid-file     = /usr/local/mysql/mysql.pid
socket             = /tmp/mysql.sock
port         = 3306
basedir            = /usr/local/mysql
datadir             = /usr/local/mysql/data
tmpdir             = /tmp
language   = /usr/local/mysql/share/mysql/english
long_query_time = 2
log-slow-queries = /usr/local/mysql/mysql-slow.log

skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

安装配置mysql的时候,就要注意上面的几点。

三,启动mysql服务器端

1,启动一个mysql,[root@BlackGhost zhangy]# mysqld_safe --user=root --skip-grant-tables

2,启动第二个mysql,[root@BlackGhost zhangy]# /usr/local/mysql/bin/mysqld_safe --user=root --skip-grant-tables

如果你用mysql.server来启动的话,就要注意一下点,要修改一下里面的内容,修改如下:大约218行左右

then
 print_defaults="$bindir/mysql_print_defaults"
else
 # Try to find basedir in /etc/my.cnf
 conf=/usr/local/mysql/my.cnf    //默认情况下是/etc/my.cnf
 print_defaults=
 if test -r $conf
 then

如果你不修改,你用mysql.server根本无法启动,因为已经有一个mysql服务用了这个配置文件,到时肯定会提示错误的Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

四,启动mysql的客户端

1,启动一个[root@BlackGhost zhangy]# mysql  如果用其他用户,加上-u

2,启动另一个[root@BlackGhost zhangy]# mysql -u root -S /tmp/mysql.sock 特别要注意这个mysql.sock如果不加的话,是启动不了的。二个msyql默认都是用一个.sock,肯定在什么地方可以改的,就根my.cnf差不多,只不过我没有找到而已

[zhangy@BlackGhost ~]$ ps -e|grep mysql
 4638 pts/0    00:00:00 mysqld_safe
 4781 pts/0    00:00:00 mysqld
 4795 pts/0    00:00:00 mysql
 4801 pts/1    00:00:00 mysqld_safe
 5049 pts/1    00:00:00 mysqld
 5054 pts/1    00:00:00 mysql

插个图片

多个mysql服务

多个mysql服务



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/mysql/1015.html

2 条评论

  1. 钱钱 留言

    张哥,安装多个mysql的优缺点,具体价值能以您的观点做个说明吗?谢谢!

  2. 张映 留言

    没什么优点,一般没必要,这么做。没有多台机子的情况下,一台机子装多个mysql,就是方便你练习,mysql分步式。