今天游戏和服,发现数据备份好后,导入不到目标库中,
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