Mysql双机热备亲测有效

时间:2022-09-14 08:05:37

Mysql双机热备详细步骤

 

一:准备服务器:

1:查看主、从服务器的Mysql版本,可在服务器上输入mysql  -V查看版本。主(Master)服务器的Mysql版本必须跟从(Slave)服务器的版本一样或者更低,即从(Slave)服务器的Mysql版本等于或高于主(Master)服务器的版本。

              Mysql的版本更改请查看Mysql的安装。

二:Msql建立主-从服务器双机热备配置步骤:

              1:获取主服务器、从服务器的IP地址,可在服务器上输入ifconfig获取IP地址。

2:确保主、从服务器上要热备的数据库数据一致。可使用mysqldump –u mysqluser –r databasenane >nane.js 将主服务器上要热备的数据库数据拷贝到当前工作文件夹,然后使用scp –r ./name.sql slaveuser@slaveIP:~ 指令将要热备的数据库数据传送到从服务器上。其中 mysqluser为主服务器的Mysql用户,databasename为要热备的数据库库名,name.js为保存的文件名(必须一.sql结尾).如果要热备多个库,可重复运行此指令将数据全部下来,name.js名不可重复,最好将name命名为数据库名。Slaveuser为从服务器用户名,slaveIP为从服务器IP, ~表示文件将保持在slaveuser用户的家目录下。再把要热备的库数据全部传送到从服务器上后切换到从服务器用slaveuser登陆从服务器并将工作目录切换到家目录下,既: cd ~ 。 然后登陆从服务器Mysql, 在从服务器Mysql中创建名称跟主服务器要热备的库名一样的新库,切换进新库中运行 source name.js将数据保存进新库。

3:在主服务器上创建热备连接账户。切换到主服务器并登录Mysql,然后创建      连接账户,该账户必须授予REPLICATION SLAVE权限。创建指令:

GRANT REPLICATION SLAVE ON *.* TO “username”@”SlaveIP”IDENTIFIED BY “userpassword”; 然后刷新Mysql配置: FLUSH PRIVILEGES; 创建成功后切换到从服务器用远程登录方法登陆主服务器Mysql:mysql –h slaveIP –P port –u username –p userpassword ,其中port为主服务器Mysql的远程端口,如果登陆成功则表示两台服务器可以进行双机热备。

4:配置主服务器的Mysql配置。找到主服务器的/etc/my/cnf配置文件并打开,可输入 vi /etc/my.cnf打开Mysql配置文件, 在打开的文件内的 [mysqld]下添加配置参数:

      server-id=1               //如果此项已经存在不添加

      log-bin=mysql-bin          //如果此项已经存在不添加

       binlog-do-db =databasename //要记录日志的数据库,databasename为要热备的数据库名称,如果要备份多个库,起一行再次添加此句

       binlog-do-db =databasename2       //要备份的第二个数据库, ….

       Binlog-ignore-db =mysql    //此为不需要记录日志的数据库

保存并退出,在此特别注意,配置要写在[mysqld]范围内,否则无效。接下来重新启动数据库服务:service mysql restart。 重启数据库完成后登陆数据库,输入

show master status\G; 查看数据库Master状态,

Mysql双机热备亲测有效

如果没有如上信息则是数据库配置错误,重新打开数据库配置文件查看是否有单词写错。然后重新输入showmaster status\G; 并记下File: 和 Positon后的参数。

5:从服务器的配置。到从服务器的 /etc/my/cnf配置文件并打开,可输入 vi /etc/my.cnf打开Mysql配置文件, 在打开的文件内的 [mysqld]下添加配置参数

Server-id=2               //次ID必须不能跟主服务器的IP相同

log-bin=mysql-bin          //如果此项已经存在不添加

replicate-do-db=databasename       //要记录日志的数据库,databasename为要热备的数据库名称,如果要备份多个库,起一行再次添加此句

replicate-do-db=databasename2  //要备份的第二个数据库,….

replicate-ignore-db=mysql,information_schema,performance_schema

存并退出,在此特别注意,配置要写在[mysqld]范围内,否则无效。接下来重新启动数据库服务:service mysql restart。 重启数据库完成后登陆数据库,(关键步骤) 输入 stop slave; 然后输入

Change master to master_host=”masterIP”,master_port=masterport, master_user=”username”,master__password=”userpassword”, master_log_file=”mysql-bin.000xxx”,master_log_pos=position;

其中masterIP为主服务器IP,masterport为主服务器Mysql端口, username为连接账户,userpassword为连接用户密码,mysql-bin.000xxx

position;为设置主服务器记下File: 和 Positon后的参数。 运行此命令无误后输入start slave 启动从服务, 输入 show slave status\G查看热备状态:

Mysql双机热备亲测有效

查看下面的两项均为yes,即表示成功:

Slave_IO_Running:YES

Slave_SQL_Running:YES

 

三:测试

              在主服务器上热备的数据库内创建个新表,然后去查看从服务器上的热备数据库是否也创建了新表