跨服务器备份:
服务器a:192.168.5.193
测试数据库testdb
服务器b:192.168.5.194
目标:将服务器a上的测试数据库定时备份到服务器b中
需要技术:mysqldump + crontab
步骤:
1.修改mysql远程连接访问权限
修改mysql的配置文件/mysql/my.conf,将bind-address后面增加远程访问ip地址或者禁掉这句话就可以让远程机登陆访问了。
2.增加服务器授权用户
在服务器a上:
create user 'username'@'host' identified by 'password';
说明:
grant privileges on databasename.tablename to 'username'@'host'
说明:
本测试实例mysql语句为:
create user 'why'@'192.168.5.194' identified by '123456'; grant privileges on *.* to 'why'@'192.168.5.194'; flush privileges; /*刷新一下权限*/
这样就建立了如下的用户权限表,在服务器端查看一下,命令为:
select user,host from mysql.user;
3.在服务器b上编写如下脚本
#!/bin/bash my_user=why #服务器b的用户(必须是已经授权的) my_pass=123456 #服务器a的用户密码 my_host=192.168.5.193 #要连接的服务器a my_db1=testdb #想要导出的服务器a的数据库(需要授权) mm_dir=/home/fabric/backup/t2.sql #导出的地址 mysqldump_cmd=/usr/bin/mysqldump #mysqldump的可运行指令地址 local_usr=root #本地数据库的用户名 local_pass=000000 #本地数据库的密码 mysql_cmd=/usr/bin/mysql #mysql的可运行指令地址 $mysqldump_cmd -h $my_host -u $my_user -p$my_pass $my_db1 > $mm_dir $mysql_cmd -u $local_usr -p$local_pass $my_db1 < $mm_dir
在命令行下进行测试,看看是否能够备份。
查看服务器a上的数据,这里的图形化工具是mysql workbench(使用起来还不错)
运行如上脚本后,查看服务器b的数据。
/可以看到这里备份成功了/
1 * * * * ~/backupdatabases.sh
以上命令使得,每小时的第一分钟,对数据库进行备份,当然也可以随意修改一些时间。
如对本文有疑问, 点击进行留言回复!!
MySQL-关系代数-并、交、差、等值连接、自然连接、左连接。。。
【MySQL牛客】10.获取所有非manager的员工emp_no
网友评论