学习配置和使用 mysql 主从数据库
2023-09-11 14:20:09 时间
实验环境:
virtualbox + ubuntu 16.04.3 + mysql 5.7
sudo apt-get install mysql-server mysql-client
然后导出虚拟机,再导入虚拟机,至此就有2台虚拟服务器了。
mysql -V
查看 mysql版本,最好采用相同版本的mysql。
master 服务器ip: 192.168.1.168
slave 服务器ip: 192.168.1.113
同步的数据库: zhucong_test
同步的用户名和密码都是: master_test
主(master)服务器配置:
- 配置文件修改
主mysql,/etc/mysql/my.cnf
[mysqld]
#sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#max_allowed_packet=100M
log-bin = mysql-bin
server-id=1
#不同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
binlog-ignore-db = sys
#同步的数据库
binlog-do-db = zhucong_test
重启主服务器的mysql.
show master status;
修改 bind-address
,/etc/mysql/mysql.conf.d/mysqld.cnf
,找到 bind-address = 127.0.0.1
并在该行的前面加#
注释掉,变成#bind-address = 127.0.0.1
,重启主服务器的mysql。这一步是为了让从服务器可以连接到主服务器的mysql。
- 主服务器添加一个用于主从的mysql用户,并赋予
REPLICATION SLAVE
权限。
mysql > create user 'master_test'@'%' identified by 'master_test';
mysql > GRANT REPLICATION SLAVE ON *.* TO 'master_test'@'%';
mysql > flush privileges; #刷新权限
配置从(slave)服务器
创建要同步数据库
create database zhucong_test charset utf8 collate utf8_general_ci;
把master数据库的数据dump一份导入到slave(非常重要)
mysqldump -h 192.168.1.168 -uroot -p zhucong_test > source.sql #导出主(master)服务器的zhucong_test db的数据到从(slave)服务器上
mysql -uroot -p zhucong_test < source.sql #导入数据到从(slave)服务器的zhucong_test数据库中
修改从(slave)服务器mysql的配置文件,/etc/mysql/my.cnf
[mysqld]
#sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#max_allowed_packet=100M
log-bin = mysql-bin
server-id=2
expire_logs_days=10
#忽略同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
binlog-ignore-db = sys
#同步的数据库
replicate-do-db = zhucong_test
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
重启从服务器的mysql,使用
CHANGE MASTER TO
语句指定主服务器信息,不要在配置文件中配置。该语言可以替代在配置文件中提供主服务器的信息,另外,不需要停止服务器,便可以为从服务器指定不同的主服务器。
CHANGE MASTER TO MASTER_HOST='192.168.1.168',MASTER_USER='master_test',MASTER_PASSWORD='master_test',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=0;
此处指定 MASTER_LOG_POS的值为0,因为要从日志的开始位置开始读。
start slave; # 开始复制
show slave status\G; # 查看从服务器的设置是否正确
当从服务器的mysql显示的状态:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明配置成功了
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决方法: 停止从服务器的mysql,并将auto.cnf
文件删除。如:
sudo service mysql stop
sudo mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
参考书籍:《PHP核心技术与最佳实践》
Refences
- MHA集群报错:The slave I/O thread stops because master and slave have equal MySQL server UUIDs 了解到mysql 5.7配置文件的地址
- "Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs 从服务器中 相同 server uuids的解决方法
- mysql 主从配置,slave master 设置
- mysql主从简单配置
- MySQL.ERROR 1133 (42000): Can't find any matching row in the user table
- MySQL创建用户和授权
相关文章
- 第 7 章 MySQL 数据库锁定机制
- Linux中数据库的安装和配置(MySQL与Maria DB)
- mysql之基本数据库操作(二)
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
- mysql数据库,什么是数据库的全备份?
- MySQL基础篇(02):从五个维度出发,审视表结构设计
- Mysql数据库优化配置文件my.ini文件配置解释
- Windows系统云服务器安装、配置 MySQL 数据库
- 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本
- 数据库(原SQL Server 我是mysql )对S表、P表、J表、SPJ ---- 第一篇~
- MySQL 数据库设计 笔记与总结(3)物理设计
- 《Hadoop实战手册》一1.4 使用Sqoop从MySQL数据库导入数据到HDFS
- jboss7.1.1配置数据库mysql与oracle
- python操作mysql数据库系列-操作MySql数据库(三)
- idea 社区版连接mysql数据库教程,Cannot connect to “MySQL-5.1.43“. CLIENT_PLUGIN_AUTH is required
- .Net Core 3.1 EF连接MySql数据库配置
- MySQL数据库服务器 主从配置
- MySQL数据库:SQL优化与索引优化
- MySQL数据库:视图View
- 支持MySql的数据库自动分表工具DBShardTools发布
- mysql如何把 一个数据库中的表数据 复制到 另一个数据库中(两个数据库不在同一个数据库链接下)
- 配置Mysql数据库主从同步
- Magento数据库配置选项,以及mysql 读写分离
- MySQL利用E-R模型的数据库概念设计
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- 第五周:MySQL数据库
- MySQL数据库的下载、安装、环境配置及使用Navicat连接MySQL数据库实战教程
- 【C#】使用NHibernate连接MySQL数据库及增删改查