mysql数据库迁移方案
怎样用命令行把MySQL数据库迁移到另一台Linux服务器
1、用dump命令备份数据库。
#mysqldump-uroot-pdbfile>dbfile.sql
2、用rsync从新服务器获得备份的文件(SCP或WGET也可以)。
#rsync-avrroot@myolddbserver:/home/mydumpfolder/dbfile.sql
3、登陆新服务器的mysql客户端。
#mysql-uroot-p
4.建立数据库。
mysql>createdatabasedbfile;
5.选择新数据库;
mysql>usedbfile;
6.加载数据;
mysql>sourcedbfile.sql
在Mysql程序中有我自己的一个数据库共5张表,里边数据不算太多。我现在想把他们全部弄到另一台电脑中去,该怎么弄,如果不用其它的软件工具,只用Mysql自已的程序不知可否?
注:不用考虑操作系统。
-———————————————————————————————
在dos命令提示符下使用mysqldump命令进行备份.
C:\DocumentsandSettings\Administrator>mysqldumpyinshi>c:\\backup.txt-uroot
-p12142022
说明:yinshi是我的数据库名,里面有5张表;c:\\backup.txt是我备份出来文件名和路径;
-u,-p参数后面跟的分别是用户名和密码.
将你备份出来的文件我这里是backup.txt拷贝到另一台机上,再在dos命令提示符下用mysql命令,进行恢复,如下:
C:\DocumentsandSettings\Administrator>mysql
mysql>sourcebackup.txt;(这里backup.txt在放在data目录下)
-———————————————————————————————
如果另一台机器上也安装了mysql,可以直接导入
C:\mysql\bin>mysqldump-h172.20.6.250-udeveloper-p123456—optserver_databasename|mysql-hlocalhost-uroot-Cobj_databasename
172.20.6.250源服务器ip
developer源服务器连接用户名
-———————————————————————————————
有两种办法。
1、在B机器上装mysql。
将A机器上的mysql/data下的你的数据库目录整个拷贝下来。
将B机器上的mysql服务停止。
找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。
2、使用SQL语句备份和恢复
你可以使用SELECTINTOOUTFILE语句备份数据,并用LOADDATAINFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。
SELECT*INTO{OUTFILE|DUMPFILE}’file_name’FROMtbl_name
LOADDATA[LOW_PRIORITY][LOCAL]INFILE’file_name.txt’[REPLACE|IGNORE]
INTOTABLEtbl_name
SELECT…INTOOUTFILE’file_name’
MYSQL数据库如何迁移??????
可以找到其安装文件夹,记得你的数据库名吧.有个文件夹中就放着你的数据库直接复制出来拷贝到你新的数据库就可以使用了.
用perl如何访问mysql数据库?请给个例子
DBI->errstr;
print “插入若干记录n”;
my $sth = $dbh->prepare(q{
INSERT INTO address (id, name,email,telephone) VALUES (?, ?, ?, ?)
}) });
print “输入记录,回车结束:”;
while ($inputdata =<>) {
chop $inputdata;
last unless($inputdata);
my ($id, $name,$email, $tel) = split( /,/, $inputdata);
$sth->execute($id, $name, $email,$tel)
# $dbh->commit;
print “下面根据输入的名字打印出EMAIL地址和电话n”;
my $sth = $dbh->prepare(’SELECT * FROM address WHERE name=?’)
or die $dbh->errstr;
print “请输入姓名,回车结束:”;
while ($inputname =<>) {
my @data;
chomp $inputname;
last unless($inputname);
$sth->execute($inputname) or die “错误: “ 。
MYSQL到ORACLE程序迁移的注意事项有哪些呢?
1. 自动增长的数据类型处理 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER
(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称。
如何迁移MySQL数据库
这个还是MYSQL的官方介绍比较权威,而且不容易出问题,下面我把MYSQL中文帮助文档相对应的部分发给你吧.
MySQL中文参考手册
翻译:晏子(yanzi)主页:
-———————————————————————————————————————-
第一章, 前一章, 下一章, 最后一章,目录.
-———————————————————————————————————————-
19 用MySQL解决一些常见问题
19.1 数据库复制
一方面复制可以用来增加健壮性和速度。对健壮性,你有2个系统,而如果你出了问题,切换到备份即可。额外的速度通过把非更新查询的一部分送到复制服务器来达到。当然,这只在非更新查询为主时有用,但是这正是一般的情形。
一方面复制计划在不久的未来实现。这将被实现,使得从服务器将以较低优先级的更新和延迟插入被同步到最新数据(这将给读者以比写者更高的优先级)。
MySQL(至今)没有数据库复制,但是有一些如何实现的信息。
复制一个数据库最一般的方法是使用更新日志。见9.2 更新日志。这要求充当一个主数据库(进行数据改变的)并且另一个或多个充当从数据库。要更新一个从数据库,只要运行mysql < update_log。提供对于从数据库适当的主机、用户和口令选项,并且将主数据库的更新日志作为输入。
如果你从未从一张表中删除任何东西,你可以使用一个TIMESTAMP列找出自上一次复制以来(通过比较作你上次做复制的时间)表中哪个行被插入和被改变,且仅拷贝这些行到镜像中。
有可能使用更新日志(对删除)和时间戳记(在两端)做成一个双向更新系统统,但是在这种情况下,当同一数据在两端被改变时,你必须能处理冲突。你可能想保持旧版本以帮助决定什么被更新了。
因为在这种情况中复制用SQL语句进行,你不应该在更新数据库的语句中使用下列函数;他们不能返回与原数据库相同的值:
DATABASE()
GET_LOCK()和RELEASE_LOCK()
RAND()
USER(), SYSTEM_USER()或SESSION_USER()
VERSION()
所有的时间函数可安全地使用,比如如果需要,时间戳记被送到镜像。LAST_INSERT_ID()也可安全地使用。
19.2 数据库备份
因为MySQL表作为文件存储,做一个备份是容易的。为了得到一个一致的备份,在相关的表上做一个LOCK TABLES。见7.24 LOCK TABLES/UNLOCK TABLES句法。你只需一个读锁定;当你在数据库目录中做文件的一个拷贝时,这允许其他线程继续查询该表。如果你想要做一个SQL级的备份,你可以SELECT INTO OUTFILE。
备份一个数据库的另一个方法是使用mysqldump程序:
为你的数据库做一个完整的备份:
shell> mysqldump —tab=/path/to/some/dir —opt —full
你也可以简单地拷贝所有的表文件(“*.frm”、“*.MYD”和“*.MYI”文件),只要服务器不在更新任何东西。
停止mysqld如果它正在运行,然后以—log-update选项启动它。你将得到一个名为“hostname.n”形式的日志文件, 这里n是随着你每次执行mysqladmin refresh或mysqladmin flush-logs、FLUSH LOGS语句、或重启服务器而递增的一个数字。这些日志文件向你提供了在你执行mysqldump处后面进行的复制数据库改变的所需信息。
如果你必须恢复一些东西,尝试首先用myisamchk -r恢复你的表。这应该处理所有情况的99.9%。如果myisamchk失败,尝试下列过程:
恢复原来的mysqldump备份。
执行下列命令以再次运行更新日志中的更改:
shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql
ls被用来以正确的顺序得到所有的日志文件。
你也可以与SELECT * INTO OUTFILE ‘file_name’ FROM tbl_name做有选择的备份并且用LOAD DATA INFILE ‘file_name’ REPLACE …恢复。为了避免重复记录,在表中你需要一个PRIMARY KEY或UNIQUE键。当在唯一键值上一个新记录与一个老记录重复时,REPLACE关键词使得老记录用一个新记录替代。MySQL数据库迁移
MySQL数据库迁移(数据文件直接迁移)
在今年10月下旬的时候,公司的服务器需要迁移,其中涉及到了MySQL数据库迁移。查看了一下MySQL数据文件的大小,接近60G的大小(实际数据并没用那么多)。由于服务器上业务需要,要尽量减少服务器迁移时的损失。所以迁移时间选在了晚上零点开始,而且要尽量减少迁移所用的时间。
在迁移之前有三种方案:
数据库直接导出,拷贝文件到新服务器,在新服务器上导入。
使用【MySQL GUI Tools】中的 MySQLMigrationTool。
数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的MySQL服务下。
我在我的电脑上用虚拟机测试后,选中了占用时间最少的第三种方案。下面是三种方案的对比:
第一种方案的优点:会重建数据文件,减少数据文件的占用空间。
第一种方案的缺点:时间占用长。(导入导出都需要很长的时间,并且导出后的文件还要经过网络传输,也要占用一定的时间。)
第二种方案的优点:设置完成后传输无人值守
第二种方案的缺点:
设置繁琐。
传输中网络出现异常,不能及时的被发现,并且会一直停留在数据传输的状态不能被停止,如不仔细观察不会被发现异常。
传输相对其他fang时间长。
异常后很难从异常的位置继续传输。
第三种方案的优点:时间占用短,文件可断点传输。操作步骤少。(绝大部分时间都是在文件的网络传输)
第三种方案的缺点:可能引起未知问题,暂时未发现。
下面介绍一下第三种方案d迁移步骤:
保证Mysql版本一致,安装配置基本一致(注意:这里的数据文件和库表结构文件都指定在同一目录data下)
停止两边的Mysql服务(A服务器—迁移—>B服务器)
删除B服务器Mysql的data目录下所有文件
拷贝A服务器Mysql的data目录下除了ib_logfile和.err之外的文件到B服务器data下
启动B服务器的Mysql服务,检测是否发生异常
迁移完成后,服务启动正常,未发现其他异常问题。
备注:经测试,源mysql的安装目录及数据文件目录 可以与 目标Mysql的安装目录及数据文件目录 不一致。
此时,只需要拷贝您所需移动的dbname(如上:pa、testdb)及’mysql’和’ibdata1’,即可。数据库的数据加载进去,正在使用是不能够移出来的..
你把数据整理好之后要把数据库进行分离出来,然后才可以拷贝到其他移动磁盘上
不然,它会提示出磁盘受保护或者文件正在使用…先要把数据库分离在备份。
分离操作:
1.找到你需要备份的数据库
2.单击右键的所有任务
3.分离数据库
教你如何对Mysql数据库进行转移
利用SQLyogEnt对数据库进行转移
还没有评论,来说两句吧...