首先安装 mysql

 

     相对于 RPM 安装,二进制源码安装稍微麻烦了点。但是我们可以在安装脚本中自定义安装的相关配置,而不象 rpm 方式只能安装默认的配置。
首先成为 root 用户   我们这里使用的是 mysql-5.1.45-linux-i686-glibc23.tar.gz

 

[root@bogon ~]# tat zxvf mysql-5.1.45-linux-i686-glibc23.tar.gz –C /usr/local

 

mysql-3.22.21-pc-linux-gnu-i686 的目录被创建出来。为这个目录做个符号链接,并给它一个更友好的名字 mysql
mysql-5.1.45-linux-i686-glibc23

 

建立一个能运行 MySQL 守护程序的用户帐号,并且所有 MySQL 文件都归此帐户拥有。 useradd 命令去添加一个叫 mysql 的帐号还要暂时禁止 login 功能
[root@bogon ~]# groupadd –r mysql
[root@bogon ~]# useradd –g mysql –s /sbin/nologin –M –r mysql

 

MySQL 做准备
首先让我们将 MySQL 目录和文件的拥有权改成 mysql 用户和 root 组:
[root@bogon ~]# cd /usr/local
[root@bogon local]# chown –R mysql:root mysql-5.1.45-linux-i686-glibc23 mysql
然后运行一个小脚本程序,以建立初始化的 MySQL 数据库。请以一个 mysql 用户的身份完成这个任务
# su mysql
$ cd mysql
$ scripts/mysql_install_db
$ exit

 

自动运行 MySQL
MySQL 二进制包里面,有一个叫 myslq.server 的启动脚本程序。把它复制到 /etc/rc.d/init.d 目录里面:
# cd /etc/rc.d/init.d
#cp /usr/local/mysql/support-file/mysql.server mysql

 

# chmod +x mysql  将其属性改为可执行

 

运行 chkconfig MySQL 添加到你系统的启动服务组里面去。
# /sbin/chkconfig --del mysql
# /sbin/chkconfig --add mysql

 

测试 mysql
# /etc/rc.d/init.d/mysql start
正常情况下将会出现一下信息:
Starting mysqld daemon with databases from /var/lib/mysql
# mysql
mysql> show databases;

ok  一切正常

 

从服务器安装的是同样方法安装同一个版本的
建立 jack 账户   并允许能从 137 地址登陆
# mysql> GRANT REPLICATION SLAVE ON *.* TO jack@192.168.0.137 IDENTIFIED BY ‘123456’
赋予从机权限
# vim /etc/my.cnf
添加如下
 server-id = 1  

 log-bin=mysql-bin  

 binlog-do-db=wow  

 binlog-ignore-db=mysql

 #binlog-do-db= 需要备份的数据库名,可写多行  

 #binlog-ignore-db= 不需要备份的数据库名,可写多行

 

从服务器:
# vim /etc/my.cnf
添加:
 server-id=2  

 log-bin=mysql-bin  

 master-host=172.16.0.10  

 master-user=allen  

 master-password=1234  

 master-port=3306  

 replicate-do-db=wow  

 master-connect-retry=60
 # replicate-do-db=wow   需要备份的数据库名  

 # replicate-ignore-db=mysql  忽略的数据库(如果需要的话)  

 # master-connect-retry=60  如果从服务器发现主服务器断掉,重新连接的时间差()

 

 

下面需要把主节点上的数据库 mytest 手动备份导入到从节点中
主节点 # mysqldump uroot -p mytest > mysql.sql
拷贝 mysql.sqldao 从节点
从节点 # mysql > create database mytest
shell# mysqldump -uroot -p mytest < mysql.sql
重启主节点
重启从节点

 

 

 

下面需要验证配置是否正确
主服务器:
mysql> show master status\G;
出现:
表示配置正确

 

从服务器:
登陆 mysql
mysql> show slave status\G;
以上是“ yes ”即可

 

 

 

 

 

 

 

++ 修改配置需要注意
需要删除从服务器上的 /var/lib/mysql/master.info 文件 , 否则 my.cnf 如何修改都不生效。

主节点的相关命令
show master status
show slave hosts
show logs
show binlog events
purge logs to ‘log_name’
purge logs before ‘date’
reset master(
老版本 flush master)
set sql_log_bin=

从节点的相关命令
slave start
slave stop
slave stop IO_THREAD //
master 段的日志写到本地
slave start IO_THREAD
slave stop SQL_THREAD //
把写到本地的日志应用于数据库
slave start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //
动态改变 master 信息
PURGE MASTER [before 'date']
删除 master 端已同步过的日志

产生的mysql-bin.00000x 文件可以删除
reset master; #http://bbs.chinaunix.net/thread-745343-1-1.html`

同步出错时,如果被同步语句确定在从库上可以被忽略
slave stop;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
slave start;
#
show slave status \G 中的 Seconds_Behind_Master: 0 为正常