这几天在搞MySQL数据同步,配置很复杂,我用了两台机器来测试,都是我本地的机器,分别是
主服务器 192.168.0.118
来自服务器 192.168.0.187
1.首先在主从服务器上创建数据库和表作为测试
表 ``(
`id` int(11) NOT NULL ,
`name` (20) 设置 utf8 NOT NULL,
`sex` (2) 设置 utf8 NOT NULL,
键 (`id`)
)= =;
注意主从服务器的数据库结构必须一致,否则会出错。
2、在服务器的mysql目录下找到my.ini文件,打开文件并在文件末尾添加如下代码
#主机的f(或者my.ini)应该配置为:
-id=1 #表示主服务器
log-bin=e:// #同步事件的日志文件
log-bin-index =e://-log-bin.index
log-error =e://-error.log #错误日志
-do-db= #提供数据同步服务的数据库(这里是刚刚创建的测试数据库)
3、主服务器配置完成后,打开从服务器的f(或者my.ini)文件,在文件末尾添加如下代码
-id=2 #表示从服务器
-host=192.168.0.118 #主机A的地址
-user= #主机A向B提供的用户,此用户需要包含数据库权限
-= #访问密码
-port=3306 #Port,主机的MYSQL端口
--retry=60 #重试间隔60秒
-do-db= #同步数据库
4、完成后在主、从服务器的cmd中打开MySQL控制台,授权从服务器的用户与主服务器同步资源
主服务器执行GRANT FILE ON *.*@'192.168.0.187' BY ''
从服务器执行 GRANT FILE ON *.* @'192.168.0.118' BY ''
5.重启主从服务器mysql
从服务器 mysql>slave start;
主服务器执行mysql>show;结果如下
mysql>显示;
+---------+----------+--------------+------------------+
| 文件 | | | |
+---------+----------+--------------+------------------+
|.|613|||
+---------+----------+--------------+------------------+
1 行 (0.00 秒)
从服务器
mysql>启动从属;
mysql>显示从属/G;
结果
**************************** 1. 行 ****************************
:
:192.168.0.118
:
:3306
:60
mysql-bin。
:173
-中继箱。
:98
mysql-bin。
: 不
:是的
...
执行结果必须是yes,如果发现:No,那么可能是权限问题。
解决步骤:
mysql>显示;
+------------------+--------------------+----------------+------------------+
| 文件 | | | |
+------------------+-------------------+-----------------+------------------+
| mysql-bin。| 98 | | |
+------------------+-----------------+-----------------+------------------+
mysql>从属停止;
mysql> 到 ='mysql-bin.',=98;
mysql>从属启动;
或者分别打开主、从服务器,找到用户,设置其权限,然后分别重启,然后到从服务器上运行mysql> show slave /G;
发现
: 是的
:是的
这时候你在主服务器上找到的表中插入一条记录,再在从服务器上查看这张表,会发现多出了一条记录,这就意味着成功了!!!
是不是很简单呢?
扫一扫在手机端查看
-
Tags : mysql服务器硬件配置_mysql多台服务器数据同步
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。