| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 235 | | |
+------------------+----------+--------------+------------------+ 记下file及position的值,后面做从服务器操作的时候需要用. (六)配置从服务器 mysql> change master to master_host='192.168.8.101', master_user='rep1', master_password='mysql', master_log_file='mysql-bin.000003', master_log_pos=235; 正确执行后再执行: mysql> start slave; 就启用了复制功能.这里我们运行一下 mysql> show slave status\G 来检查一下,一个正常的输出结果应该如下面的形式:
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.8.101 Master_User: rep1 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 235 Relay_Log_File: -relay-bin.000009 Relay_Log_Pos: 235 Relay_Master_Log_File: mysql-bin.000003 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: 235 Relay_Log_Space: 235 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 1 row in set (0.00 sec) |
请注意:slave_IO进程及slave_SQL进程都必须正常运行,在状态输出重表现为: Slave_IO_Running: Yes 及Slave_SQL_Running: Yes 否则都是不正确的状态(如一个值Yes,另外一个是NO则不行).
(七)主数据库有数据的情况:
1、数据库锁表操作,不让数据再进行写入动作。mysql> FLUSH TABLES WITH READ LOCK;
2、察看主数据库的状态 mysql> show master status; 照第(五)步记录输出值。
3、把主服务器数据文件复制到从服务器,最好先用tar处理一下。
4、取消主数据库锁定 mysql> UNLOCK TABLES;
5、从服务器的操作。跟前面的步骤一样(略过)
mysql代理安装配置
一、安装mysql-proxy.需要按下列顺序安装其所依赖的包: (一)安装LUA tar zxvf lua-5.1.tar.gz cd lua-5.1 用vi修改Makefile,使"INSTALL_TOP=/usr/local/lua",这样做的目的是为了是lua的所有文件都安装在目录/usr/local/lua/ make posix make install (二)安装 libevent tar zxvf libevent-1.1a.tar.gz cd libevent-1.1a ./configure --prefix=/usr/local/libevent make make install (三)安装check tar zxvf check-0.8.4.tar.gz cd check-0.8.4 ./configure make make install (四)设置安装mysql-proxy所需的环境变量.把下面的内容追加到/etc/profile中 export LUA_CFLAGS="-I/usr/local/lua/include" LUA_LIBS="-L/usr/local/lua/lib -llua -ldl" LDFLAGS="-L/usr/local/libevent/lib -lm" export CPPFLAGS="-I/usr/local/libevent/include" export CFLAGS="-I/usr/local/libevent/include" 然后执行 source /etc/profile (安装完mysql-proxy不再需要这些变量,可以删除之) (五)安装mysql(只安装mysql客户端即可) tar zxvf mysql-5.0.45.tar.gz cd mysql-5.0.45 ./configure --prefix=/usr/local/mysql --without-server make make install (六)安装mysql-proxy tar zxvf mysql-proxy-
二、主要的命令行选项 --help-all显示所有的帮助选项 --admin-address=host:port 管理主机及端口,默认是4041 --proxy-address=host:port 代理服务器的监听地址及端口,默认4040 --proxy-read-only-address=host:port 只读连接时,代理服务器的监听地址及端口。默认4042 --proxy-backend-addresses=host:port连接真实服务器的地址及监听端口,默认是3306,这是mysql代理最重要的选项,多个主机之间用空格隔开。使用rr算法。 --proxy-lua-script=file 指定lua脚本的名称
三、 使用方法 2个mysql服务器的情形
mysql-proxy \ --proxy-backend-addresses=mysql_ip1:3306 \ --proxy-backend-addresses=mysql_ip2:3306 |
mysql-proxy --proxy-backend-addresses=<master_ip> :3306\ --proxy-read-only-address=<slave_ip1>:3306 \ --proxy-read-only-address=<slave_ip2>:3306 |
四、mysql-proxy启动
编写脚本/usr/local/bin/mysql-proxy.sh其内容如下:
#!/bin/bash
LUA_PATH="/usr/local/mysql-proxy/share/mysql-proxy/?.lua" mysql-proxy --proxy-read-only-backend-addresses=192.168.1.38:3306 --proxy-
backend-addresses=192.168.1.33:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua >> /var/log/mysql-proxy.log &
chmod 755 /usr/local/bin/mysql-proxy.sh; 执行命令/usr/local/bin/mysql-proxy.sh启动服务
配置验证 1、主从复制测试:在主数据库服务器上创建库和表,然后再插入记录,再登陆到从服务器,看是否也建立相一致的库和表以及记录。
mysql> create database first_db;
Query OK, 1 row affected (0.01 sec)
在主数据库服务器创建库first_db mysql> create table first_tb(id int(3),name char(10)); Query OK, 0 rows affected (0.00 sec)
在主数据库服务器创建表first_db
mysql> insert into first_tb values (001,'myself'); Query OK, 1 row affected (0.00 sec)在主数据服务器的表first_db中插入记录 |
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| first_db |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)数据库自动生成了 mysql> use first_db; Database changedmysql> show tables; +--------------------+ | Tables_in_first_db | +--------------------+ | first_tb | +--------------------+ 1 row in set (0.00 sec)表也自动生成了 mysql> select * from first_tb; +------+--------+ | id | name | +------+--------+ | 1 | myself | +------+--------+ 1 row in set (0.00 sec)记录也按照我们的意愿存在了 |
本文出自 “sery” 博客,谢绝转载!