您的位置:首页 > 数据库 > MySQL

Windows环境下,安装MySQL多实例,并实现Mysql的主从同步

2017-10-18 16:55 429 查看
一、 在同一台服务器上安装多个MariaDB实现一主多从(这里是伪从),即将多个从数据库同步到同一台服务器上,需要运行多个MySQL实例,如下文档。
1.    官网下载Source源文件
https://downloads.mariadb.org/



2.    解压缩文件,将文件加下的my-medium.ini的名称修改为my.ini,作为文件源。



3.    复制修改后的文件,并重命名



4.    以下以3307为例,修改my.nin配置文件,如下,将原来的端口3306修改为3307



5.    使用命令行添加MySQL实例服务:
首先,切换到3307所在目录的bin目录下,执行以下命令,显示服务安装成功。

到计算机管理下面,可以看到新添加的MySQL3307服务

6.    使用同样的方法,安装MySQL3308的服务。
7.    写个简单的批处理文件mysql.bat,并使用管理员权限执行该文件启动服务,或者手动启动服务。 

net start MySQL3307
net start MySQL3308
8.    命令行登陆MySQL:
切换到mysql的bin目录下,执行命令登陆

测试环境:
数据库版本一致,是官方推荐的方式;slave至少要和master的版本前两个号相同,可高于master;版本不一致,可能出现的问题就是同步的不稳定(兼容性的老问题),因为会在某些函数处理、日志读取、日志的解析重演等上发生异常,导致同步报错而需手工处理。
 
         MariaDB10.2(与mysql类似)
主数据库所在服务器IP:192.168.1.155,
主数据库名称:master_db
主数据库为从数据库开设的账号:backup,密码:123
从数据库所在服务器IP:192.168.1.22
从数据库名称:master_db
注意:在设置前,主从数据库必须一致,才能实现主从同步,也要注意标点符号位英文
 
1.       编辑主数据库的配置文件C:\Program Files\MariaDB 10.2\data\my.ini
在[mysqld]下方添加如下配置,也可以设置binlog-ignore-db来设置不需要同步的数据库
server-id = 155 #一般默认为1,通常以IP的最后一段作为server-id,保证全局的一致性
read-only = 0 #设置主库可读写
#binlog format有三种形式:Statement、Mixed、Row,默认设置为mixed
binlog-format=mixed
binlog_do_db = master_db #需要同步的数据库名称,要同步多个可以写多行,否则默认同步所有的库
log_bin = mysql-bin #二进制名称,确保此文件可读写
 2.      设置主库用于同步数据用的账号,并赋予从库复制的权限

grant replication slave on *.* to backup@192.168.1.222 identified by ‘123’
 
*.*:第一个星号代表库,第二个星号代表数据库里的表,可指定库和表。
backup是主数据库为从数据库访问主库而开设的账号,192.168.1.222 为从数据库的IP地址,‘123‘即是该账号的密码。
 
将修改的内容刷新到数据库配置里
mysql>flush privileges;
 3.       重启mysql服务
net stop mysql
net start mysql
4.       登陆主库,并查看主库的状态


这里的file和position,在从库的配置中需要用到
5.      编辑从数据库的配置文件C:\Program Files\MariaDB 10.2\data\my.ini
将从库的server-id设置成与主库的不同,也可以设置replication-ignore-db 设置不需要同步的数据库
在[mysqld]下方添加如下配置
server-id = 222 //通常以IP的最后一段作为server-id,保证全局的一致性
read-only = 1 #从库只读
replicate-do-db = master_db #本地需要,同步的数据库,需要与主库的名称一致
 6.      重启从数据库服务
net stop mysql
net start mysql
7.      登录从数据库,修改主库信息
change master to master_host=’192.168.1.155’ ,master_port=’3306’, master_user=’backup’,master_password=’123’, master_log_file=’mysql-bin.000001’,master_log_pos=797, master_connect_retry=60,master_delay=100;
master_host为主库IP;
master_user、master_password 为第2步分配的用于从库同步主库数据的用户名和密码;
master_log_file为主库中设置的二进制文件,即第4步中的file;
master_log_position为二进制文件的开始位置,即第4步中的position;
master_connect_retry(若master宕机或者slave连接断开,slave会定期尝试连接到master上,重试的间隔由该选项来控制,默认值是60秒。)
master_delay用于设置复制延迟时间
8.      查看是否配置成功
Start slave; #启动从数据库
Show slave status\G; # 查看从库状态



若slave_IO_state、slave_IO_running、slave_SQL_running状态如上图所示,则表示配置成功1.      主从数据库配置好后,将主库进行一个完全的备份,然后导入从库,保证当前主从一致,那么以后主库的任何修改都会同步到从库上面,保证主从数据库的一致性。2.     配置主从数据库常见错误a、 EROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master_user='USER'  执行change 命令时落了逗号。    b 、若出现Slave_IO_Running、Slave_SQL_Running状态为no,则从stop slave 从新执行一遍change master to master_host=’192.168.1.155’,master_port=’3306’, master_user=’backup’,master_password=’123’,master_log_file=’mysql-bin.000001’,master_log_pos=797;然后再执行start slave就可以了。  //开启从库start slave;//开启从库stop slave;//重置从库reset slave;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: