使用 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
我正在尝试从另一个 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