实验1 配置MySQL主从同步

系统版本:              windows7x64

虚拟机:                  centos 6.5x64

ip规划:                   主192.168.0.29 从192.168.0.42

ssh连接工具:         ssh secure shell client

vpn工具:                ssl vpn-plus client

实验内容: 1. 为虚拟机安装MySQL数据库

2. 配置MySQL数据库,使本机的mysql客户端可以连接主服务器的MySQL数据库。

3. 为两个虚拟机上的MySQL数据库做主从配置

4. 测试

实验步骤:

第一步 虚拟机安装MySQL数据库

1. 打开vpn连接器,打开ssh连接器,连接主服务器192.168.0.24

2. 下载安装MySQL:

[[email protected] ~]# yum install mysql mysql-server

3. 设置MySQL 数据 root 账户的密码


[[email protected] ~]# mysql_secure_installation

Enter current password for root  按回车

Set root password? [Y/n]         输入y

New password:                    输入1

Remove anonymous users? [Y/n]    输入y

Disallow root login remotely? [Y/n] 输入n

Remove test database and access to it? [Y/n] 输入n

Reload privilege tables now? [Y/n] 输入y

第二步 远程连接MySQL

1. 重启MySQL:/etc/init.d/mysqld restart

2. 授权远程连接:


[[email protected] ~]#mysql –uroot –p1

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘   IDENTIFIED BY ‘1‘ WITH GRANT OPTION

mysql> FLUSH PRIVILEGES

3. 查看授权效果# mysql>use mysql;


mysql> select Host,User,Password from user;

+-----------------------+------+-------------------------------------------+

| Host                    | User | Password                                  |

+-----------------------+------+-------------------------------------------+

| localhost               | root | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

| localhost.localdomain | root |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

| 127.0.0.1               | root | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

|   %                     | root |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

+-----------------------+------+-------------------------------------------+

4 rows in set (0.00 sec)

mysql> exit

Bye

4. 修改centos防火墙策略,打开3306端口。

(修改文件的方法是键入’a’,即可上下移动光标到需要修改的位置,修改完了之后按’Esc’:q!忽略修改,’Esc’:wq保存修改)


[[email protected] ~]# service iptables stop

iptables: Setting chains to policy ACCEPT: filter          [    OK  ]

iptables: Flushing firewall rules:                         [    OK  ]

iptables: Unloading modules:                               [  OK  ]

[[email protected]calhost ~]# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A   INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j   ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

~

~

~

~

~

~

~

"/etc/sysconfig/iptables" 14L, 522C written

5.从本机登录mysql:打开UME SQL Manager,新建数据库连接。

6. 运行结果

第三步 配置主服务器

1. 修改配置文件


[[email protected] ~]# vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

log-bin=mysql-bin

server-id=111      

binlog-do-db=test   同步test数据库的内容

# Disabling symbolic-links is recommended to prevent   assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

~

~

~

~

~

~

"/etc/my.cnf" 12L, 283C written

2. 重启MySQL

3. 主服务器上授权一个同步用的id


mysql>   GRANT   REPLICATION SLAVE ON *.* to ‘mysync‘@‘%‘ identified by ‘1‘;

Query OK,   0 rows affected (0.00 sec)

4. 查看配置效果


mysql> use mysql

Reading table information for completion of table and   column names

You can turn off this feature to get a quicker startup   with -A

Database changed

mysql> select Host,User,Password from user;

+-----------------------+--------+-------------------------------------------+

| Host                    | User   | Password                                  |

+-----------------------+--------+-------------------------------------------+

| localhost               | root   |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

| localhost.localdomain | root   |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

| 127.0.0.1               | root   | *E6CC90B878B948C35E92B003C792C46C58C4AF40   |

| %                       | root   |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

|   %                     | mysync |   *E6CC90B878B948C35E92B003C792C46C58C4AF40 |

+-----------------------+--------+-------------------------------------------+

