1.二、Mysql数据库支持数据库的主从复制功能,使用主数据库进行数据的插入、删除与更新操做,而从数据库则专门用来进行数据查询操做,这样能够将更新操做和 查询操做分担到不一样的数据库上,从而提升了查询效率。
html
3:MySql复制的基本过程:
3.一、Slave 上面的IO线程链接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)以后的日志内容;
3.二、Master 接收到来自 Slave 的 IO 线程的请求后,经过负责复制的 IO线程根据请求信息读取指定日志指定位置以后的日志信息,返回给 Slave 端的 IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 BinaryLog 中的位置;
3.三、Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的RelayLog文件(mysql-relay-lin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到 master-info文件中,以便在下一次读取的时候可以清楚的高速Master“我须要从某个bin-log的哪一个位置开始日后的日志内容,请发给 我”
3.四、Slave 的 SQL 线程检测到 Relay Log 中新增长了内容后,会立刻解析该 Log 文件中的内容成为在 Master端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。这样,实际上就是在 Master 端和 Slave端执行了一样的 Query,因此两端的数据是彻底同样的。 mysql
4.1:主数据库mysql(linux): linux
MySQL-server下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.16-1.el6.i686.rpm MySQL-client下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.16-1.el6.x86_64.rpm
安装过程请点这里http://www.cnblogs.com/sunson/articles/2172086.html(版本虽然不一样,可是基本的步骤仍是同样的) web
从数据库mysql(win7):由于是免安装版,解压以后就可使用了,具体使用后文讲解; sql
windows下载mysql(免安装版):http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-winx64.zip
这里有一点要特别的声明:从数据库版本必定要高于等于主数据库的版本; 数据库
[msqld]
server-id=1 //服务器ID不能重复 log_bin=mysql-bin //须要作主从备份的文件名字,存在于安装目录/var/lib/mysql/mysql-bin.xxxxxx; binlog-do-db=test1 //这是你须要主从数据同步的数据库,能够配多个;
mysqld --install //mysqld服务进行安装; net start mysql //启动mysql服务;
这里面有太多须要注意的了 windows
:1.mysqld服务安装的时候须要用管理员的身份进行安装;在开始栏里填入cmd,先不急着敲回车。看到右键就能看到管理员身份运行; 安全
2.当登录的时候重置密码: 服务器
切记:将现有的服务关掉net stop mysql(管理员身份运行); mysqld --skip-grant-table //以安全模式登录(不用切入管理员身份运行)
安全模式进入以后,可能会很长一段时间停留在那;不用关掉,从新启动一个dos: 网络
mysql -uroot -p //登录命令,紧接着仍是会让你填入密码,你只须要按入回车键就可以登录了。 use mysql; //进入mysql数据库 //更换密码 update user set password = password("新密码") where user = "root"; FLUSH PRIVILEGES; //刷新MySQL的系统权限相关表,不然会出现拒绝访问,还有一种方法,就是从新启动mysql服务器,来使新设置生效。 quit; //退出;
退出以后,你要进入启动管理器看下进程中会有mysqld.exe。将其结束;
以后就是从配置的根本:查看存放mysql目录;会看到my-default.ini;将其copy一份;进行修改:
# The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 [mysql] #设置mysql客户端的字符集 default-character-set = utf8 # The MySQL server [mysqld] server-id=2 //从服务器配置的服务器id;不能与主服务器id相冲突 port = 3306 //服务端口号; replicate-do-db=test1 //同步本地test1数据库 #设置mysql的安装目录 basedir="E:/tools_package/mysql-5.6.16-winx64/" #设置mysql数据库的数据存放目录,必须是data或者\xxx-data datadir="E:/tools_package/mysql-5.6.16-winx64/data/" #设置服务器段的字符集 character_set_server = utf8
mysql -uroot -p //登录mysql change master to master_host='192.168.xxx.xxx', master_user='root', master_password='654321',master_log_pos=0,master_log_file='mysql-bin.000001'; master_host:主数据库的ip; master_port:端口号;(若是默认3306的话不须要指定); mstart_user:登录主服务器mysql用户; master_password:登录主服务器mysql密码; master_log_pos:从主数据库复制文件的第几个位置进行复制; master_log_file:主服务器中的数据库复制文件;
start slave; //显示有ok就说明对了 show slave status\G; //显示从服务器和主服务器相对应的关系;显示slave_IO_Running和Slave_SQL_Running都是yes就说明你的主从配置已经成功了;不然你还得继续努力哦
花了一夜时间写了这么一篇博客。这个时候写博客对如今的我来讲确实有点耗费时间;可是我仍是会继续努力的;但愿对你们有帮助。且大神多多指教;(格式有点乱,后面的写的都有点乱了。。有点疲劳了。睡觉觉;有问题之后再改)