详细说linux下mysql的备份
昨天试了一个中午,用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 表名)