MYSQL5masterslave数据同步配置方法
测试环境.基本上数据是瞬间同步,希望对大家有帮助
RedHatES3update3
MYSQL5.0.15
MYSQL数据同步备份
A服务器:192.168.1.2主服务器master
B服务器:192.168.1.3副服务器slave
A服务器设置
#mysql?uroot?p
mysql>GRANTFILEON*.*TObackup@192.168.1.3IDENTIFIEDBY‘1234";
mysql>exit
上面是Master开放一个账号backup密码1234给IP:192.168.1.3有档案处理的权限
mysqladmin?uroot?pshutdown
导出Master的数据库到slave的机器,可以选择导出需要同步的数据库
在A机器上修改/etc/my.cnf
在[mysqld]区段内加入参数
log-bin=mysql-bin
server-id=1
binlog_do_db=gbbbs(要同步的数据库)
binlog_ignore_db=mysql,test,information_schema(不需要同步的库,5.0有information_schema这个库)
sql-bin-update-same
重启A服务器mysql
B服务器设置
设定/etc/my.cnf
在[mysqld]区段加入
server-id=2(如果还有slave用户,他们的ID也随之增加,如server-id=3)
master-host=192.168.112.71
master-user=backup
master-password=1234
replicate-do-db=gbbbs
#replicate-do-db=database2
log-warnings
master-port=3306
master-connect-retry=60
重启B服务器的MYSQL
在数据库的文件夹里有master.info文件,用来查看同步信息
其实就是MYSQLReplication
MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据。有许多的原因我们需要导出数据。一个重要的原因是用于备份数据库。数据的造价常常是昂贵的,需要谨慎处理它们。经常地备份可以帮助防止宝贵数据地丢失;另外一个原因是,也许您希望导出数据来共享。在这个信息技术不断成长的世界中,共享数据变得越来越常见。
这里我们并不讨论其他的数据库各种各样的导出数据的方法,您将学会如何用MySQL来实现数据导出。
使用mysqldump:
(mysqldump命令位于mysql/bin/目录中)
mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。
因此,如果您像装载整个数据库Meet_A_Geek的内容到一个文件中,可以使用下面的命令:
bin/mysqldump?pMeet_A_Geek>MeetAGeek_Dump_File.txt
这个语句也允许您指定一个表进行dump(备份/导出/装载?)。如果您只是希望把数据库Meet_A_Geek中的表Orders中的整个内容导出到一个文件,可以使用下面的命令:
bin/mysqldump?pMeet_A_GeekOrders>MeetAGeek_Orders.txt
这个非常的灵活,您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:
bin/mysqldump?p?where="Order_ID>2000"Meet_A_GeekOrders>Special_Dump.txt
mysqldump工具有大量的选项,部分选项如下表:
选项/Option作用/ActionPerformed
--add-drop-table
这个选项将会在每一个表的前面加上DROPTABLEIFEXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除
--add-locks
这个选项会在INSERT语句中捆上一个LOCKTABLE和UNLOCKTABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作
-cor-complete_insert
这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。
--delayed-insert在INSERT命令中加入DELAY选项
-For-flush-logs使用这个选项,在执行导出之前将会刷新MySQL服务器的log.
-for-force使用这个选项,即使有错误发生,仍然继续导出
--full这个选项把附加信息也加到CREATETABLE的语句中
-lor-lock-tables使用这个选项,导出表的时候服务器将会给表加锁。
-tor-no-create-info
这个选项使的mysqldump命令不创建CREATETABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。
-dor-no-data这个选项使的mysqldump命令不创建INSERT语句。
在您只需要DDL语句时,可以使用这个选项。
--opt此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。
-qor-quick这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。
-Tpathor-tab=path这个选项将会创建两个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为table_name.sql,数据文件被命名为table_name.txt.路径名是存放这两个文件的目录。目录必须已经存在,并且命令的使用者有对文件的特权。
-w"WHEREClause"or-where="Whereclause"
如前面所讲的,您可以使用这一选项来过筛选将要放到导出文件的数据。
假定您需要为一个表单中要用到的帐号建立一个文件,经理要看今年(2004年)所有的订单(Orders),它们并不对DDL感兴趣,并且需要文件有逗号分隔,因为这样就很容易导入到Excel中。为了完成这个人物,您可以使用下面的句子:
bin/mysqldump?p?where"Order_Date>="2000-01-01""
?tab=/home/mark?no-create-info?fields-terminated-by=,Meet_A_GeekOrders
这将会得到您想要的结果。
部分加载var/lib/mysql的系统,可以直接在提示符下输入mysqldump-p....等命令行
schema:模式
Thesetofstatements,expressedindatadefinitionlanguage,thatcompletelydescribethestructureofadatabase.
一组以数据定义语言来表达的语句集,该语句集完整地描述了数据库的结构。
SELECTINTOOUTFILE:
如果您觉得mysqldump工具不够酷,就使用SELECTINTOOUTFILE吧,MySQL同样提供一个跟LOADDATAINFILE命令有相反作用的命令,这就是SELECTINTOOUTFILE命令,这两个命令有很多的相似之处。首先,它们有所有的选项几乎相同。现在您需要完成前面用mysqldump完成的功能,可以依照下面的步骤进行操作:
1.确保mysqld进程(服务)已经在运行
2.cd/usr/local/mysql
3.bin/mysqladminping;//如果这个句子通不过,可以用这个:mysqladmin-uroot-pping
mysqladminping用于检测mysqld的状态,isalive说明正在运行,出错则可能需要用户名和密码。
4.启动MySQL监听程序.
5.bin/mysql?pMeet_A_Geek;//进入mysql命令行,并且打开数据库Meet_A_Geek,需要输入密码
6.在命令行中,输入一下命令:
SELECT*INTOOUTFILE"/home/mark/Orders.txt"
FIELDS
TERMINATEDBY=","
FROMOrders
WHEREOrder_Date>="2000-01-02"
在你按了Return(回车)之后,文件就创建了。这个句子就像一个规则的SELECT语句,只是把想屏幕的输出重定向到了文件中。这意味这您可以使用JOIN来实现多表的高级查询。这个特点也可以被用作一个报表产生器。
比方说,您可以组合这一章中讨论的方法来产生一个非常有趣的查询,试试这个:
在mysql目录建立一个名为Report_G.rpt的文本文件,加入下面的行:
USEMeet_A_Geek;
INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
VALUES(NULL,"Kinnard","Vicky");
INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
VALUES(NULL,"Kinnard","Steven");
INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
VALUES(NULL,"Brown","Sam");
SELECTLast_NameINTOOUTFILE"/home/mark/Report.rpt"
FROMCustomersWHERECustomer_ID>1;
然后确认mysql进程在运行,并且您在mysql目录中,输入下面的命令:
bin/mysql<Report_G.rpt检查您命名作为输出的文件,这个文件将会包含所有您在Customers表中输入的顾客的姓。
相关文章
- 如何使用nacos在分布式环境下同步全局配置
- mysql主从同步配置读写分离_mysql8做主从数据库
- 文件同步工具rsyncd介绍及安装配置
- NTP时间同步服务器部署及客户端配置
- 【Android FFMPEG 开发】FFMPEG 直播功能完整流程 + 源码 ( 源码交叉编译 -> AS工程配置 -> 音视频打开/读取/解码/格式转换 -> 原生绘制播放 -> 音视频同步 )
- 【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合 )
- Redis主从同步配置的方法步骤(图文)
- 的技术Linux下实现精准同步网络时间的技术(linux下同步网络时间)
- MySQL双机同步技术实现数据安全(mysql双机同步)
- Linux 同步时间配置:轻松搞定精准同步(linux时间同步配置)
- MySQL数据库自动同步技术(mysql数据自动同步)
- MySQL主主同步配置实施指南(mysql主主同步配置)
- MySQL 主主同步配置指南(mysql主主同步配置)
- Linux文件自动同步:一步到位(linux文件自动同步)
- Linux NTP服务器配置:确保准确的时间同步(linuxntp服务器配置)
- Linux系统中如何安装和配置NTP时间同步服务(linuxntp安装)
- MySQL主从同步,维护必知!(mysql主从维护)
- 深入剖析MySQL主从同步原理,助力数据库架构优化(mysql主从的原理)
- Redis主从同步:从配置到成功(redis主从同步配置)
- Redis 主从状态:高效数据同步的关键(redis主从状态)
- 使用Oracle全文检索与同步应用技术研究(oracle全文检索同步)
- 极速Redis同步数据库无残留删除(数据库删除Redis同步)
- oracle主从同步配置让数据同步变得更稳定(oracle主从同步配置)
- 实现MySQL一主一从同步配置,提高数据库读写性能和可用性(mysql 一主一从)
- AP从Oracle数据库中同步配置LDAP服务(oracle LD)
- MySQL主从同步、读写分离配置步骤
- c#实现数据同步的方法(使用文件监控对象filesystemwatcher)