mysql异地备份数据库
前一篇文章《windows服务器应用系统自动备份策略》讲到了mysql数据库本地备份策略,如果觉得备份到服务器上不够安全,防止服务器意外硬件损坏致使备份也丢失。那么可以采取异地备份,网上很多windo...
2024.11.15软件生态系统对于分布式系统的概念并不陌生,您无需亲自到场即可与远程托管软件进行交互。
因此,您的MySQL无需驻留在本地机器上即可充分受益于其功能特性,您现在可以让 MySQL 在远程专用服务器上运行,并且仍然可以保证与在本地/桌面计算机上运行 MySQL 的情况相同的数据库安全性和性能。
本文指南将引导我们在 Linux 中设置和启用对MySQL服务器的远程访问,在托管MySQL数据库软件的远程服务器/机器上,我们需要对其执行一些配置步骤,以允许经过身份验证的远程用户访问。
创建一个新的 MySQL 用户建议与既不是根MySQL用户也不是绑定到托管MySQL数据库软件的远程服务器的远程用户一起工作。
通过SSH访问您的远程MySQL服务器和数据库。
$ ssh dnyce@192.168.50.130$ mysql -u root -p要创建一个新的 MySQL 用户,我们将遵循命令语法:
CREATE USER ‘username‘@‘%‘ IDENTIFIED BY ‘your_user_password‘;我们使用符号‘username‘@‘%‘而不是‘username‘@‘localhost‘因为我们希望该用户具有足够的动态性,可以从具有不同 IP 地址的任何其他主机访问MySQL服务器.
mysql> CREATE USER ‘remote_user‘@‘%‘ IDENTIFIED BY ‘password1122‘;让我们授予这个用户一些数据库权限,例如,此用户可以拥有与 root 用户相同的数据库权限,只是 root 用户绑定到主机。
mysql> grant ALL PRIVILEGES ON *.* TO ‘remote_user‘@‘%‘;mysql> FLUSH PRIVILEGES;mysql> exit;启用远程 MySQL 访问默认情况下,MySQL 绑定地址是127.0.0.1,这意味着只有 localhost 用户可以与 MySQL 数据库交互。
要访问其他用户的 IP 地址以访问您的数据库服务器,请导航并打开文件 MySQL 配置文件。
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf或者
$ sudo vi /etc/my.cnf要允许远程访问MySQL 数据库服务器,字段bind-address和mysqlx-bind-address需要被注释掉。
这些配置更改将阻止托管 MySQL 数据库软件的服务器仅依赖 localhost (127.0.0.1) 连接。之后,将允许任何 IP 地址访问它。
保存并关闭文件。
重新启动 MySQL 服务器,然后识别 MySQL 服务器的 IP 地址。
$ sudo systemctl restart mysql$ ifconfig尝试远程 MySQL 数据库访问要直接远程连接到MySQL数据库服务器,请遵循以下 MySQL 语法:
$ mysql -u username -h mysql_server_ip_adress -p在我们的例子中,命令将如下所示:
$ mysql -u remote_user -h 192.168.50.130 -p如果您遇到截屏所示的上述错误,则需要将 MySQL 用户配置为使用本机密码,通过 SSH 重新登录到您的 MySQL 服务器并执行以下命令:
mysql> ALTER USER ‘remote_user‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password1122‘; mysql> exit;之后,退出 MySQL 数据库 shell 并重新启动 MySQL 守护程序。
$ sudo systemctl restart mysql重新尝试远程访问您的 MySQL 服务器。
$ mysql -u remote_user -h 192.168.50.130 -p就像这样,您可以从配置为您选择的 IP 地址的远程客户端计算机直接远程访问 MySQL 数据库服务器。
在防火墙中启用远程 MySQL 访问如果您在远程服务器上启用了防火墙,您可能需要授予对 MySQL 的默认端口3306的访问权限并授予访问权限,remote_ip_address如图所示。
UFW防火墙$ sudo ufw allow from remote_ip_address to any port 3306FirewallD$ sudo firewall-cmd --new-zone=mysqlrule --permanent$ sudo firewall-cmd --reload$ sudo firewall-cmd --permanent --zone=mysqlrule --add-source=remote_ip_address$ sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp$ sudo firewall-cmd --reloadiptables$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT$ sudo iptables -A INPUT -p tcp -s remote_ip_address --dport 3306 -j ACCEPT前一篇文章《windows服务器应用系统自动备份策略》讲到了mysql数据库本地备份策略,如果觉得备份到服务器上不够安全,防止服务器意外硬件损坏致使备份也丢失。那么可以采取异地备份,网上很多windo...
2024.11.15现在是个科技高度发达的时代,我们早已习惯于用手机、电脑来解决生活中的各种问题。作为教师,我们的工作也变得越来越智能化,其中最为实用的一个工具就是查询系统。下面,就让我来详细解释一下,如何使用各种代码、...
2024.11.12建立存储过程,存储过程的名字 dele_src_data按照update_tiem字段删除过期数据use test_db;delimiter //create procedure dele_src_d...
2024.11.12概述从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上。mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MyS...
2024.11.15一个IT从业者,分享IT的各种相关内容。点个关注,不迷路,总有能帮到你的分享内容。什么?帮不到。那谢谢你这么俊/这么美,来关注我!我们为什么需要免密码登录MySQL?比如为了编写脚本的方便。这里分享3...
2024.11.15