连接到局域网中另一台PC上的mysql服务器

时间:2012-02-13 08:27:48

标签: mysql

我在本地网络上的PC上安装了mySQL,如何连接到它?我也在这台计算机上安装了mySQL(我想用它来连接数据库)。

我尝试了以下但是它无法正常工作

mysql -u user -h 192.168.1.28:3306 -p password
ERROR 2005 (HY000): Unknown MySQL server host '192.168.1.28:3306' (0)

编辑: 谢谢你的帮助。无论如何,我没有3306连接,我有另一个问题。 MACBOOK是我的客户端计算机的名称。

mysql -u user -ppassword -h 192.168.1.28 
ERROR 1045 (28000): Access denied for user 'user'@'MACBOOK' (using password: YES)

感谢。

10 个答案:

答案 0 :(得分:13)

这是一个非常有用的问题!由于我们需要使用集中式数据库运行应用程序,因此我们应该授予LAN中该计算机的权限,以访问LAN PC中托管的特定数据库。这是解决方案!

  1. 转到MySQL服务器
  2. 键入以下代码以授予其他PC
  3. 的访问权限
      

    mysql>将的所有权限授予'root'@'%'标识   “超级用户口令”; MySQL的>冲洗权限;

    将'%'替换为您要授予其访问权限的IP!

答案 1 :(得分:5)

由于您的本地计算机上有mysql,因此您无需费心使用本机的IP地址。只需使用localhost:

mysql -u user -p

mysql -hlocalhost -u user -p

如果您无法使用此功能登录,则必须找出MySQL服务器中存在的用户名(user @ host)。这是你做的:

步骤01)启动mysql,以便没有密码不需要密码并拒绝TCP / IP连接

service mysql restart --skip-grant-tables --skip-networking

请记住,禁用添加用户,授予和撤消权限的标准SQL。

步骤02)显示用户和主持人

select concat(''',user,'''@''',host,'''') userhost,password from mysql.user;

步骤03)检查密码以确保其正常工作

select user,host from mysql.user where password=password('YourMySQLPassword');

如果您的密码没有为此查询生成输出,则密码错误。

如果您的密码为此查询生成输出,请查看用户和主机。如果您的主机值为'%',您应该可以从任何地方进行连接。如果您的主机是“localhost”,您应该能够在本地连接。

让用户定义'root'@'localhost'。

完成所需操作后,只需正常重启mysql

service mysql restart

如果您能够在macbook上成功连接,请运行以下查询:

SELECT USER(),CURRENT_USER();

USER()报告您如何尝试在MySQL中进行身份验证

CURRENT_USER()报告如何允许您在MySQL中进行身份验证

让我们知道会发生什么!!!

更新2012-02-13 20:47美国东部时间

登录远程服务器并重复步骤1-3

查看是否有任何用户允许远程访问(即mysql.user中的主机是'%')。如果不这样做,则将'user'@'%'添加到mysql.user。

答案 2 :(得分:4)

按照简单的清单:

  1. 尝试ping机器ping 192.168.1.2
  2. 确保MySQL在指定端口3306上运行,即尚未修改。
  3. 确保其他PC未阻止该端口上的入站连接。如果是,请添加防火墙例外以允许端口3306上的连接,并允许一般的入站连接。
  4. 如果您可以发布在尝试建立连接时显示的确切错误,那就太好了。

答案 3 :(得分:2)

mysql -u user -h 192.168.1.2 -p

这应该足以连接到MySQL服务器。 如果启用了与MySQL服务器的远程连接,请检查192.168.1.2的防火墙。

此致

答案 4 :(得分:1)

连接到任何mysql数据库应该是这样的:

$mysql -h hostname -Pportnumber -u username -p(然后输入)

然后它会要求输入密码。注意:端口号应该更接近-P或者它将显示错误。确保你知道你的mysql端口是什么。默认值为3306,在这种情况下指定端口是可选的。如果是其他任何你需要用-P提及端口号,否则它将显示错误。

例如: $mysql -h 10.20.40.5 -P3306 -u root -p(然后输入)

Password:My_Db_Password

关于您使用的产品的Gubrish。

mysql>_

注意:如果您尝试在不同位置连接数据库,请确保您可以ping该服务器/计算机。

$ping 10.20.40.5

它应该在你回到PONG的时候返回TTL。 如果它说目标无法访问,那么无论如何都无法连接到远程mysql。

在这种情况下,请与网络管理员联系或检查与计算机的电缆连接,直至目标计算机结束。或者检查您是否有LAN / WAN / MAN或Internet / Intranet / Extranet工作。

答案 5 :(得分:0)

您不必在IP之后指定':3306',它是MySQL的默认端口。

如果您的MySQL服务器使用3306以外的其他端口运行,那么您必须添加'-P [port]'而不是将其添加到IP地址。

MySQL客户端无法识别语法“host:port”,您必须使用-P [port]。

顺便说一句,如果您使用'-p password',它将无效,并会再次询问您密码。您必须将密码粘贴到-p:-ppassword。 (但是,这是一个非常糟糕的习惯,因为任何可以在您的服务器上执行PS的人都可以看到普通密码......)

答案 6 :(得分:0)

实际上你不应该在主机名中指定端口。 Mysql有端口的特殊选项(如果端口与默认端口不同)

有点

mysql --host=192.168.1.2 --port=3306

答案 7 :(得分:0)

你应该用这个:

>mysql -u user -h 192.168.1.2 -P 3306 -ppassword

或者这个:

>mysql -u user -h 192.168.1.2 -ppassword

...因为3306是默认端口号。

mysql Options

答案 8 :(得分:0)

可以在MySQL Workbench机器上安装MySQL Server的用户

如果您在MySQL Server PC上使用或拥有MySQL Workbench,则只需单击几下即可完成此操作。 仅推荐用于开发环境

  1. 连接到MySQL Server

Connect to MySQL Server with MySQL Workbench

  1. Users and Privileges中找到此选项Navigator,然后单击它。

Users and Privileges - MySQL Workbench

  1. 选择root个用户并将Limit to Hosts Matching的值更改为%

Users and Privileges - MySQL Workbench

  1. 点击底部的Apply

这应该使root用户可以从远程计算机访问MySQL Server。

答案 9 :(得分:0)

在Ubuntu中,请按照以下步骤操作:

  1. /etc/mysql/mysql.conf.d上设置绑定地址

bind-address = 127.0.0.1更改为bind-address = 192.24.805.50 # your IP

  1. 授予远程计算机的权限

    mysql>在上授予所有特权。以GRANT OPTION选项将'any'密码标识为'root'@'[remoteip]';

  2. 然后尝试从远程计算机连接

    mysql -u root -h 192.24.805.50 -p