mysqldump的远程数据备份

 mysqldump usage:

Shell>mysqldump -hsrc -usrc_usr -psrc_pwd src_db src_tbl | mysql -hdest -udest_root -pdest_pwd -C dest_db

源主机IP地址:src
源MYSQL服务器登陆名:src_usr (一般为Linux系统登陆名)
源MYSQL服务器登陆密码:src_pwd
源MYSQL服务器数据库名:src_db
源MYSQL服务器数据库表名(可选项):src_tbl

目标主机IP地址:dest
目标MYSQL服务器登陆名:dest_root
目标MYSQL服务器登陆密码:dest_pwd
目标MYSQL服务器数据库:dest_db

### 解决 `mysqldump` 使用 IP 连接备份数据库时的权限问题 当使用 `mysqldump` 工具通过指定 IP 地址连接到 MySQL 数据库进行备份时,如果遇到错误提示 `Access denied for user 'root'@'<IP>' (using password: YES)`[^1],则表明可能存在以下几种常见原因及对应的解决方案: #### 1. **用户名或密码不匹配** - 确认所提供的用户名和密码是否正确无误。即使是最简单的拼写错误也可能引发此类问题。 - 测试方法可以先单独尝试用相同参数登录MySQL服务端查看是否有异常响应: ```bash mysql -u root -p -h <目标服务器IP> ``` 若同样遭遇拒绝接入的情况,则基本锁定为认证资料不符所致[^2]。 #### 2. **用户未授权给定IP地址访问** - 默认情况下,许多MySQL实例只为本地循环接口(`localhost`)分配了管理员级特权,对于外部来源请求往往处于封锁状态。 - 查看现有用户的权限分布状况可执行下面SQL语句: ```sql SELECT Host, User FROM mysql.user; ``` - 如果发现缺少针对具体公网IP或是通配符形式(%代表任意主机)的相关条目,则需要新增相应许可记录。例如允许来自某固定办公网段机器操作如下所示: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY '<secure_password>'; FLUSH PRIVILEGES; ``` #### 3. **防火墙阻止远程连接** - 检查操作系统层面是否存在防护策略阻挡了外界对该端口(通常是3306)发起的数据交换活动。 - Linux平台可通过iptables命令核查现状以及开放所需通道: ```bash sudo iptables -L -n | grep 3306 sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT ``` #### 4. **MySQL配置文件限制绑定地址** - 打开my.cnf(my.ini Windows环境下),查找bind-address字段,默认值一般设成127.0.0.1意味着仅接受内部回环通讯。 - 修改此项使其监听所有可用网络适配器或者明确指向企业内联网出口位置后再重启服务生效: ```ini bind-address = 0.0.0.0 ``` 完成上述排查步骤后再次启动备份进程应当能顺利解决问题。下面是经过优化处理后的完整示例代码片段供参考应用: ```bash #!/bin/bash # 定义变量方便维护管理 DB_USER="root" DB_PASS="your_secure_password_here" DB_HOST="<target_server_ip>" BACKUP_DIR="/path/to/backup/folder" # 构建实际调用指令含日期标签区分不同批次成果物 mysqldump -u${DB_USER} -p"${DB_PASS}" -h ${DB_HOST} your_database_name \ > "${BACKUP_DIR}/db_backup_$(date '+%Y%m%d%H%M%S').sql" ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值