MySQL双机热备部署

卸载系统自带的版本。


这里以MySQL-5.5.28-1为版本


为了简单,RPM方式安装:

rpm -ivh MySQL-server-5.5.28-1.linux2.6.x86_64.rpm

rpm -ivh MySQL-client-5.5.28-1.linux2.6.x86_64.rpm



#mysql


mysql>update mysql.user set password="chengshan" where user="root"; //


mysql>delete from mysql.user where user=''; //删除匿名用户


mysql>select user,host from mysql.user;


mysql>delete from mysql.user where host='127.0.0.1';


mysql>delete from mysql.user where host='localhost';


mysql>create user 'zcs'@'127.0.0.1' identified by 'chengshan';


mysql>grant all privileges on *.* to 'root'@'%' identified by 'chengshan' with grant option;


mysql>grant all privileges on *.* to 'zcs'@'%' identified by 'chengshan' with grant option;


mysql>flush privileges;


mysql>quit



登陆测试

[root@svr ~]# mysql -u root -p

Enter password: 


1.修改相关配置文件:

#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

#vi /etc/my.cnf


在[client]最后增加

default-character-set=utf8


在[mysqld]最后增加

lower_case_table_names=1 

transaction-isolation=READ-COMMITTED

event-scheduler=1

max_connections=2000


2.启动

/etc/init.d/mysql start

#netstat -anlt


3.停止

/etc/init.d/mysql stop


4.重新启动

/etc/init.d/mysql restart


5.设置自动启动

/sbin/chkconfig mysql on



二两台服务器都装好后,进行双机热备的配置(主从关系)

约定环境:两台服务器的主机名最好不一样,如一个是db1(主),一个是db2(从)。

可以通过修改/etc/sysconfig/network实现

两台数据库root密码为chengshan


1 进入主服务器

mysql �Cu root �Cp

密码:chengshan

mysql>下输入:show master status;  

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002 |     107 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)


如果提示为空则需要在/etc/my.cnf 下的mysqld中添加

log-bin=mysql-bin

server-id=10


注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。




创建同步用户

grant replication slave on *.* to [email protected] identified by '123456';

//创建用户user1密码为123456,指定IP为从服务器可以访问的。


flush privileges;


修改/etc/my.cnf

在[mysqld]下修改即可:

[mysqld]

server-id = 1

log-bin=mysql-bin                //其中这两行是本来就有的,可以不用动,添加下面两行即可

binlog-do-db = opts2         //指定需要被同步的数据库名称如opts2

binlog-ignore-db = mysql     //指定不需要被同步的数据库名称如mysql自带的mysql或其他的数据库,如果不指定这两条默认全部都同步。

修改好后

service mysql restart      //重启mysql服务,不解释。如果成功则没问题。


主服务器配置完毕。






2 进入从服务器

首先修改/etc/my.cnf配置

[mysqld]                    //在[mysqld]段后修改

server-id = 2               //修改1为2

log-bin=mysql-bin           //默认配置,开启日志记录,不用改

replicate-do-db = opts2        //指定需要去主服务器发起同步的数据库名如opts2

replicate-ignore-db = mysql,information_schema,performance_schema

// 执行不需要进行同步的数据库名


service mysql restart     //不解释




用change mster 语句指定同步位置

mysql �Cu root �Cp

密码:chengshan

mysql>


创建同步用户

grant replication slave on *.* to [email protected] identified by '123456';

//创建用户user2密码为123456,指定IP为主服务器可以访问的。其实这句话可以不用打,这句话是给互相备份用的(主-主关系),不过配上也没事,没有设置权限。


mysql>stop slave;          //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。

mysql>change master to

->master_host='192.168.0.90',

->master_user='user1',

->master_password='123456',

->master_log_file='mysql-bin.000003 ',

->master_log_pos=107;


注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。


mysqlbinlog mysql-bin.000003 > 0.txt

回车后,如成功会有OK提示,如果不成功则要重新设置slave。指令如下


mysql>stop slave;


mysql>reset slave;



之后停止slave线程重新开始。成功后,则可以开启slave线程了。



flush privileges;



mysql>start slave;     //重新启动


mysql>show slave status\G;   //查看从服务器状态



# service mysql restart   //不解释


至此从服务器设置完成。

你可能感兴趣的:(数据库,mysql,双机热备)