使用Sequel Pro在Vagrant实例上连接MySQL
我在《流浪者》上运行拉威尔,我正在尝试连接Sequel Pro 我刚刚开始使用Vagrant,我已经学习了一些关于连接Sequel Pro的教程,但是都没有成功 这是我的流浪汉档案:使用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
# -*- 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连接
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,因此只有在您确实必须设置为其他值时才更改此值
- SSH主机:您的流浪机器的主机名或IP地址
- SSH用户:该流浪机器的SSH用户名
- SSH密码:连接到该SSH用户的密码
- SSH端口:默认值为22,因此只有在您确实必须设置为其他值时才更改此值
如果您这样做,然后按照原始答案的其余部分进行操作,您应该能够通过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