> 数据库 > MySQL >

linux下启动多个不同版本的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的配置,

查看复制打印?
  1. [mysqld]  
  2. port        = 13306  
  3. pid-file     = /var/lib/mysql/mysql.pid  
  4. socket        = /tmp/mysql50.sock  
  5. datadir        = /var/lib/mysql  
  6. tmpdir      = /tmp  
  7. basedir     = /usr  
  8. skip-locking  
  9. #skip-federated  
  10. key_buffer = 16M  
  11. max_allowed_packet = 1M  
  12. table_cache = 64  
  13. sort_buffer_size = 512K  
  14. net_buffer_length = 16K  
  15. myisam_sort_buffer_size = 8M  

另一个my.cnf中mysqld的配置

  1. [mysqld]  
  2. pid-file     = /usr/local/mysql/mysql.pid  
  3. socket             = /tmp/mysql.sock  
  4. port         = 3306  
  5. basedir            = /usr/local/mysql  
  6. datadir             = /usr/local/mysql/data  
  7. tmpdir             = /tmp  
  8. language   = /usr/local/mysql/share/mysql/english  
  9. long_query_time = 2  
  10. log-slow-queries = /usr/local/mysql/mysql-slow.log  
  11.   
  12. skip-locking  
  13. key_buffer = 16M  
  14. max_allowed_packet = 1M  
  15. table_cache = 64  
  16. sort_buffer_size = 512K  
  17. net_buffer_length = 8K  
  18. read_buffer_size = 256K  
  19. read_rnd_buffer_size = 512K  
  20. 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行左右

查看复制打印?
  1. then  
  2.  print_defaults="$bindir/mysql_print_defaults"  
  3. else  
  4.  # Try to find basedir in /etc/my.cnf  
  5.  conf=/usr/local/mysql/my.cnf    //默认情况下是/etc/my.cnf  
  6.  print_defaults=  
  7.  if test -r $conf  
  8.  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差不多,只不过我没有找到而已

  1. [zhangy@BlackGhost ~]$ ps -e|grep mysql  
  2.  4638 pts/0    00:00:00 mysqld_safe  
  3.  4781 pts/0    00:00:00 mysqld  
  4.  4795 pts/0    00:00:00 mysql  
  5.  4801 pts/1    00:00:00 mysqld_safe  
  6.  5049 pts/1    00:00:00 mysqld  
  7.  5054 pts/1    00:00:00 mysql  

插个图片

多个mysql服务

多个mysql服务


(责任编辑:IT)