今天游戏和服,发现数据备份好后,导入不到目标库中,

mysql -h10.66.125.733 --port 3306 -u sanda -pX12234455  --default-character-set=utf8  sanda_s10 < /data/mysql/8/user.sql

返回

ERROR 1044 (42000) at line 20: Access denied for user 'sanda'@'10.105.%' to database 'sanda_s10'

经查缺少了,以下两个权限:

 

mysql> grant LOCK TABLES on *.*  to sanda@'10.105.%';



mysql> grant alter on *.*  to sanda@'10.105.%';
 

或者就授予全部权限

grant all privileges on *.*  to 'sanda'@'%' identified by 'X12234455';

 

grant all privileges on *.*  to 'sanda'@'%' with grant option;

===========================

2.mysqldump的时候,数据导出到一半多时,发生数据库网络连接断开的异常,而没让和服人员感知到备份过程已中断,鉴于第一次遇到这种异常,我们的和服工具需要加强这块提示,有连接断开的异常及时通知到和服人员,JAVA调用系统指令没错误信息返回,得查查。

 

3.每合一个区前,要检测磁盘够不够用来备份

4.支持在一个页面多个区一起

5.从客户端和服务器合好一个表发送合下一个表的请求,改成服务器合好一个表广播给客户端,这样即使断开连接也不会有问题

6.主键冲突,则忽略这条,不影响后续执行

 

7 2018-10-17 游戏和服遇到一个问题,mysqldump的时候,备份出来的数据为空数据,字节为0,

但命令行在linux手工执行却没问题(误以为mysqldump文件后台执行时也找的到,),也无空格问题,

后来排查下来还是因为java在执行mysqldump 语句时,直接会去/usr/bin/下去找可执行文件,找不到,但还是会生成sql文件。只是数据为空。

利用whereis命令查看mysqldump命令所在路径.如:whereis mysqldump