当前位置:首页>科技>php与mysql搭建网站php手把手教你做网站
发布时间:2026-07-21阅读(1)
1、本地安装多个数据库
前边有过介绍这里不再重复,安装完成以后可能会遇到安装以后不能启动的问题。
解决办法:

图1 mysql安装多版本 不能启动
我使用了一个mysql5.7,还有2个mysql8进行测试。
2、环形主从
A->B->C->D->A
也就是每个服务器即是主数据库,又是从数据库,形成环状,首尾相接。
优点:可以方便更换主机,当A主数据库出了问题,可以把1号从数据库直接换为主数据库;
缺点:当其中一个从数据库出了问题,后边的链条就断开了,不能做到同步;
3、发散式主从
A->B,A->C,A->D
只有一个主数据库(A),其他的数据库(B、C、D)都是A的从数据库。
4、主从配置
1)主数据库配置(A)my.ini
[mysqld]server-id=1 log-bin=D:\mysql2\log\mysql-bin
说明:
如果是双向同步,A即是主也是从数据库,如下配置
[mysqld]server-id=1log-bin=D:\mysql2\log\mysql-bin replicate-wild-do-table=master.np_web_copy#上下2个是有空行的,测试,没有空行的时候同步失败了,#根据自己需要来写,如果同步失败 又不提示错误,可以把2个加上空行试试replicate-wild-do-table=master.np_web_tags#replicate_wild_ignore_table= 忽视的表
说明:
在测试同步的时候开始replicate-wild-do-table是直接没有空白行写的,但是不提示错误,也不同步数据,后来加了空白行就可以同步了。
2)从数据库(B)配置my.ini
和上边主数据库配置是一样的,更改下server-id,log-bin就可以了。
server-id=3log-bin=D:\mysql-8.0.27-winx64\log\master-binreplicate-wild-do-table=master.np_web_copyreplicate-wild-do-table=master.np_web_tags
说明:
如果只是作为从库,log-bin不需要配置;
5、登陆主数据库,创建用户用于主从同步
1)登陆mysql
进入数据库安装目录bin文件夹,地址栏输入cmd
msyql -u root -p -P 3308
由于是本地安装多个数据库,肯定会涉及到使用不同端口
说明:root是用户名,p 后边是密码, 大写的P后边是端口
2)创建用户(主从同步)
mysql8以前的版本
grant replication slave on *.* to slave@127.0.0.1 identified by 123456;
mysql8
1、CREATE USER slave@127.0.0.1 IDENTIFIED WITH mysql_native_password BY 123456;2、grant replication slave on *.* to slave@127.0.0.1;
flush privileges;
说明:
6、cmd查看主数据库状态
1)锁表,防止在配置的时候日志发生改变,先锁起来,配置完成从数据库以后再解锁
flush tables with read lock;
2)查看主数据库状态
show master status;

图2 master状态
7、登陆从数据库
1)如果以前有过配置,需要先停止同步。
stop slave;
2)设置输入以下代码
CHANGE MASTER TO MASTER_HOST=127.0.0.1,MASTER_PORT=3308,MASTER_USER=slave,MASTER_PASSWORD=123456,MASTER_LOG_FILE=slave-bin.000008,MASTER_LOG_POS=156;
说明:
3)启动同步
start slave;
4)查看状态
show slave status \G#如果只是show slave status;显示会很乱,使用上边的指令显示的会更加清晰一些;

图3 主从同步配置成功
出现图3显示说明配置成功
5)解锁主数据库
unlock tables;
问题1:Slave_IO_Running为no
查看change master to后边的参数是否正确;
问题2:Slave_SQL_Running: No
开始配置显示yes ,但是操作数据库以后显示为No,这是因为对从数据库进行了写操作;
同步过程中可能出现的问题:
以上2、3其实也不算是错误,对程序的执行没有影响,可以忽略跳过。
打开从数据库mysql.ini添加指令:
slave-skip-errors=22,1032
注意:如果数据库只是从数据库,不要对该数据库进行写操作,否则会出现Slave_SQL_Running: No为no的情况;
8、双向同步,数据库即做主库也做从库
需要重复以上步骤:
不必管已经设置好的主从,把B服务器作为主库,A服务器作为从库,重新设置一下主从就可以了。
9、查看日志
当同步失败的时候,查看从库的状态,
show slave status \G
得到错误信息

图4 查看状态得到错误信息
根据错误提示,去查看对应的日志文件,
使用mysqlbinlog查看日志,进入bin目录
mysqlbinlog --stop-position=23277 ../log/slave-bin.000009 | mysql -u root -p -P 3308
总结:
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图