首页 > 代码库 > 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高可用(主备)