为了提高数据库读写性能,读写分离的思想被提了出来。数据库被分成主数据库和从数据库,主数据库负责写,从数据库负责读。
拿Mysql来说,Mysql5.7版本自带了主从同步功能。比如需要将Mysql文件夹再多复制一份
mysql_1是主,mysql_2是从。
修改mysql_1的my.ini配置文件。
[mysql] default-character-set=utf8 [mysqld] # 同台主机下多个mysql要修改成不同的端口 port=13306 basedir=D:/Users/dagger/IdeaProjects/software/mysqllist/mysql_1 datadir=D:/Users/dagger/IdeaProjects/software/mysqllist/mysql_1/data character-set-server=utf8 default-storage-engine=InnoDB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 修改server_id,确保每个mysql实例的server_id不一样 server_id=13306 log-bin=mysql-bin # 要同步的数据库 binlog-do-db=test_0 binlog-do-db=test_1 # 不要同步的数据库 binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=mysql binlog-ignore-db=sys [client] port=13306 default-character-set=utf8View Code
修改mysql_2的my.ini配置文件
[mysql] default-character-set=utf8 [mysqld] # 记得修改这个端口,避免端口冲突 port=13307 basedir=D:/Users/dagger/IdeaProjects/software/mysqllist/mysql_2 datadir=D:/Users/dagger/IdeaProjects/software/mysqllist/mysql_2/data character-set-server=utf8 default-storage-engine=InnoDB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # server_id也不能重复 server_id=13307 # 二进制日志备份 log-bin=mysql-bin # 要同步的表 replicate_wild_do_table=test_0.% replicate_wild_do_table=test_1.% # 不要同步的表,从节点不同步的数据库 replicate_wild_ignore_table=information_schema.% replicate_wild_ignore_table=performance_schema.% replicate_wild_ignore_table=mysql.% replicate_wild_ignore_table=sys.% [client] port=13307 default-character-set=utf8View Code