访问网站慢,WordPress自定义主题使用,wordpress 国外 企业主题,上海网站开发培训MySQL Replication我们知道#xff0c;MySQL数据库的二进制日志记录着每一个明确或者潜在可能导致数据库发生改变的sql语句#xff0c;因此我们可以基于二进制日志来实现mysql的主从一致。而我们在此提到的mysql的复制的简单过程就是#xff1a;首先mysql的主服务器(Master)…MySQL Replication我们知道MySQL数据库的二进制日志记录着每一个明确或者潜在可能导致数据库发生改变的sql语句因此我们可以基于二进制日志来实现mysql的主从一致。而我们在此提到的mysql的复制的简单过程就是首先mysql的主服务器(Master)上有一个叫dump的线程负责将二进制日志读取进来发送给slave.而后mysql的从服务器(Slave)上有个I/O线程 ,负责接收Master传送过来的二进制日志数据,并且将此写入到本地的中继日志中,此时会有一个SQL线程,每次中继日志读取一句sql语句, 并在从Slave上应用以实现主从服务器的一致。首先需要提供2台mysql版本一致的mysql服务器在此选用的mysql-5.5.20,平台为RedHat5.4一、安装mysql-5.5.20# groupadd -r mysql# useradd -g mysql -r -s /sbin/nologin –M mysql//新建用户以安全方式运行进程# chown -R mysql:mysql /mydata/data# tar xf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local//将下载好的mysql软件解压安装# cd /usr/local/# ln -sv mysql-5.5.20-linux2.6-i686 mysql# cd mysql# chown -R mysql:mysql .# scripts/mysql_install_db --usermysql --datadir/mydata/mysql//初始化mysql,此处使用的/mydata/mysql存放mysql的数据,建议将/mydata挂载至一个逻辑卷,方便数据备份# chown -R root .# cd /usr/local/mysql# cp support-files/my-large.cnf /etc/my.cnf#vim /etc/my.cnfthread_concurrency 2 //修改此项,我们的cpu为双核的datadir /mydata/data //添加此项,指定数据存放的目录# cp support-files/mysql.server /etc/rc.d/init.d/mysqld# chkconfig --add mysqld# chkconfig mysqld on二为使用mysql的安装符合系统使用规范并将其开发组件导出给系统使用需如下操作#vim/etc/man.config //输出mysql的man手册至man命令的查找路径MANPATH /usr/local/mysql/man //添加此行# ln -sv /usr/local/mysql/include /usr/include/mysql//输出mysql的头文件至系统头文件路径/usr/include# echo /usr/local/mysql/lib /etc/ld.so.conf.d/mysql.conf//输出mysql的库文件给系统库查找路径# ldconfig //让系统重新载入系统库#vim /etc/profile //修改PATH环境变量让系统可以直接使用mysql的相关命令PATH$PATH:/usr/local/mysql/bin //添加此行三实现主从复制master ip192.168.1.10slave ip192.168.1.11On Master (在主服务器的操作)#vim /etc/my.cnf 确保证如下选项:server-id 1 //主服务器的身份标识log-binmysql-bin //开启二进制日志sync_binlog1 //事务提交立即写入到二进制日志innodb_flush_logs_at_trx_commit1 //事务提交之时立即将二进制日志写入磁盘#mysql –uroot –pmysql grant replication client,replication slave on *.* to cclo’192.168.1.%’ identified by ‘12345’;//此处创建一个用户名为cclo,密码为12345的用户,其权限为client和replicationmysql flush privileges;mysql show grants for cclo’192.168.1.%’; //验证此用户的权限On Slave:(在从服务器的操作)#vim /etc/my.cnf[mysqld]server-id 11 // 数值只要保证和Master不同即可#log-binmysql-bin //slave的二进制日志一般用不到,暂时关闭relay-logrelay-bin //开启中继日志relay-log-indexrelay-bin.indexread_only1 //此项为阻止普通用户写从服务器skip_slave_start1//mysql服务关闭后,当服务开启时跳过自动启动主从复制(如需自动启动,此项略过)#service mysqld restart#mysql –uroot –pmysql show master status;------------------------------------------------------------| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |------------------------------------------------------------| MySQL-bin.000003 | 374 | | |------------------------------------------------------------1 row in set (0.00 sec)mysql change master to master_host192.168.1.10,master_usercclo,master_password12345,master_log_filemysql-bin.000003,master_log_pos374;//指定Master的ip及复制的用户及二进制日志的位置mysq start slave; //启动主从复制mysql show slave status; //查询从服务器的工作属性,确保以下2项Slave_IO_Runing: Yes Slave_SQL_Runing: Yes //确保此2项为Yes的状态