1、配置第一个mysql

A、下载mysql到/usr/local/src目录,我已经下载好mysql

cd /usr/local/src/

使用rz命令将mysql上传到src目录

B、解压:tar -zxvf mysql-5.1.72-linux-x86_64-glibc23.tar.gz

C、把解压完的数据移动到/usr/local/目录下并重全名为mysql

mv mysql-5.1.72-linux-x86_64-glibc23 /usr/local/mysql
D、建立mysql用户 useradd -s /sbin/nologin mysql
E、初始化mysql数据库 cd /usr/local/mysql  mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql  ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

F、卸载自带的mysql数据库 yum remove mysql 

G、拷贝配置文件

 cp support-files/my-large.cnf /etc/my.cnf

拷贝启动角本并修改属性 cp support-files/mysql.server /etc/init.d/mysqld 

chmod 755 /etc/init.d/mysqld 

H、修改启动角本 

 vim /etc/init.d/mysqld

修改basedir 和datadir目录 

basedir=/usr/local/mysql

datadir=/data/mysql

I、把启动脚本加入系统服务项,并设定开机启动,启动mysql

chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

使用ps aux |grep mysqld查看mysql是否启动

#如果出现以下错误有可能是因为重新安装mysql忘记初始化造成的:

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

#注释:

在此文件查看mysql编译参数

/usr/local/mysql/bin/mysqlbug|grep -i configure

手动启动mysql的命令

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/my.cnf --user=mysql --datadir=/data/mysql

2、拷贝mysql主目录

cd /usr/local

cp -r mysql mysql_slave

cd /usr/local/mysql_slave
cp /etc/my.cnf  ./my.cnf
vim my.cnf
修改port =3306
改为port =3307
修改socket        = /tmp/mysql.sock
改为socket        = /tmp/mysql_slave.sock
增加datadir       =/data/mysql_slave

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql_slave

cp /etc/init.d/mysqld /etc/init.d/mysqld_slave
vim /etc/init.d/mysqld_slave
修改basedir=/usr/local/mysql_slave
    datadir=/data/mysql_slave
增加conf=$basedir/my.cnf(另外还需修改脚本命令里面conf=$basedir/my.cnf)

/etc/init.d/mysqld start
/etc/init.d/mysqld_slave start
mysql
mysql> create database db1;
msyql> exit
mysqldump -S /tmp/mysql.sock mysql > 123.sq
mysql -S /tmp/mysql.sock  db1 <123.sql

vim /etc/my.cnf 
server-id       = 1
log-bin=river   #有时候也可以加选项binlog-do-db=db1,db2表示只对db1和db2的库同步
                #也可以使用binlog-ignore-db=mysql表示只忽略mysql这个库的同步

/etc/init.d/mysqld restart #重启后可以看到在/data/mysql目录下会生成river.000001开头的binlog文件

mysql
mysql> grant replication slave on *.* to 'repl'@127.0.0.1 identified by 'abc.123';
mysql> flush privileges;
mysql> flush tables with read lock;
mysql> show master stats; #显示的数据记住需要给从数据库配置使用

vim /usr/local/mysql_slave/my.cnf
server-id       = 111 #可以增加replicate-do-db=db1,db2表示只同步db1,db2库
                              #replicate-ignore-db=mysql表示不同步mysql库


mysql -S /tmp/mysql_slave.sock -e "create database db1"#登陆并创建数据库db1
mysql -S /tmp/mysql_slave.sock db1 <123.sql #导入123.sql到db1

mysql -S /tmp/mysql_slave.sock 
mysql> slave stop;
mysql> change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='abc.123',master_log_file='river.000001',master_log_pos=330;
#此步需要查看master_log_file='river.000001', master_log_pos=330需要在主服务器上使用show master stats命令
mysql> slave start;
/etc/init.d/mysqld_slave restart
mysql -S /tmp/mysql_slave.sock
mysql> show slave status\G;
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes#此两处均显示为yes成功
 15、测试主从
 登陆主数据库,删除表
 mysql
 mysql>unlock tables;
 mysql>use db1
 mysql>drop help_category
 #登陆从数据库查看已经没有help_category表
 #记住不能在从数据库上写入否则会导致数据错乱
 
  
 mysql复制  http://htop.me/2015/07/10/MySQL%E5%A4%8D%E5%88%B6/
 mysql主从心得整理  http://wangwei007.blog.51cto.com/68019/965575
 不停库不锁表在线主从配置  http://wsgzao.github.io/post/xtrabackup/
 mysql主从问题集 http://blog.chinaunix.net/uid-8786588-id-3771613.html
 mysql主从常见问题   http://f.dataguru.cn/thread-423665-1-1.html
 mysql主从延迟  http://f.dataguru.cn/thread-461916-1-1.html   
 主从延迟原因PPT   http://meeting.zhdba.com/style/2012atcc/ppt/mysql-arc.ppsx
 mysql 主主  http://luoweiro.blog.51cto.com/2186161/658550 
 mysql-proxy 实现读写分离   http://my.oschina.net/barter/blog/93354
 atlas相关     http://www.oschina.net/p/atlas
 mysql一主多从   http://blog.sina.com.cn/s/blog_4c197d4201017qjs.html
 cobar实现分库分表   http://blog.csdn.net/huoyunshen88/article/details/37927553
 mysql分库分表方案 http://my.oschina.net/ydsakyclguozi/blog/199498
 mysql架构演变  http://www.aminglinux.com/bbs/thread-8025-1-1.html