Maison  >  Article  >  base de données  >  mysql5.1.73配置主从服务器_MySQL

mysql5.1.73配置主从服务器_MySQL

WBOY
WBOYoriginal
2016-06-01 12:59:451037parcourir

一、安装MySQL

这里就详解,请度娘。

二、配置MySQL主服务器(10.241.226.110)

 

mysql -uroot -p #进入MySQL控制台
create database testdb; #建立数据库testdb

#授权用户mysqlcopy只能从10.241.226.111这个IP访问主服务器10.241.226.110上面的数据库,并且只具有数据库备份的权限
grant replication slave on *.* to 'mysqlcopy'@'10.241.226.111' identified by '123456' with grant option;

 

三、把MySQL主服务器10.241.226.110中的数据库testdb导入到MySQL从服务器10.241.226.111中

1、导出数据库testdb

mysqldump -u root -p testdb> /home/testdbbak.sql

备注:在导出之前可以先进入MySQL控制台执行下面命令

flush tables with read lock; #数据库只读锁定命令,防止导出数据库的时候有数据写入

unlock tables; #解除锁定

2、导入数据库到MySQL从服务器

mysql -u root -p #进入从服务器MySQL控制台

create databasetestdb; #创建数据库

usetestdb #进入数据库

source /home/testdbbak.sql #导入备份文件到数据库

mysql -u mysqlcopy-h10.241.226.110 -p #测试在从服务器上登录到主服务器

 

四、配置MySQL主服务器的my.cnf文件

1、vim /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容

log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=testdb   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql    #不同步mysql系统数据库
server_id = 1   #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
socket =/var/lib/mysql/mysql.sock
character-set-server=utf8

2、service mysqld restart #重启MySQL
3、mysql -u root -p #进入mysql控制台
4、show master status; 查看主服务器,出现以下类似信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 120 | testdb | mysql |
+------------------+----------+--------------+------------------+

注意:这里记住File的值:mysql-bin.000001和Position的值:120,后面会用到。

五、配置MySQL从服务器的my.cnf文件

1、vi /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容

 

log_bin=mysql-bin   #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
replicate-do-db=testdb
replicate-ignore-db=mysql
read_only=1
server_id = 2    #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8 

 

2、service mysqld restart #重启MySQL

3、mysql -u root -p #进入MySQL控制台

4、slave stop; #停止slave同步进程

5、change master to master_host='10.241.226.110',master_user='mysqlcopy',master_password='123456',master_log_file='mysql-bin.000001,master_log_pos=120; #执行同步语句

6、slave start; #开启slave同步进程

7、SHOW SLAVE STATUS\G #查看slave同步信息,部分内容如下:

 

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.241.226.111
                  Master_User: mysqlcopy
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 377
               Relay_Log_File: localhost-relay-bin.000003
                Relay_Log_Pos: 540
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: DB_CLOUDCORE
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 377
              Relay_Log_Space: 717
              Until_Condition: None
               Until_Log_File:

 

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

六、测试MySQL主从服务器双机热备是否成功

1、进入MySQL主服务器

mysql -u root -p #进入主服务器MySQL控制台

use testdb; #进入数据库

CREATE TABLE test ( id int not null); #创建test表

2、进入MySQL从服务器

mysql -u root -p #进入MySQL控制台

usetestdb; #进入数据库

show tables;

会看到有一个新建的表test,表示数据库同步成功

 

问题:

1、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

解:由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错

为mysql.sock增加软连接(相当于windows中的快捷方式)。
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn