Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有关mysql gem新方法身份验证的问题_Mysql_Ruby On Rails_Rubygems - Fatal编程技术网

有关mysql gem新方法身份验证的问题

有关mysql gem新方法身份验证的问题,mysql,ruby-on-rails,rubygems,Mysql,Ruby On Rails,Rubygems,我通常在windows上使用MYSQL4.1编写代码。mysql gem版本是2.8.1。在我的设置中,当我使用mysql gem访问mysql服务器时,我会给出sql服务器的根用户名和密码。在rails db配置文件中,我将用户名指定为“root”,将其密码和主机指定为“localhost”。我的rails服务器和Mysql服务器运行在同一台机器上 但是最近我不得不做一个项目,在这个项目中我必须访问安装在客户端站点上的MYSQL服务器。这是一台linux机器。我不确定sql server的版本

我通常在windows上使用MYSQL4.1编写代码。mysql gem版本是2.8.1。在我的设置中,当我使用mysql gem访问mysql服务器时,我会给出sql服务器的根用户名和密码。在rails db配置文件中,我将用户名指定为“root”,将其密码和主机指定为“localhost”。我的rails服务器和Mysql服务器运行在同一台机器上

但是最近我不得不做一个项目,在这个项目中我必须访问安装在客户端站点上的MYSQL服务器。这是一台linux机器。我不确定sql server的版本号。为了访问它,我得到了SSH的用户名和密码,以及SQL server的根用户名和根密码。但是为了访问该机器,在mysql新方法中,我必须指定ssh登录名和用户密码,而不是sql用户和密码。 我不能访问数据库,如果我给MySql根用户和密码。
因此,mysql.new(机器的公共IP、ssh登录id、ssh登录密码、db_名称)在mysql所在的位置工作。new(机器的公共IP、root、root密码、db_名称)不工作。我不确定,我理解正在发生的事情。所以,我的问题是,有人能解释这种登录行为吗?为什么我不能使用sql server的root登录名和root密码访问mysql服务器

听起来您需要在远程数据库中创建一个允许远程登录的用户。根帐户通常没有从“%”登录的权限。尝试查看mysql.user表以查看权限。然后,您可能想看看mysql.com开发人员关于设置帐户和安全性的文档。那里的答案将比这里给出的更全面。

要进一步阐述adamaig所说的内容:

当您以root用户身份登录MySQL控制台时,请执行以下操作:

use mysql;
select User, Host from user;
MySQL应该为您提供一个包含帐户及其各自主机的表。您可能会看到root用户只能从“127.0.0.1”或“localhost”登录。您可能还会看到另一个帐户,其凭据与提供给您的ssh帐户的凭据相同

另外,我建议不要给root用户从任何地方登录的权限,这是一种安全风险

但是,如果您直接ssh到机器中(使用类似于Windows的东西),您就可以从那里以root用户身份登录