PHP Laravel NGINX html css Bootstrap Python Symfony Apache Windows linux jquery Django ASP vanilla Slim vagrant docker Homestead MySQL Redis Git SVN ssh Root vim PhpStorm Pycharm sass less PHP Laravel android html css Vue Angular React NGINX html css Javascript

PhpStorm/PyCharm 如何连接 Vagrant 虚拟机环境中的数据库

原创

原创不易 ~ 转载请注明出处哦

通常在开发web应用时,我们需要用到数据库,然而如果使用独立的数据库管理软件,对于某些操作,相比直接在IDE自带的数据库管理中进行操作,反而显得较为繁琐(至少我们还的多切换一次窗口)。

那么今天我们要来看一下如何在IDE中进行数据库的连接以及如何在本机IDE环境下连接虚拟机环境中的数据库。
我会以PhpStorm为例进行讲解,但是jetBrains一家子的IDE基本操作都是一样的,所以对于PyCharm, WebStorm来说也是一样的操作。

首先我们先来讲解在如何连接在本机环境中的数据库。

打开PhpStorm,点击右侧的Database按钮,会弹出一个侧边栏:
phpstorm_database_sidebar.png

注意你的界面和我的可能不一样,原因是我安装了Material UI的主题。

接下来我们点击左侧的+号,然后在下拉菜单中找到Data Source行,并在子菜单中选择我们要添加的数据库类型(这里我们选择PostgreSQL)。如果你用的是其他数据库,例如MySQL,那么没关系,后面在配置中我们只需要将端口改成相应端口即可(例如MySQL使用3306)。

选择数据库类型后,我们会看到以下窗口:
Data Sources and Drivers - General.jpg

可以看到,在General选项卡中,IDE已经帮我们填入了很多默认值了,在这里我们仅需要修改DatabaseUser以及Password的值就可以了。

Database指的的是我们需要连接的数据库名称,所以你必须先进入数据库使用CREATE DATABASE <DB_NAME>语法创建一个数据库(这里不赘述)。
User是我们用来连接数据库的用户。我们用的是PostgreSQL,所以我们可以使用用户postgres。如果你使用MySQL,可以使用root注意如果我们使用的是虚拟机环境,需要填写虚拟机环境中的数据库名称及用户名和密码,例如我使用了Homestead盒子开发Laravel,那么我的默认用户名和密码分别为homesteadsecret
Password想必不用我多说,输入你数据库对应用户的密码即可。

在这里我还是需要强调一点。如果你使用了最高权限的数据库管理员,那么你可以直接跳过往下看。如果你使用了新创建的数据库管理用户,那么你一定要记得授予该用户相应的数据库管理权限,否则你将无法连接上数据库。在MySQL中,我们可以使用GRANT ALL PRIVILEGES ON database_name.* TO username;语法来赋予用户数据库权限。在PostgreSQL中,我们可以使用GRANT ALL PRIVILEGES ON DATABASE database_name TO username;来进行权限的赋予。

完成后,我们点击下方的TEST CONNECTION进行连接测试:
https://blog.sbot.io/ - Data Sources and Drivers - TEST CONNECTION.jpg

可以看到,绿色的Successful表示我们的连接已经成功!接下来我们点击APPLYOK即可完成数据库的配置。

以后,我们只需要点击右侧的Database,就可以直接在IDE中访问我们的数据库了:
https://blog.sbot.io - Datasource Configured.png


好了,基础的配置讲解完了,现在我们要来看一下如何连接上虚拟机中的数据库

这里我们先讲解一下基本概念。由于虚拟机环境是一个独立的系统,而非本机系统,我们需要让IDE知道如何连接上我们的虚拟机环境才能进行数据库的配置。通常我们采用ssh方式进行连接。一旦IDE知道了如何连接上虚拟机,那么我们只需要按照上一步所讲解的步骤进行数据库配置即可。

这里我使用了Vagrant虚拟机,并且下载了Homestead盒子。由于Homestead盒子就相当于一个独立的Ubuntu系统,并且已经配置好了PostgreSQLMySQL等常见的数据库系统,我们可以使用盒子默认的用户名(homestead)和密码(secret)进行配置。

首先我们完成文章第一步中的General的配置步骤。接下来我们点击SSH/SSL选项卡:
https://blog.sbot.io - Data Sources and Drivers - SSH - SSL.png

由于我们连接Vagrant的时候使用的是ssh方式,所以我们需要勾选Use SSH tunnel
那么底下的参数怎么填呢?
首先我们需要先运行我们的虚拟机:

$ cd ~/homestead
$ vagrant up

接下来我们来查看一下ssh连接信息:

$ vagrant ssh-config

https://blog.sbot.io - vagrant-ssh-config.jpg

可以看到,
我们的HostName127.0.0.1
uservagrant
Port2222
IdentityFile/home/eagle/homestead/.vagrant/machines/homestead-7/virtualbox/private_key
它们分别对应了Proxy hostPortProxy user以及Private key file这几个参数。

Auth type我们选Key pair (OpenSSH or PuTTY)Passphrase留空不填。

现在我们点击TEST CONNECTION进行连接测试,如果类似第一步中,出现Successful的绿色文字,那么我们的连接就成功了。点击APPLYOK,然后我们重新启动一下IDE就可以了!


正在加载验证码......
请先完成验证