评论

收藏

[MySQL] MySQL多实例运行

数据库 数据库 发布于:2021-07-05 09:05 | 阅读数:521 | 评论:0

  MySQL多实例运行
  更新 2010年10月19日
      最近几天研究了一下怎么让mysql实现多实例运行,当然也是有需求才研究的。当然少不了要看许多网上的文章和官方手册。
  一共总结出3种多实例启动的方法:第一种:安装两个msyql,在启动时指明不同的portdefaults-file即可。第二种:使用mysqld_multi,创建一个配置文件然后用mysqld_multi读取配置文件来启动多实例。第三种:使用MySQL实例管理器并创建用户账户,这个方法好像比较好不过也有点复杂。这些方法都可以在官方文档中找到,就不细说了,中文的也很好找。
  下面是我在采用第二种方法时的心得体会。
  
  一、为什么这么做。
  听一个搞.net开发的人说,这么做可以防止mysql线程调度中产生的瓶颈问题。别的原因就不知道了,反正有这个需求。
  二、基本知识。
  每个实例应该在自己的datadir下配置my.cnf文件。
  配置文件的查找顺序如下:
  第一搜,首先读取/etc/my.cnf
  第二搜,$datadir/my.cnf,在data目录下寻找此配置文件,每个实例应该在自己的datadir下配置my.cnf文件。
  第三搜,defaultfile=/path/my.cnf 通常写在命令行上,mysqld_safe defaultfile=/tmp/my.cnf &等执行。
  第四搜,~/my.cnf 当前用户下的配置文件。
  PS:这些都是网上抄来的。
  三、安装mysql
  无外乎源码和rpm等方式嘛,就不多说了。
  四、准备目录。
  这步还是比较重要的。
  如果安装的时候进行了mysql_install_db这个操作的话,会在mysqldatadir下面创建msyqltest两个文件夹,还有几个log文件。例如:
  
   DSC0000.jpg
  多实例同时运行的话需要自行创建另一个datadir。我的环境中是/var/lib/mysql2;把mysql1里面的拷贝过来或者在mysql2目录里面再运行一次mysql_installdb --datadir=path都行。
  做完后要注意目录权限mysql用户要可写。
  五、创建配置文件。
   DSC0001.jpg
  
  原来my.cnf文件中的mysqld段全部注释。
  my_multi.cnf文件名可以随便起,以后在命令中写对了就行了。
  再有就是要注意pid-fileloglog-error这些个文件的存放位置要mysql用户可写。另外需要注意pid文件要事先创建好
  PS:2010年10月19日又做了一下,写在my.cnf里面也是可以的。
  六、启动实例。
  启动前要保证PATH里面包括mysqlbin目录。可以把下面的命令写入/etc/profile
  export PATH=$PATH:/usr/local/webserver/mysql/bin
  启动命令是:#/path/to/mysqld_multi --config-file=/path/to/my_multi.cnf start 1,2    写入/etc/rc.local就可以开机自动启动两个实例了。
  七、验证。
  #netstat -alpn|grep 33
  #mysql -u root -h localhost –S /tmp/mysqld1.sock
  #mysql -u root -h 127.0.0.1 -P 3301
  连上后可以看看datadir是不是对的:mysql> show variables like '%datadir%';

  
关注下面的标签,发现更多相似文章