十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL 主从
在桐庐等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站建设 网站设计制作按需求定制网站,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,成都外贸网站制作,桐庐网站建设费用合理。
第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从
主my.cnf文件 (192.168.1.64)
mysqld模块加入
log-bin=mysql-bin 启动二进制文件
server-id=1 服务器ID
binlog-do-db = 需要复制的库名可以用,分割
如果主数据库存有数据
首先进行锁表操作,不让数据进行写入动作,这么做事为了防止从数据库的原始数据和主数据库的原始数据不一致。
主进入mysql
mysql> flush tables with read lock;
mysqldump –uroot –p123456 testDB > /home/testDB.sql
scp -r /home/testDB.sql root@192.168.1.12:/home
从进入mysql
create database testDB;
mysql -u root "你的数据库名"< “你的sql文件”
做完之后进行unlock tables; 解锁表操作
进入mysql 新建用户并且给从使用 第一步grant replication slave on *.* to 'test'@'192.168.1.12' identified by '1234'; 第二步Grant all on testDB.* to 'test'@'192.168.1.12' identified by '1234' with grant option; show master status; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 106 | testDB | | +------------------+----------+--------------+------------------+
2.从my.cnf文件(192.168.1.12)
mysqld模块加入
log-bin=mysql-bin 启动二进制文件
server-id=2 服务器ID
进入mysql change master to master_host='192.168.1.64',master_user='test',master_password='1234',master_log_file='mysql-bin.000002',master_log_pos=2852; start slave; show slave status\G
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.64 Master_User: test Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 2852 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
要求Slave_IO_Running 和SQL等于yes才行
如果俩个有一个没有yes
检查数据库用户权限和防火墙,
从服务器登陆主测试mysql -h292.168.1.64 -utest -p
在检查serverip
mysql> show variables like 'server_id';
或者slave stop; slave start;
如果还不行就装俩个一样版本的mysql测试一下