5 rows in set (0.00 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+

| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |        245 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

目前日志偏移量为245

第四步 配置从服务器

1. 修改配置文件


[[email protected] ~]# vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

log-bin=mysql-bin   开启二进制日志

server-id=116   为mysql指定一个id

master-host=192.168.0.24   主服务器ip

master-user=mysync   同步账号

master-password=1   同步密码

master-port=3306   主服务器的端口

replicate-do-db=test   要同步的数据库

expire_logs_days=10   过期时间

# Disabling symbolic-links is recommended to prevent assorted   security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

~

~

~

~

~

"/etc/my.cnf" 18L, 283C written

2. 重启MySQL/etc/init.d/mysqld restart

3. 修改与主服务器连接和通讯的参数


mysql> change master to   master_host=‘192.168.0.24‘,master_user=‘mysync‘,master_password=‘1‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=245;

Query OK, 0 rows affected (0.00 sec)

4. 开启同步


mysql> slave start;

Query OK, 0 rows affected (0.00 sec)

5. 查看slave状态


mysql> show slave status \G;

*************************** 1. row   ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.0.24

Master_User: mysync

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000002

我也奇怪这个2号日志文件是怎么出现的

Read_Master_Log_Pos:   258

Relay_Log_File: mysqld-relay-bin.000003

Relay_Log_Pos: 403

Relay_Master_Log_File: mysql-bin.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

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: 258

Relay_Log_Space: 933

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

ERROR:

No query specified

第五步 测试主从

1. 通过win7 EMS mysql Manager客户端为test数据库建立goods表

2. 打开从服务器ssh,查看test数据库


mysql> use test;

Reading table information for completion of table and column   names

You can turn off this feature to get a quicker startup with   -A

Database changed

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| goods          |

+----------------+

1 row in set (0.00 sec)

3. 以上结果表明192.168.0.24和192.168.0.32之间已经实现主从同步了。

事实上主从同步是将主从都远程连接到客户端,所有操作都直接在客户端上完成。

实验中遇到的问题:

1.配置主从前,在主服务器中输入了数据,再配置主从,所以在配置的时候从服务器里没有那些数据,报错。-------在从服务器的配置文件vi /etc/my.cnf 中忽略该报错。

2.配置主从时,误删了从服务器的文件,报错

3.配置主从时,误删了从服务器数据库(比如在客户端中断开从服务器的连接时,误删了数据库)

不管怎样,就是先将主从服务器中多余的文件删除(或者将所有的删除),然后在主从同步时,把遇到的报错在从服务器配置文件vi /etc/my.cnf 中忽略。

在客户端远程连接时需要注意以下几点:

1.尽量不要在主从配置完成之前像数据库中添加数据,以免造成主从配置的失败(如:主从配置完成后,从服务器中此时没有主服务器里的文件,就会报错)

2.在主服务器中配置的时候,从服务器里没有显示出任何数据,这个时候请关闭从数据库对从服务器的连接,再重新连接从服务器。(这种情况一般发生在主服务器增加了table的时候,如果只是在table中做修改,不需要这样。)

关于客户端的使用:

添加table后要点compile

在table中添加数据后要点refresh

(这两者都在General目录下,位于左侧数据库和右侧具体信息之间)


mysql> create table table1(s_no integer,s_name char(50),s_sex   char(50),s_major char(50));

Query OK, 0 rows affected   (0.01 sec)

mysql> drop table table1;

Query OK, 0 rows affected   (0.00 sec)

mysql> create table   table1(s_no integer,s_name char(50),s_sex char(50),s_major char(50));

Query OK, 0 rows affected   (0.00 sec)

mysql> insert into table1 values(1,‘Rose‘,‘female‘,‘Electronic   Commerce‘);

Query OK, 1 row affected   (0.00 sec)

mysql> select * from table1;

+------+--------+--------+---------------------+

| s_no | s_name | s_sex  | s_major             |

+------+--------+--------+---------------------+

|    1 | Rose     | female | Electronic Commerce |

+------+--------+--------+---------------------+

1 row in set (0.00 sec)

mysql>

时间: 2024-10-08 22:15:06

实验1 配置MySQL主从同步的相关文章

使用amoeba配置mysql主从同步读写分离

实验环境:需要三台手工编译安装的mysql,一台主,两台从主: 192.168.88.100从1: 192.168.88.103从2: 192.168.88.104前段服务器: 192.168.88.101 -----在主服务器192.168.88.100上做---------------配置NTP服务器---------- //在主服务器上搭ntp服务,提供时间同步 yum install -y ntp vi /etc/ntp.conf restrict 192.168.88.0 mask 2

centos 6.5配置mysql主从同步过程

在centos 6.5上设置了mysql主从功能,记录一下. 测试环境搭建的,希望对大家有帮助. 服务器1(主)IP:192.168.1.201系统版本:centos 6.5mysql版本:mysql 5.5 服务器2(从)IP:192.168.1.202系统版本:centos 6.5mysql版本:mysql 5.5 这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法.在开始设定之前,最好能确保主库和从库一致. 1.主库和从库创建同步用户 mysql> grant repli

linux配置mysql主从同步

配置梳理 主数据库 开启二进制日志 设置唯一id 获取二进制文件名和位置 创建用于通信的账号 从数据库 设置唯一id 使用分配的账号读取主数据库的二进制日志 准备工作 主数据库:192.168.0.201 从数据库:192.168.0.202 主数据库配置 进入配置文件 vim /etc/my.cnf 添加两行 log-bin=mysql-bin #开启二进制日志 server-id=201 #设置server-id,唯一值,标识主机 重启服务 service mysql restart 创建账

Mysql主从同步(Mysql A B复制)配置

Mysql主从同步(Mysql A B复制)配置 Mysql主从同步(Mysql AB复制)功能是自动备份数据 vim/var/lib/mysql/auto.cnf  数值不能一样 master主               slave从 192.168.1.1        192.168.1.2 1.主从环境配置:    mysql_5.6版本 servicemysql start         ping通         service iptablesstop         sete

部署mysql主从同步

部署mysql主从同步一.什么是mysql主从同步主:正在被客户端访问的数据库服务器,被称作主库服务器.从:自动同步主库上的数据的数据库服务器,被称作从库服务器. 二.配置mysql主从同步2.1 拓扑图数据库服务器 192.168.4.51 做主库数据库服务器 192.168.4.52 做从库 2.2 环境准备主从同步未配置之前,要保证从库上要有主库上的数据.禁用selinux ]# setenforce 0 关闭防火墙服务]# systemctl stop firewalld物理连接正常 ]

