老爷子88 发表于 2018-9-28 13:46:21

linux下同时运行多个mysql

  来自网络,感谢开源,感谢分享
  通过rpm安装mysql,测试版本5.1.48
  1、在linux下通过:
  #useradd multi -g mysql -s /sbin/nologin 添加一个multi用户,并加入到mysql组
  #passwd multi 给multi用户添加密码,这里设置的密码为multi
  2、拷贝数据文件:
  rpm安装mysql默认datadir为/var/lib/mysql (同时启动两个mysql,拷贝2份数据文件)
#cp -R /var/lib/mysql /var/lib/mysql1
#cp -R /var/lib/mysql /var/lib/mysql2
  3、修改权限
#chmod -R 777 /var/lib/mysql1
#chmod -R 777 /var/lib/mysql2


  4、设置my.cnf
  My.cnf 如下:
  # This file should probably be in your home dir (~/.my.cnf)
  # or /etc/my.cnf
  # Version 2.1 by Jani Tolonen
  
  mysqld   = /usr/bin/mysqld_safe
  mysqladmin = /usr/bin/mysqladmin
  user       = multi
  password   = multi
  
  socket   = /tmp/mysql.sock1
  port       = 3306
  pid-file   = /var/lib/mysql1/db.pid1
  datadir    = /var/lib/mysql1
  skip-locking
  log-error = /var/lib/mysql1/db1.err
  user = mysql
  long_query_time = 1
  key_buffer = 256M
  max_allowed_packet = 200M
  table_cache = 512
  sort_buffer_size = 2M
  read_buffer_size = 2M
  myisam_sort_buffer_size = 64M
  thread_cache = 32
  query_cache_size = 32M
  thread_concurrency = 2
  max_connections=1000
  server-id = 1
  character-set-server=utf8
  
  socket   = /tmp/mysql.sock2
  port       = 3307
  pid-file   = /var/lib/mysql2/db.pid2
  datadir    = /var/lib/mysql2
  skip-locking
  log-error = /var/lib/mysql2/db2.err
  user = mysql
  long_query_time = 1
  key_buffer = 256M
  max_allowed_packet = 200M
  table_cache = 512
  sort_buffer_size = 2M
  read_buffer_size = 2M
  myisam_sort_buffer_size = 64M
  thread_cache = 32
  query_cache_size = 32M
  thread_concurrency = 2
  max_connections=1000
  server-id = 2
  character-set-server=utf8
  5、启动mysql
  #mysqld_multi start 1-2
  6、命令行登录mysql
  #mysql -u root -S /tmp/mysql.sock1 -p登录第一个mysql
  #mysql -u root -S /tmp/mysql.sock2 -p 登录第二个mysql
  7、关闭mysql,只有登录每个mysql,给multi用户添加权限后才可以通过mysqld_multi stop 1-2来停止mysql
  1)mysql -u root -S /tmp/mysqld.sock1 -p

  GRANT SHUTDOWN ON *.* TO 'multi'@'localhost'>  2)mysql -u root -S /tmp/mysqld.sock2 -p

  GRANT SHUTDOWN ON *.* TO 'multi'@'localhost'>  停止:
  mysqld_multi stop 1-2(可以通过mysqld_multi stop 1 来停止其中的任意个mysql)

  8、赋予远程登录权限
  登录mysql shell,分别在两个mysql上运行一下语句,允许远程连接mysql
  mysql> UPDATE mysql.user SET Host='%' WHERE Host='localhost' ;
  mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%";
  mysql> FLUSH PRIVILEGES ;

页: [1]
查看完整版本: linux下同时运行多个mysql