常规和ssh连接mysql的区别

2023年 8月 3日 59.5k 0

MySQL是一款流行的关系型数据库管理系统,它支持多种连接方式。常规连接和SSH连接是其中两种常见方式。下面我们将介绍它们之间的区别。

常规和ssh连接mysql的区别

常规连接:

// 连接MySQL服务器
$host = 'localhost'; // 主机名
$user = 'root'; // 用户名
$password = '123456'; // 密码
$database = 'test'; // 数据库名
$conn = mysqli_connect($host, $user, $password, $database);
// 检查连接是否成功
if (!$conn) {
die('连接失败: ' . mysqli_connect_error());
}
// 查询数据
$sql = 'SELECT * FROM `user`';
$result = mysqli_query($conn, $sql);
// 处理查询结果
if (mysqli_num_rows($result) >0) {
while ($row = mysqli_fetch_assoc($result)) {
echo '用户名: ' . $row['username'] . ', 密码: ' . $row['password'] . '
';
}
} else {
echo '没有结果';
}
// 关闭连接
mysqli_close($conn);

常规连接的代码比较简单,用mysqli_connect()函数连接MySQL服务器,然后用mysqli_query()函数执行查询,最后用mysqli_fetch_assoc()函数处理查询结果。这种连接方式适用于在本地开发和测试。

SSH连接:

// 连接MySQL服务器
$host = 'localhost'; // 主机名
$user = 'root'; // 用户名
$password = '123456'; // 密码
$database = 'test'; // 数据库名
// SSH设置
$ssh_host = 'ssh.example.com'; // SSH主机名
$ssh_user = 'sshuser'; // SSH用户名
$ssh_password = 'sshpassword'; // SSH密码
$ssh_port = 22; // SSH端口
// SSH到MySQL服务器
$connection = ssh2_connect($ssh_host, $ssh_port);
if (ssh2_auth_password($connection, $ssh_user, $ssh_password)) {
// SSH认证成功
$tunnel = ssh2_tunnel($connection, $host, 3306);
// 连接MySQL服务器
$conn = mysqli_connect('127.0.0.1', $user, $password, $database, '3306', $tunnel);
// 检查连接是否成功
if (!$conn) {
die('连接失败: ' . mysqli_connect_error());
}
// 查询数据
$sql = 'SELECT * FROM `user`';
$result = mysqli_query($conn, $sql);
// 处理查询结果
if (mysqli_num_rows($result) >0) {
while ($row = mysqli_fetch_assoc($result)) {
echo '用户名: ' . $row['username'] . ', 密码: ' . $row['password'] . '
';
}
} else {
echo '没有结果';
}
// 关闭连接
mysqli_close($conn);
} else {
// SSH认证失败
die('SSH认证失败');
}

SSH连接的代码相对复杂,需要用ssh2_connect()函数连接SSH服务器,用ssh2_auth_password()函数进行SSH认证,然后用ssh2_tunnel()函数创建隧道,最后用mysqli_connect()函数连接MySQL服务器和数据库。SSH连接的好处是可以通过SSH隧道连接到远程的MySQL服务器,增加了数据传输的安全性。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论