Linux系统下备份MySQL的详细笔记

2014-11-24 17:29:30 · 作者: · 浏览: 0

试了一天,在Linux系统下用MySQL的备份工具就是备份不了,现在详细记录下备份步骤


用SQLyogEnt工具备份,数据量大了出问题的,害了我好多次了,容易出错,用mysql自带的工具备份就不错。下面是步骤


1.先用工具SQLyogEnt连上mysql服务器


2.然后编辑下root·localhost用户的密码


3.在Linux服务器上建个目录用来存放备份文件/backdata/


cd /usr/local/mysql/bin/
mysqldump -u用户名 -p密码 --databases 库名 >/backdata/ddd07-11-15.sql


恢复语法
mysqladmin create target_db_name


mysql target_db_name < backup-file.sql


即 mysql 库名 < 文件名


OK,注意,-u后面没有空格, 你只需要把上面的中文换成你的相关信息就可以了!


下面是游戏合区的相关sql语句,是苏枫写的,有待完善
帐号服务器上的修改


update `ACCSTORE0000` set ACCOUNT=Rtrim(ACCOUNT) + '2q'


到另一个区的服务器里找出最大的UID
SELECT max(UID) FROM `ACCSTORE0000`


比如是 1000066668


然后替换
update `ACCSTORE0000` set UID=UID + 1000066668


-------------------------
在游戏服务器上修改


update CHARBASE set name=CONCAT(rtrim(name),'1q')
update `CHARBASE` set ACCID=ACCID + 1000066668


update `ARMY` set NAME=Rtrim(NAME) + '2q'
update `ARMY` set GENNAME=Rtrim(GENNAME) + '2q'


好像GENID也要修改的,修改方法同UID,取另一服务器的最大值得加上
-------------------------


update ``BALANCE`` set ACCOUNT=Rtrim(ACCOUNT) + '2q'
update ``BALANCE`` set ACCID=ACCID + 1000066668


其他要改的表一样处理


重名的话,先吧另一个区的人名表导到要修改的区的数据库里,不过表名别一样,然后就用
where 人名 not in (select 人名 from 表名)