使用Sequel Pro连接到Vagrant实例上的MySQL

use*_*109 10 mysql vagrant sequelpro

我在Vagrant上运行Laravel,我正在尝试连接Sequel Pro.

我刚刚开始使用Vagrant,我已经按照一些关于连接到Sequel Pro的教程,但是他们都没有成功.

这是我的Vagrant文​​件:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure('2') do |config|
config.vm.hostname = 'laravel'
config.vm.boot_timeout = 3600
config.vm.box = 'debian-73-i386-virtualbox-puppet'
config.vm.box_url = 'http://puppet-vagrant-boxes.puppetlabs.com/debian-73-i386-virtualbox-puppet.box'

config.vm.network :forwarded_port, guest: 8000, host: 8000
config.vm.network :forwarded_port, guest: 8500, host: 8500

config.vm.provider :virtualbox do |vb|
vb.customize ['modifyvm', :id, '--memory', '1536']
end

config.vm.provision :puppet do |puppet|
puppet.manifests_path = 'puppet/'
puppet.manifest_file  = 'init.pp'
puppet.module_path    = 'puppet/modules/'
# puppet.options      = '--verbose --debug'
end

end
Run Code Online (Sandbox Code Playgroud)

来自my.cnf:

bind-address            = 127.0.0.1 
Run Code Online (Sandbox Code Playgroud)

这是我的 /etc/hosts

127.0.0.1       localhost
127.0.1.1       laravel
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)

编辑:更改绑定地址为0.0.0.0仍然不起作用在续集专业我有

MySQL Host: 0.0.0.0
username: root
Password: (mysql password)
SSH Host 0.0.0.0
SSH User: vagrant
SSH Password: vagrant
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的vagrant hosts文件 - etc/hosts

这是我的主机文件

127.0.0.1       localhost
127.0.1.1       laravel
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)

Jak*_*uld 21

问题是你现在设置的MySQL my.cnf只能通过localhostVagrant服务器连接:

bind-address            = 127.0.0.1 
Run Code Online (Sandbox Code Playgroud)

要在MySQL中启用网络,您应该将该设置更改my.cnf为:

bind-address            = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

然后重启MySQL服务.不确定在Vagrant中会发生什么,但在Ubuntu中你会输入如下命令:

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

您可能必须检查您的MySQL用户权限,以确保MySQL中的用户实际上可以从任何IP地址使用 - 有时它们被严格设置为localhost127.0.0.1- .

正如MySQL官方文档中所述:

服务器处理不同类型的地址,如下所示:

  • 如果地址为0.0.0.0,则服务器接受所有服务器主机IPv4接口上的TCP/IP连接.

  • 如果地址为::,则服务器接受所有服务器主机IPv4和IPv6接口上的TCP/IP连接.使用此地址允许所有服务器接口上的IPv4和IPv6连接.

  • 如果地址是IPv4映射地址,则服务器接受IPv4或IPv6格式的该地址的TCP/IP连接.例如,如果服务器绑定到:: ffff:127.0.0.1,则客户端可以使用--host = 127.0.0.1或--host = :: ffff:127.0.0.1进行连接.

  • 如果地址是"常规"IPv4或IPv6地址(例如127.0.0.1或:: 1),则服务器仅接受该IPv4或IPv6地址的TCP/IP连接.

也就是说,将MySQL或任何数据库服务器暴露给世界是不可取的.但在像这样的本地开发的情况下是可以接受的.

因此,如果无法启用MySQL网络,您还可以使用Sequel Pro中内置的SSH隧道功能通过SSH连接到MySQL.有关所有不同连接类型的详细信息,请参见官方Sequel Pro网站.但是这个截图总结得很好.

基本上你只是像往常一样设置localhost/ 127.0.0.1MySQL信息.但是,您还要将用于SSH的SSH信息添加到服务器中.Sequel Pro将使用该SSH连接进行隧道连接并无缝连接到MySQL.这可能是更好的处理方式,而不是处理MySQL网络和用户权限问题.

在此输入图像描述

对于Sequel Pro中的SSH隧道,您只需执行以下操作:

  • 名称:连接所需的名称.
  • MySQL主机:MySQL主机的IP地址应该是localhost127.0.0.1
  • 用户: MySQL数据库用户名.
  • 密码:连接到该MySQL数据库用户名的密码.
  • 数据库:可选(您要连接的数据库)
  • 端口:默认值为3306,因此只有在您必须设置为其他任何内容时才更改此设置.

现在,您可以为Vagrant安装设置SSH设置:

  • SSH主机: Vagrant机器的主机名或IP地址.
  • SSH用户:该Vagrant机器的SSH用户名.
  • SSH密码:连接到该SSH用户的密码.
  • SSH端口: 默认值为22,因此只有在您必须设置为其他任何内容时才更改此设置.


pan*_*ang 7

这是我的同意:

在此输入图像描述

流浪汉机器默认的ssh用户ssh密码都是流浪汉.


Med*_*tnz 5

您需要做的就是编辑位于此处的绑定地址:

$ sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)

找到bind_address设置,该设置将设置为127.0.0.0并将其更改为0.0.0.0

之后重启mySQL:

$ sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

最后一步是更新权限:

$ mysql -u root -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;"
Run Code Online (Sandbox Code Playgroud)

然后像往常一样连接(将端口更改为您在vagrant文​​件中设置的内容).

续集专业设置

请注意,这里存在安全问题,因为它们都非常开放,但对于开发工作来说很好.