MySQL同一服务器主从_同一服务器,MYSQL主从配置。

首先下载Tomcat免安装版本,下载地址:http://tomcat.apache.org/download-80.cgi 将下载出来的压缩文件解压到不带有中文的文件夹中。也可以是C盘根目录,我的就是C盘更目录,取名为tomcat 打开环境配置选项,新建系统变量:CATALINA_BASE,CATALINA_HOME,变

在一台服务器上安装2个MYSQL服务,配置MYSQL服务的主从管理。

先安装主数据库,然后拷贝主数据库data文件夹里的mysql,performance_schema文件夹进E:/MySqlData/data1(从数据库的数据文件夹)。

(1)修改my.ini文件(主)。

添加

log-bin=E:/MySqlData/mysql-bin #日志文件的位置

server-id=1 #ID标识

binlog-do-db=databaseName #需要同步的数据库

binlog-ignore-db=mysql  #不需要同步的数据库

binlog-ignore-db=test

expire_logs_days=1  #1天时间自动清理二进制日志

innodb_flush_log_at_trx_commit=1 #每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,0的效率最快,2的折中。但是安全性0的最低,详细看文档。在高版本SQL中用配置文件设置无效。只能用语句SET  GLOBAL  innodb_flush_log_at_trx_commit=0,查看用语句SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit%';

sync-binlog=1 #使binlog在每N次binlog写入后与硬盘 同步

port=3306  #主数据库的端口

basedir="D:/java/javasoft/MYSQL/"  #数据库安装路径

datadir="E:/MySqlData/Data/"  #数据库数据目录

修改my1.ini文件(从),此文件新建一个即可。为从MYSQL服务的配置文件。

[client]

port=3307

[mysql]

default-character-set=utf8

[mysqld]

server-id=2

#注意:master-xxx参数在MYSQL5.17以上版本就已经失去了作用,使用此处会出错。而且在从数据库的master.info权限高于配置文件,所以在低版本下也是第一次初始化时使用。

#master-host=127.0.0.1 #主机名

#master-user=XXX #主数据库用户名(添加数据库用户参考下面内容)

#master-password=XXX #主数据库密码

#master-port=3306 #端口

#master-connect-retry=60 #自动连接延时

#master-log-file='mysql-bin.000001' #读取的二进制文件

#master-log-pos=107  #二进制索引位置

replicate-do-db=databaseName #需要备份的数据库名

replicate-ignore-db=mysql #忽略的数据库

replicate-wild-ignore-table=databaseName.temp%    #告诉从服务器线程不要复制更新指定表的任何语句,\转义

replicate-wild-ignore-table=databaseName.t\_temp\_%

replicate-wild-ignore-table=databaseName.tmp\_%

expire_logs_days=1 #二进制日志自动删除的天数

port=3307 #端口和主的不一样

basedir="D:/java/javasoft/MYSQL/"

datadir="E:/MySqlData/data1/"  #数据目录也不一样

default-character-set=utf8 #其他配置

default-storage-engine=INNODB

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100

query_cache_size=13M

table_cache=256

tmp_table_size=15M

thread_cache_size=8

因为在高版本的时候使用master-xxx等选项不可用,所以用 change to master 方法执行:

CHANGE MASTER TO  MASTER_HOST='127.0.0.1',MASTER_USER='XXX',MASTER_PASSWORD='XXX',MASTER_PORT=3306,MASTER_CONNECT_RETRY=60,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=107

然后执行在slave端执行:start slave 即可。

在master端执行的部分语句:

show master status //可查看master的二进制文件和索引位置

reset master //重置master

在slave端执行的部分语句:

show slave status //可查看slave的连接状态

start slave //启动slave

reset slave //重置slave

stop slave //停止slave

先停止slave-再重置slave-再启动slave,Hadoop集群中,如果服务器之间时间相差过大,会导致Hbase节点启动失败或其他怪问题。官方文档说5分钟的时间差是可以接受的,但是测试发现,相差了1分多钟也会导致失败。所以,有必要搭建一个时间服务器,让每台服务器的时间保持一致。 时间服务器可以搭建在集可以让slave同步master的二进制文件。

更多的主从语句请查看文档!

备注:

添加数据库用户:(更多权限查看文档):

GRANT REPLICATION SLAVE ON *.*   TO '用户名'@'localhost' IDENTIFIED BY '密码'

添加MYSQL服务进windows服务里的dos命令语句:

D:\java\javasoft\MYSQL\bin\mysqld --install serverName  --defaults-file=d:\java\javasoft\MYSQL\my.ini

删除服务的命令:

sc delete serverName

先启动主数据库的服务,再启动从数据库的服务,测试即可。

补充:

查看变量:SHOW VARIABLES LIKE 'sync_binlog'

修改变量:SET GLOBAL sync_binlog=1

数据提交方式:

innodb_flush_log_at_trx_commit=0 更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。

innodb_flush_log_at_trx_commit=1 每次自动提交,安全性高,i/o压力大

innodb_flush_log_at_trx_commit=2(推荐) 每秒自动提交,安全性略有影响,i/o承载强。

日志同步:

Sync-binlog=1 每条自动更新,安全性高,i/o压力大

Sync-binlog=0 (推荐)根据缓存设置情况自动更新,存在丢失数据和同步延迟风险,i/o承载力强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值