mysql 主从同步实验细解

mysql  主从同步实验细解 一.实验环境 实验环境 192.168.9.108 为master 192.168.9.109 为slave 数据库版本:version              5.1.73 安装方式:采用的yum 安装 源为163的源 系统版本:centos 6.5 1.查看系统版本 [[email protected] ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 二.实验准备 1.安装my

MySQL主从同步实验

MySQL的主从复制方案,是数据的传输.只不过MySQL无需借助第三方工具,而是其自身同步复制的功能,另外一点,MySQL的主从复制并不是磁盘上直接同步,而是逻辑binlog日志同步到本地再应用执行的过程. 一.MySQL主从同步的简要操作过程: 1)从库开启两个线程,分别是IO线程和SQL线程,而主库只开启有一个IO线程 2)在从库上配置连接主库的IP地址.端口号.用同步的用户名.密码.准备更新的二进制文件名字.和准备更新的位置点(pos点,即从那个位置点开始更新) 3)在启动slave-id

Mysql 主从同步配置

工作用MySQL数据库配置了主从同步,但是不知道为啥同步失效了.工作环境不能随便操作,我就在本地上搭建了主从同步的环境. 备份用的工具是Xtrabackup,安装及使用教程见<innobackupex实现MySQL数据库的备份与恢复>. 1.数据库环境 主库(Master):192.168.126.150 从库(Slave):192.168.126.151 数据库版本:5.5.32 2.修改my.cnf文件 1)修改主服务器master: #vi /etc/my.cnf [mysqld] lo

企业生产MySQL主从同步配置

MySQL主从同步配置 前言:测试环境 一台mysql多个实例 主机IP地址 10.0.0.52 Master   3306 Salve    3307 一.主库要开启binlog服务 1. 1修改配置文件3306/my.cnf [[email protected] ~]# egrep "log-bin|server-id" /data/3306/my.cnf   log-bin = /data/3306/mysql-bin server-id = 1 1. 2查看主库有没有开启bin