初始化多个mysql实例

发布时间:2016-12-9 8:36:40 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"初始化多个mysql实例",主要涉及到初始化多个mysql实例方面的内容,对于初始化多个mysql实例感兴趣的同学可以参考一下。

之前我做了一个是在一台服务器上安装多套mysql软件来构造多实例的。其实还有一种办法就是一套软件多个数据库。这就像在oracle里一套oracle软件,多个instance一样。也可以多套oracle软件,多个oracle_home,每套软件一个Instance。下面讲解one sw muti int.    在之前的源码路径下,有一个/mysql/scripts/mysql_install_db脚本,执行如下   /home/mysql/mysql/mysql/scripts/mysql_install_db  --basedir=/app/slave --datadir=/app/slave/data3 --defaults-file=/etc/my3309.cnf --user=mysql 其配置文件如下所示 [[email protected]:28.39 ~]$ cat /etc/my3309.cnf [client] socket         = /app/slave/mysql3309.sock port            = 3309   [mysqld] port           = 3309 socket         = /app/slave/mysql3309.sock pid-file       = /app/slave/data3/mysql3309.pid skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M     log-bin=mysql-bin   binlog_format=mixed   server-id       = 1     [mysqld_multi] mysqld     = /app/slave/bin/mysqld_safe mysqladmin = /app/slave/bin/mysqladmin   [mysqldump] quick max_allowed_packet = 16M socket          =/app/slave/mysql3309.sock   [mysql] no-auto-rehash   [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M   [mysqlhotcopy] interactive-timeout   然后就可以启动这个实例了。命令如下 /app/slave/bin/mysqld_safe --defaults-file=/etc/my3309.cnf--datadir=/app/slave/data3 & 其中有几点需要注意: 1、      因为要给他制定新的配置文件。要用到参数-defaults-file,如果使用这个参数,则这个参数必须为首选项(就是为第一个参数。终于理解了)。 2、      还要制定—datadir。如果不制定,它就去找默认的datadir,即为/app/slave/data。我之前的错误一直是因为没指定—datadir参数, 3、      还有就是把—datadir参数写到—defaults-file参数前面去了,这样子—defaults-file会无效,这个实例又去找my.cnf默认配置文件去了。   现在用mysqld_multi的方法来启动实例。 1、  创建一个配置文件,可以从mysqld_multi–example来获得,最后如下 [mysqld_multi] mysqld     = /app/slave/bin/mysqld_safe mysqladmin= /app/slave/bin/mysqladmin #user       = multi_admin #password   = my_password   [mysqld2] socket       = /app/slave/mysql3308.sock port        = 3308 pid-file      = /app/slave/data2/mysql3308.pid datadir      = /app/slave/data2 #language   = /app/slave/share/mysql/english user        = mysql   [mysqld3] #mysqld      =/path/to/mysqld_safe #ledir        = /path/to/mysqld-binary/ #mysqladmin = /path/to/mysqladmin socket        =/app/slave/mysql3309.sock port          = 3309 pid-file        =/app/slave/data3/mysql3309.pid datadir        =/app/slave/data3 #language     = /app/slave/share/mysql/swedish user          = mysql   现在就可以用mysqld_multi来管理这几个实例了。可以统一启动和关闭了。 如果各个实例的密码不一致,则不能一起关闭。最好把他们的密码设置为一致。 现在这样的配置可以满足一般的多实例,但是不能满足slave复制。因为slave复制所需的参数比这个多。最少要加上 relay_log   =mysql-relay-bin      Server-id   =2   Mysql客户端连接服务器的方法   1、  mysql  -S/app/slave/mysql.sock –u root –p 2、  mysql  --host=127.0.0.1 --port=3307/3308 –u root –p 不同服务器不同的端口号 3、  mysql  --protocol=TCP  -- port=3307/3308 –u root –p 不同服务器不同的端口号  

上一篇:Ubuntu搭建GitLab
下一篇:ognl使用详解

相关文章

相关评论