使用 ruby 远程连接到 mysql2

Remote connection to mysql2 using ruby

我正在尝试从另一个 VM2 连接到安装在 VM1 中的 mysql2。 vm2 使用 ssh 连接到 vm1 并且连接工作正常。 然而,当我尝试连接到 mysql 时,出现此错误:

No connection. Check your internet connection.

我的 config.yaml 文件包含这个:

# SQL connection
:adapter: mysql2
:database: project
:username: bochra
:password: 'password'
:host: ip_@_VM1

我的 Rakefile 的一部分如下所示:

config = YAML.load(File.open('config.yaml'))
puts 'Clearing the database of all data.'
  begin
    client = Mysql2::Client.new(config)
    client.query('DROP TABLE IF EXISTS Employees')
    client.query('CREATE TABLE Employees(id INT, age INT, salary TEXT NOT NULL, PRIMARY KEY(id))')

  rescue
    ErrorHandler.new.show_error :no_connection
  end

问题是我在默认 Ubuntu 上默认安装了 MySQL 安装后我没有真正更改任何设置。 在默认安装中,绑定地址设置为 127.0.0.1,因此我对其进行了注释。在那之后我得到另一个错误它说: Mysql2::Error: Host 'xxxxxx' is not allowed to connect to this MySQL server。所以从服务器(VM1)我使用这个授予了我的用户(bochra)权限:

CREATE USER 'bochra'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'bochra'@'%' WITH GRANT OPTION; and that worked fine for me