Mysql----主从数据库配置

Posted end

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql----主从数据库配置相关的知识,希望对你有一定的参考价值。

mysql的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。所以我在项目部署和实施中经常会采用这种方案.+ 数据库目录及其它my.cnf配置文件 /etc/my.cnfmysql数据库位置 datadir=/var/lib/mysql主数据库:192.168.2.119从数据库:192.168.2.220操作系统:RHEL5.x 32位服务器类型: 虚拟机+ mysql5.0.77 安装:① 配置好linux的yum服务后,直接yum -y install mysql即可附:安装php\\mysql一条命令安装:yum -y install httpd php mysql mysql-server php-mysql② 启动MySQLservice mysqld start(restart|stop)一、设置主库1、修改主库my.cnf,主要是设置个不一样的id和logbin(#这部可依具体环境而定,压力大的化可采用huge.cnf)[root@localhost etc]#vi /etc/my.cnf# 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档[mysqld]log-bin=mysql-binserver-id=1binlog-ignore-db=information_schemabinlog-ignore-db=clusterbinlog-ignore-db=mysql2、启动主库生效[root@localhost etc]service mysqld restart3、登陆主库[root@localhost etc]mysql -u root -p4、赋予从库权限帐号,允许用户在主库上读取日志mysql> grant all privileges on *.* to '用户名'@'%' identified by '密码'; 5、检查创建是否成功select user,host from mysql.user;6、锁主库表 mysql> flush tables with read lock; 7、显示主库信息记录File和Position,从库设置将会用到mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 98 | | | +------------------+----------+--------------+------------------+1 row in set (0.00 sec)# 说明,如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。8、另开一个终端登陆220,打包主库迁移数据(如果你使用的yum安装,有默认数据库并未做任何改动,则不需要进行拷贝)目的是为了保证两台服务器的mysql数据库一致,这里可以自行tar打包或者使用mysqldump命令备份恢复的方式进行。二、设置从库1、传输拿到主库包、解包# 登陆从库从上一步中备份的数据库恢复到220服务器节点上。2、在119节点上解锁主库表(对应第一点设置主库中第6步锁主库表的操作) mysql> unlock tables; 3、在220节点上修改从库my.cnf(位置一样)[root@localhost etc]vi my.cnf # 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档[mysqld]log-bin=mysql-binserver-id=2binlog-ignore-db=information_schemabinlog-ignore-db=clusterbinlog-ignore-db=mysqlreplicate-do-db=testreplicate-ignore-db=mysqllog-slave-updatesslave-skip-errors=allslave-net-timeout=60master-host=192.168.2.119master-user=rootmaster-password=pfingo4、在220节点上验证连接主库[root@localhost etc]mysql -h 192.168.2.119 -u 用户名 -p 5、在220节点从库上设置同步#设置连接MASTER MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position#注意下面第二条命令语句中的master_log_file='mysql-bin.000001', master_log_pos=98;对应为前面在主库中执行的show master status;结果mysql> slave stop;mysql> change master to master_host='192.168.2.119',master_user='root',master_password='pfingo',master_log_file='mysql-bin.000001', master_log_pos=98;mysql> slave start;6、启动从库服务mysql> slave start;7、进行测试在主库上的test库上建立名为myTest的表mysql> CREATE TABLE `myTest` (`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,`username` VARCHAR( 20 ) NOT NULL ,`password` CHAR( 32 ) NOT NULL ,`last_update` DATETIME NOT NULL ,`number` FLOAT( 10 ) NOT NULL ,`content` TEXT NOT NULL ,PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;在从表中马上看到了效果,主从同步成功了;为了更进一步验证在从库上输入show slave status\\G;mysql> show slave status\\G;Slave_IO_Running: Yes(网络正常);Slave_SQL_Running: Yes(表结构正常)进一步验证了以上过程的正确性。

以上是关于Mysql----主从数据库配置的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql 主从复制的错误

主从故障处理

Zabbix 检测Mysql数据库的主从同步

监控mysql主从同步状态

mysql主从之主机名导致主从机制失败的问题

Zabbix检测Mysql数据库的主从同步