mysql-主从备份问题小结
一:防火墙
常用命令
firewall-cmd --state 或 systemctl status firewalld # 查看状态
systemctl start firewalld
# 启动
systemctl stop firewalld #关闭
iptables -I INPUT -s 0/0 -p tcp --dport 3306 -j ACCEPT # 可让其它域名访问3306端口,即访问防火墙
firewall-cmd --add-port=80/tcp --permanent # 类似上面一条命令,即让80端口可让其它域名访问(只在nginx测试了!!!!)。
注意:systemctl restart firewalld(上面命令需要重启防火墙设置)
iptables -L -n|grep 3306 # 查看3306端口是否
二:修改账号权限
即指定的账号可在其它域名下访问该数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
查看授权
select User,authentication_string,Host from user
三:修改访问权限
授权账号:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码';
*.* : 匹配全部,第一个*代表数据库,第二个星号代表table(表),@前特指账号,@后特特指host(%代表全部)
授权后刷新权限:flush privileges;
bind-addr:0.0.0.0
四:master配置
server_id = 2 #唯一标识,主库从库不能重复 log_bin = mysql-bin #开启日志 #binlog_format="mixed" #日志记录的格式 max_binlog_size = 512M #wnjiandaxiao expire_logs_day = 3 #日志有效期(天) binlog_do_db = test1,test2 #日志记录那些数据库 binlog_ignore_db = mysql,performance_schema,information_schema #日志记录忽略那些数据库的 bind-address = 0.0.0.0
备份数据库:mysqldump -uroot -pmysql--all-databases --lock-all-tables > ~/master_db.sql
查看master:SHOW MASTER STATUS;
授权备份账号:grant replication slave on *.* to "slave_name"@"%" identified by "password";
五:salve配置
# mysalve server_id=53
备份master:mysql -uroot-pmysql < master_db.sql (在客户端内也可用 . 或 source 备份)
备份准备(结合master的SHOW MASTER STATUS):
change master to master_host='master域名', master_user='slave_name', master_password='slave_password',master_log_file='mysql-bin.000001', master_log_pos=???;
开始备份:mysql> start slave; //启动salve进程
查看备份:mysql> show slave status\G; //查看slave状态
六:salve账号
grant replication slave on *.* to "slave_name"@"%" identified by "password";
七:检测两个服务器是否联通mysql
telnet 192.168.1.107 3306
学习资料
mysql(GRANT语法):https://dev.mysql.com/doc/refman/8.0/en/grant.html#grant-overview
博客:https://www.cnblogs.com/hellotracy/articles/5143960.html
Systemd: http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html