Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
使用Sequel Pro在Vagrant实例上连接MySQL_Mysql_Vagrant_Sequelpro - Fatal编程技术网

使用Sequel Pro在Vagrant实例上连接MySQL

使用Sequel Pro在Vagrant实例上连接MySQL,mysql,vagrant,sequelpro,Mysql,Vagrant,Sequelpro,我在《流浪者》上运行拉威尔,我正在尝试连接Sequel Pro 我刚刚开始使用Vagrant,我已经学习了一些关于连接Sequel Pro的教程,但是都没有成功 这是我的流浪汉档案: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure('2') do |config| config.vm.hostname = 'laravel' config.vm.boot_timeout = 3600 config.vm.box = 'deb

我在《流浪者》上运行拉威尔,我正在尝试连接Sequel Pro

我刚刚开始使用Vagrant,我已经学习了一些关于连接Sequel Pro的教程,但是都没有成功

这是我的流浪汉档案:

# -*- 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
my.cnf

bind-address            = 127.0.0.1 
这是我的
/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
编辑: 将绑定地址更改为0.0.0.0仍然不起作用 在Sequel Pro中我有

MySQL Host: 0.0.0.0
username: root
Password: (mysql password)
SSH Host 0.0.0.0
SSH User: vagrant
SSH Password: vagrant
编辑: 这是我的流浪者主机文件-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

问题是,您在my.cnf中设置的MySQL现在只能通过Vagrant服务器中的
localhost
进行连接:

bind-address            = 127.0.0.1 
要在MySQL中启用网络,您应该将
my.cnf
中的设置更改为:

bind-address            = 0.0.0.0
然后重新启动MySQL服务。不确定这在Vagrant中是如何发生的,但在Ubuntu中,您会输入如下命令:

sudo service mysql restart
您可能需要检查您的MySQL用户权限,以确保MySQL中的用户实际上可以从任何IP地址使用,有时它们也被严格设置为
localhost
127.0.0.1

如中所述:

服务器按如下方式处理不同类型的地址:

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

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

  • 如果地址是IPv4映射的地址,则服务器接受该地址的TCP/IP连接(IPv4或IPv6格式)。对于 例如,如果服务器绑定到::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。上显示了所有不同连接类型的详细信息。但是这个截图很好地总结了这一点

基本上,您只需像平常一样设置您的
localhost
/
127.0.0.1
MySQL信息。但是,您还可以将用于SSH的SSH信息添加到服务器中。Sequel Pro将使用该SSH连接来无缝连接MySQL。这可能是处理MySQL网络和用户权限问题的更好方法

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

  • 名称:连接所需的名称
  • MySQL主机:MySQL主机的IP地址,应该是
    localhost
    127.0.0.1
  • 用户名:MySQL数据库用户名
  • 密码:连接到该MySQL数据库用户名的密码
  • 数据库:可选(要连接到的数据库)
  • 端口:默认值为3306,因此只有在您确实必须设置为其他值时才更改此值
现在,您可以为Vagrant安装设置SSH设置:

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

试试看,它可以让您在没有ssh隧道的情况下连接(查看install.sh以了解具体设置)。

关于绑定地址的答案是正确的,但是我发现与其将值更改为0.0.0.0,不如只编辑my.cnf文件并注释掉绑定地址


如果您这样做,然后按照原始答案的其余部分进行操作,您应该能够通过sequel pro连接,您需要做的就是编辑位于此处的绑定地址:

$ sudo nano /etc/mysql/my.cnf
找到将设置为127.0.0.0的绑定地址设置,并将其更改为0.0.0.0

然后重新启动mySQL:

$ sudo service mysql restart
最后一步只是更新权限:

$ mysql -u root -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;"
然后像平常一样连接(将端口更改为您在vagrant文件中设置的端口)


注意,这里有安全问题,因为它是非常开放的,但是对于开发工作来说,它是很好的。

在我尝试此方法之前,以上所有答案都不适用于我:

  • 使用
    vagrant ssh
  • 只需键入
    passwd
    即可设置新密码。使用密码
    vagrant
    保持一致性
在采取这些步骤后,它将很容易连接


感谢@hugo at

这是我的配置:


Vagrant机器默认值ssh用户ssh密码都是Vagrant对我来说,最重要的部分是使用0.0.0.0作为MySQL主机,而不是127.0.0.1。其他一切都像往常一样(使用SSH)。这对我很有用:


下面是我在MAC上使用mysql workbench连接的vagrant的屏幕截图

必须通过SSH连接到vagrant box。因此,如果您以前连接过,并且对您的Vagrant box进行了任何重大更改(例如销毁/重建),您可能有一个新的私钥,需要刷新
~/.ssh/known_hosts
中的IP地址记录。为此,在vim中打开文件,只需删除以vagrant box IP地址开头的行。

可以使用
vagrant p