首页 > 代码库 > mysql高可用(主备)

mysql高可用(主备)

服务器基本环境:

两台centos6.4、iptables  diabled 、selinux  disabled

两台的hosts解析

mysql安装(两台相同操作):

mysql用户和组

#groupadd mysql

#useradd -r -g mysql  mysql

mysql的各种使用目录

数据目录挂载点:/data

数据库base目录:/usr/local/mysql

数据库配置文件位置:/etc/my.cnf

数据库数据目录:/data/mysql

innodb数据和innodb日志目录:/data/mysql

#mkdir /data/mysql

#mkdir /usr/local/mysql

mysql解压

#tar  zxvf  /home/mysql-5.5.9.tar.gz  -C /data

mysql编译

#cmake . \

>-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/  \

>-DMYSQL_DATADIR=/data/mysql/  \

>-DWITH_INNOBASE_STORAGE_ENGINE=1  \

>-DENABLED_LOCAL_INFILE=1  \

>-DMYSQL_TCP_PORT=3306  \

>-DEXTRA_CHARSETS=all \

>-DDEFAULT_CHARSET=utf8 \

>-DDEFAULT_COLLATION=utf8-general_ci \

>-DWITH_DEBUG=

回车

#make && make install

mysql配置文件

#cd  /usr/local/mysql

#cp  /data/mysql-5.5.9/support-files/my-medium.cnf  /etc/my.cnf

mysql启动脚本

#cp  /data/mysql-5.5.9/support-files/mysql.server  /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld

初始化数据库

#cd /usr/local/mysql

#./usr/local/mysql/scripts/mysql_install_db --user=mysql  --ldata=http://www.mamicode.com/data/mysql

启动mysql

#/etc/init.d/mysqld start

设置root密码

#mysql -uroot -p    //介个时候是木有密码的  直接回车就ok了

mysql>update mysql.user  set password=password("password")  where  user="root";

//mysq是数据库名,user是表名

mysql>flush privileges;

主从配置:

主服务器配置

mysql>grant replication  slave on *.* to ‘mysql‘@‘从服务器IP‘ identified  by ‘password‘;

mysql>show master status;

#vim /etc/my.cnf  //需要改两个地方

       log-bin=mysql-bin  //一般情况下是这种显示,log-bin必须设置成mysql-bin,此项开启mysql会产生许多类似mysql-bin.00001的文件,这些文件主要是用来记录数据恢复、主从服务器之间同步数据的操作。如果不做高可用,这个选项可以禁掉,以免影响系统性能。

         server-id = 144   //server-id是用来标识服务器的线程,类如mysql高可用时,master线程和slave线程使用这个来标示的。主备的id一定要不一样(否则你的I/O进程会通信失败),即使是一个主N个备,那这N个备之间的id也要不一样。

从服务器设置

#vim /etc/my.cnf  //需要改两个地方

       log-bin=mysql-bin

  server-id = 145

mysql>change master to  master_host=‘主服务器IP‘,master_user=‘mysql‘,master_password=‘password‘;

mysql>start slave

mysql>show slave status\G

 

I/O进程和sql线程必须都通信成功!!!!主备才能同步!!!

技术分享

 

mysql高可用(主备)