我无法在另一台电脑上连接数据库。我已禁用防火墙并按照另一个论坛中的说明进行操作。
我是否应该在另一台电脑上安装软件或第三方软件来连接数据库?我正在使用 XAMPP 服务器。
Dim con As New MySqlConnection("server=192.xxx.x.xxx;port=3306;database=sampledatabase;uid=root")
答案1
如果我对您的查询的理解是正确的(您无法以 root 身份远程登录到 MySQL/MariaDB 数据库 - 假设这是全新安装)——回答您的问题—— No there is no need to install any additional software
。
您确实需要更新 MySQL/MariaDB 安装的一些详细信息(以下选项需要在安装 MySQL/MariaDB 的 PC 上完成)
选项 1:
创建一个对您关心的数据库具有某些权限的新用户(代码示例如下 - 根据您的需要进行编辑)
CREATE USER 'someuser'@'%' IDENTIFIED BY 'somepassword';
GRANT USAGE ON *.* TO 'someuser'@'%' IDENTIFIED BY 'somepassword'
CREATE DATABASE IF NOT EXISTS 'someuserdb';
GRANT ALL PRIVILEGES ON 'someuserdb'.* TO 'someuser'@'%';
上面的代码做了几件事:
- 创建一个名为“someuser”的新用户名,密码为“somepassword”,并允许 someuser 从任何地方登录(‘someuser’@‘%’) - 您可以通过添加正确的详细信息来限制远程 IP / 主机登录 - 只需将 % 替换为连接 PC 的 IP 或主机名。
- 授予某些用户使用权(即允许用户登录)
- 创建名为 someuserdb 的数据库(如果不存在)
- 授予 someuser 对 someuserdb 的全部权限
选项 2:
允许 root 用户名远程登录
默认情况下,root 有
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'.....
因此,仅允许从本地主机(安装了 MariaDB/MySQL 服务器的 PC)登录 root 帐户。
您可以通过以下方式改变:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'someIPorHostname.%'
IDENTIFIED BY 'some_characters'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
这个想法是,您要将其从“root”@“localhost”更改为允许 root 从您选择的某个远程 IP 或主机名登录。在更改该访问权限后,您需要刷新权限以使该访问权限确认到数据库中。
注意:可能有充分的理由不允许从远程位置进行 root 登录 - 因此尽管可以使用此选项,但我建议使用选项 1。
归功于堆栈溢出因为我的大部分答案都来自那里。
希望这可以帮助。