使用 Ubuntu 连接远程 MySQL 服务器的不同方法
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
- 从 Ubuntu 20.04 客户端机器到 Ubuntu 20.04 服务器机器进行数据操作
- 从 Ubuntu 20.04 客户端计算机到 Ubuntu 20.04 服务器计算机以停止/启动 MySQL 服务器
从 Ubuntu 20.04 客户端计算机连接到 Ubuntu 20.04 服务器计算机以进行数据操作
用自定义用户连接
在这里,我们将学习如何连接驻留在远程 MySQL 服务器中的自定义用户。 我们在远程 MySQL 服务器中创建了一个名为 mehvish 的用户,并授予了所有权限。
mysql> CREATE USER "mehvish"@"%" IDENTIFIED BY "PASSWORD";
#here % sign shows that this user can be connected remotely
要连接到远程 MySQL 服务器,我们必须在我们的机器上安装 mysql-client。 在 Microsoft Windows 10 中,mysql-client 在安装 MySQL 服务器时会自动安装。
您可以按照本文在客户端机器上安装 MySQL。
要建立远程连接,我们需要托管 MySQL 服务器的主机的 IP 地址、用户名和该特定用户帐户的密码。 要检索该 IP 地址,我们在 MySQL 服务器所在的 Ubuntu 上使用 ip a 或 ifconfig 命令。
一旦我们知道了 IP 地址、用户名和密码,我们就可以使用以下命令连接到远程 MySQL 服务器。
# Syntax
# mysql -h hostIP -u username -p password
$ mysql -h 192.168.56.102 -u mehvish -p ******
如果您第一次尝试建立远程连接,您很可能会遇到以下错误。
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.2.15:3306' (10060)
为了摆脱这个错误,我们需要修改MySQL服务器上的配置文件。 我们使用 vim 文本编辑器来编辑配置文件,但您可以使用您的任何选择。
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
打开文件后,找到 [mysqld] 部分下的绑定地址,并按照以下屏幕截图对其进行评论。 我们为什么要评论绑定地址选项?
由于其默认行为,MySQL 服务器不允许远程连接; 它只允许本地主机连接到 MySQL 服务器。 这就是注释绑定地址并允许远程客户端计算机与 MySQL 服务器建立连接的原因。
或者,我们可以执行以下操作而不是对 bind_address 进行注释。
- 我们可以将 bind-address 的值从 127.0.0.1 更改为 0.0.0.0。
- 如果没有bind-address选项,我们可以写skip-networking和skip-bind-address。
我们可以使用以下选项使用 vim 文本编辑器编辑和保存配置文件。
- 按 I 编辑文件。
- 按 Esc 退出编辑模式。
- 按 Esc,键入 :w,然后按 Enter 键保存文件。
- 按 Esc,键入 :q,然后按 Enter 退出文件。
- 按 Esc,键入 :wq,然后按 Enter 一步保存并退出文件。
- 按 Esc,键入 :q!,然后按 Enter 以放弃所有更改退出文件。
我们必须在托管 MySQL 服务器的机器上按如下方式重新启动服务。
$ sudo systemctl restart mysql
现在,再次使用以下命令成功连接远程 MySQL 服务器中的 mehvish 用户帐户。 请记住,我们在本地计算机上使用以下查询。
$ mysql -h 192.168.56.102 -u mehvish -p ******
与 root 用户连接
在深入细节之前,让我们检查一下 root 用户是否接受远程连接。 我们可以在托管 MySQL 服务器的 Ubuntu 上使用以下命令。
mysql> SELECT USER, HOST from mysql.user;
输出:
您是否看到 root 用户只能从 localhost 连接? 我们必须通过使用以下命令远程连接它来授予远程访问权限。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';
此外,使用以下命令重新启动 MySQL 服务器。
$ sudo systemctl restart mysql
现在,检查 root 用户是否接受远程连接。 看到,服务器机器上root用户的host是%,说明我们可以远程连接root账号了。
现在,我们可以使用以下查询从本地计算机连接 root 用户来读取/写入数据。
$ mysql -h 192.168.56.102 -u root -p ******
如果我们想要启动、停止和重启 MySQL 服务器怎么办? 为此,我们必须在 MySQL 服务器的 shell 上,这意味着我们必须以在我们的机器上打开服务器 shell 的方式进行连接。
从 Ubuntu 20.04 客户端计算机连接到 Ubuntu 20.04 服务器计算机以启动、停止和重新启动服务器
我们必须按照给定的步骤使用安全外壳(也称为安全套接字外壳)连接远程服务器。
- 安装 ssh 以获得 shell 访问托管在 Ubuntu 机器上的 MySQL 服务器的权限。
-
现在,配置 ssh。 然后,打开主机(本地机器)上的终端,并写入正确的凭据以连接到远程服务器。
您可以根据自己的情况使用以下任何一种。
- 使用 ssh remote_host 命令。 当我们在远程和本地机器上拥有相同的用户名时,它是最直接和最常用的。
- 如果远程机器上的用户名与本地机器上的用户名不同,请使用 ssh remote_username@remote_host。 这将使您能够访问服务器计算机的 shell。
- 我们可以使用以下命令来按要求运行。
启动 MySQL 服务器:
$ sudo systemctl start mysql
停止 MySQL 服务器:
$ sudo systemctl stop mysql
重启 MySQL 服务器:
$ sudo systemctl restart mysql
检查MySQL服务器状态:
$ sudo systemctl status mysql
请记住,MySQL 服务器在您的端名为 mysqld,那么您可能必须使用如下命令。
$ sudo /etc/init.d/mysql restart
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。