MySQL数据库主从同步安装与配置总结
2023-09-11 14:19:44 时间
①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;
②在从主服务器进行备份,避免备份期间影响主服务器服务;
③当主服务器出现问题时,可以切换到从服务器。
所以我在项目部署和实施中经常会采用这种方案.
+ 数据库目录及其它
my.cnf配置文件 /etc/my.cnf
mysql数据库位置 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
② 启动MySQL
service mysqld start(restart|stop)
一、设置主库
1、修改主库my.cnf,主要是设置个不一样的id和logbin(#这部可依具体环境而定,压力大的化可采用huge.cnf)
[root@localhost etc]#vi /etc/my.cnf
# 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档
4、赋予从库权限帐号,允许用户在主库上读取日志 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(位置一样) # 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档
#设置连接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;
在从表中马上看到了效果,主从同步成功了; 为了更进一步验证在从库上输入show slave status\G; mysql show slave status\G; Slave_IO_Running: Yes(网络正常); Slave_SQL_Running: Yes(表结构正常) 进一步验证了以上过程的正确性。 最新内容请见作者的GitHub页:http://qaseven.github.io/
4、赋予从库权限帐号,允许用户在主库上读取日志 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(位置一样) # 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档
#设置连接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;
在从表中马上看到了效果,主从同步成功了; 为了更进一步验证在从库上输入show slave status\G; mysql show slave status\G; Slave_IO_Running: Yes(网络正常); Slave_SQL_Running: Yes(表结构正常) 进一步验证了以上过程的正确性。 最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
- mysql数据库,什么是数据库的全备份?
- python通过ssh连接mysql数据库的注意事项
- MySQL通过增加用户实现远程连接数据库
- 【数据库】Mysql表字段转Java实体(sql语句)
- 七、Mysql - shell脚本操作Mysql数据库
- .NET/Mysql-petatoco连接mysql数据库
- 《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一一1.1 MySQL的下载
- Python MySQL 数据库连接不同方式
- python操作mysql数据库系列-操作MySql数据库(五)
- python操作mysql数据库系列-操作MySql数据库(一)
- Mysql命令mysql:连接Mysql数据库
- NodeJs连接Mysql数据库
- 数据库报错com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'ua' at row 1
- MySQL数据库:读写分离
- 解决MySQL不允许从远程访问的方法
- 【数据库】centOS下的Mysql安装
- 使用LoadRunner监测MySQL数据库的性能
- (5.5)mysql高可用系列——MySQL半同步复制(实践)
- (5.4)mysql高可用系列——MySQL异步复制(实践)
- CentOS 安装配置 Mysql 数据库。
- 第五周:MySQL数据库
- mysql中数据库database、实例instance、会话session的关系
- kettle根据时间戳增量的将数据从MySQL同步SQLServer(linux部署脚本启动作业、config.properties 配置数据库)