① 问题:xtrabackup全部备份时,提示无法连接到数据库。
innobackupex --user=root --password='QWer90-=' /xtrabackup/
执行此条命令是提示无法连接到数据库(Access denied for user 'root'@'localhost' )。有两种可能,第一种:密码错误,检查密码;第二种:需要指定--host,否则也会提示这个错误。
第二种的解决办法:
innobackupex --user=root --password='QWer90-=' --host=localhost /xtrabackup/ 这样就可以了,如果提示socket不能连接的话,也可以指定--socket=/tmp/mysql.sock。同理,在远程用户备份的时候,--host可以指定数据库所备份的主机ip。(数据库在授权的时候,它的授权本网段的用户都可以登录本数据库,单并不包括localhost,所以,如果给一个用户授权本网段的(10.0.128.%)主机都可以登录的话,这个用户在数据库所在的主机同样不可以登录,所以,想要在本机上登录的时候,需要把此用户再次单独授于localhost这个权限。)
②数据库备份用户授权(xtrabackup)
、、在mysql中用户
create user xtrabackup@'localhost' identified by 'xtrabackup';
grant reload,lock tables,replicationclient,createtablespace,process,super on *.* toxtrabackup@'localhost' ;
grant create,insert,selectonpercona_schema.* to xtrabackup@'localhost';
下面是此命令的详细解释:
1、MySQL层面:由于要备份MYISAM引擎的表(xtrabackup不能备份MYISAM表,但是它的包装器innobackup可以备份这种表)所以要用到RELOAD,LOCK TABLE。这个权限用于执行FLUSH TABLES WITH READ LOCK、FLUSH ENGINE LOGS。
2、MYSQL层面:REPLICATION CLIENT 这个权限为的是查看二进制日志当前写到了那个位置。
3、MySQL层面:PROCESS 查看MySQL相关连接的进程。
4、MySQL层面:SUPPER 用于在复制环境中执行stop slave | start slave。
5、MySQL层面:create、insert、select;这是因为xtrabackup会创建一个它自己用的表对象。
、、在linux中的用户
1、Linux文件系统层面:由于要写入,读取;所以用户要有对应备份目录的wrx权限。对datadir目录要rx权限。
2、在linux系统中创建一个用于执行备份的用户
# useradd xtrabackupuser
#echo 'xtrabackupuser' | passwd --stdin xtrabackupuser
#mkdir /mysql_backup && chown xtrabackupuser.xtrabackupuser /mysql_backup