主sql:192.168.197.130
从sql:192.168.197.131
更新时间
ntpdate 1.asia.pool.ntp.org
解压mysql包
[root@localhost src]# tar zxvf mysql-5.5.47-linux2.6-x86_64.tar.gz
[root@localhost mysql]# mv mysql-5.5.47-linux2.6-x86_64 /usr/local/mysql/
从:[root@localhostmysql]#cp -r /usr/local/mysql /usr/local/mysql_slave
创建MySQL用户
复制启动脚本
[root@localhost mysql]# cp support-files/my-small.cnf/etc/my.cnf
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# vim /etc/init.d/mysqld
46 basedir=/usr/local/mysql
47datadir=/data/mysql
从:[root@localhostmysql]#cd mysql_slave
[root@localhost ~]#cp /etc/my.mysql /usr/local/mysql_slave
[root@localhost~]#cp /etc/init.d/mysqld /etc/init.d/mysqld_slave
[root@localhost~]#vim /usr/local/mysql_slave
27 port = 3307
28 socket = /tmp/mysql_slave.sock
38 datadir =/data/mysql_slav4e
46 server-id = 11
49log-bin=mysql-bin
[root@localhost ~]# vim /etc/init.d/mysqld_slave
46 basedir=/usr/local/mysql_slave
47 datadir=/data/mysql_slave
48 conf=$basedir/my.cnf
生成配置文件
[root@localhost mysql]# ./scripts/mysql_install_db--user=mysql --datadir=/data/mysql
从[root@localhostmysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql_slave
启动服务
[root@localhost ~]# service mysqld restart
从[root@localhost ~]#servicemysqld_slave restart
登陆mysql
[root@localhost ~]#/usr/local/mysql/bin/mysql
从[root@localhost~]#/usr/local/mysql_slave/bin/mysql_slave
七、创建一个库
[root@localhost ~]# vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost ~]# mysql –uroot
mysql> create database myhong;
拷贝一个sql文件,还原文件。
(主)[root@localhost ~]#mysqldump -S /tmp/mysql.sock mysql > 123.sql //将mysql的库导入到123.sql中
(主)[root@localhost ~]#mysql db1 < 123.sql //将123.sql库恢复到db1库中
九、编辑主sql上的配置文件
[root@localhost ~]# vim /etc/my.cnf
46 server-id = 1
49 log-bin=myhong //名字可以定义
50 binlog-do-db=db1 //只针对这一个数据库做主从,也可以,db1,db2
50 inlog-ignore-db=mysql //黑名单,出了mysql的数据库其他都做主从
十、重启服务
[root@localhost ~]# service mysqld restart
十一、进入mysql授权
[root@localhost mysql]# mysql –uroot
mysql> grant replication slave on *.* to‘hong‘@‘192.168.197.131‘ identified
by ‘123456‘; //授予的权限为replication
mysql> flush privileges; //刷新权限
mysql> flush tables with read lock; //表的读锁死
mysql> show master status; //读取一个数据
+---------------+----------+--------------+------------------+
| File |Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| myhong.000001 | 338 | | |
+---------------+----------+--------------+------------------+
十二、从sql上修改配置文件
[root@localhost ~]# vim /etc/my.cnf
46 server-id =11
46 replicate-do-db=db1(可写)//可主从的数据库
47 replicate-ignore-db=mysql (可写)//黑名单
[root@localhost ~]#service mysqld restart
将主mysql上的数据拷贝到从mysql上,如果是不同的机器,需要远程拷贝。
[root@localhost ~]# mysqldump -uroot -S/tmp/mysql2.sock -p123456 db1 > db1.sql
[root@localhost ~]# mysql -uroot -S/tmp/mysql.sock -pyourpassword -e "create database db1"
[root@localhost ~]# mysql -uroot -S /tmp/mysql.sock-pyourpassword db1 < db1.sql
十三、在从sql数据库实现同步配置
mysql>Slave stop;
mysql> change master to master_host=‘192.168.197.130‘,master_port=3306, master_user=‘hong‘, master_password=‘123456‘,master_log_file=‘myhong.000001‘, master_log_pos=338;
mysql> slave start;
mysql> exit
[root@localhost mysql]# servicemysqld restart
十四、查看是否同步成功
mysql> show slave status\G;
*************************** 1.row ***************************
Slave_IO_State: Waiting formaster to send event
Master_Host: 192.168.197.130
Master_User: hong
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: myhong.000001
Read_Master_Log_Pos: 22591
Relay_Log_File:localhost-relay-bin.000003
Relay_Log_Pos: 22503
Relay_Master_Log_File: myhong.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes //如果是2个yes表示成功
十五、进入主sql解锁操作,并测试
mysql> use myhong;
mysql> drop tables help_category ;
十六、在从sql上查看是否这个库的的表被删除了。
删除表示成功了,没删除或者没表就是失败
本文出自 “8653294” 博客,请务必保留此出处http://8653294.blog.51cto.com/8643294/1742797
原文:http://8653294.blog.51cto.com/8643294/1742797