今天这篇博文就详细介绍下如何在你的电脑上远程连接mysql,并且介绍如何用phpstorm来远程开发你的php项目。
我的开发环境是MAC,所以我这篇博文里面的相关方法都是在macOS环境下的,不过如果你习惯在win上面用命令行的话,我相信问题不大。
远程连接mysql
前提是你已经新建好了一个可以在任意IP地址连接数据库的用户,如果不清楚如何创建,请参考我的上一篇博文中关于MySQL的部分。
下载mysql
MacOS系统本身是不带mysql的,所以我们需要去官网上下载一下。

我下载的是 MySQL Community Server , 其实这个不是普通的安装包,就是一个压缩包,因为我们要在命令行下远程连接mysql,所以,这个包就足够了~
解压缩之后,记下你保存的位置,我们要用到 bin
文件夹中的 mysql
。
设置mysql的别名
我因为之前装了 zsh
,所以直接在 ~/.zhsrc
中进行相关的别名设置就可以了。
alias mysql='/yourpath/mysql-5.7.14-osx10.11-x86_64/mysql-5.7.14-osx10.11-x86_64/bin/mysql'
注:
- 如果不设置别名的话,每次需要使用完整的路径才能在命令行中使用mysql
- 如果对我的主题感兴趣,可以参见我的这篇博文
- 如果你没有安装zsh,可以直接修改
~/.bash_profile
文件,如果没有这个文件的话,直接新建一个好了 - 如果你是在
.zshrc
中添加了别名,记得最后要source ~/.zshrc
一下;如果是在bash_profile
中,则source ~/.bash_profile
远程连接mysql
直接在命令行中键入下面的命令
mysql -u yourname -h xxx.xxx.xxx.xxx -p
其中:
-
-u
后面接的是我们新建好的用户名称,记得一定要设置可以在任意ip地址访问呦(或者指定ip地址也可以,但是一定要设置就好了); -
-h
后面接的是我们的mysql远程地址
输入密码就可以远程访问我们的mysql了

这里有一个特别有意思的地方,我们可以看到在命令行中远程接入数据库,是要我们输入密码的,但是后面我们通过php连接的时候,却会发现很奇怪的现象,这个现象的原因在我的上一篇博文中有详细描述,我们还是直接来看一下好了,不过不要急,我们先来搭建好phpstorm的环境。
搭建PhpStorm开发环境
PhpStorm 也是JetBrains旗下非常好用的一款软件,当然也是要收费的,不过Mac用户可以通过这个 网站 上下载PhpStorm,你懂的~
连接mysql数据库
其实原理和我们之前在命令行中远程连接一样,如果你习惯看图形界面,那么你可以直接在PhpStorm上面进行数据库的一些操作。
新建database
在顶部菜单栏中选择 View -> Tool Windows --> Database
添加Mysql
选择左上角的 + 号,然后在弹出的列表中依次选择 Data Source --> MySQL
接着填写相关的信息:
-
Host
:就是我们的远程主机的IP地址。这里说一下,一般商用的系统,服务器和数据库是分离的,这样可以保证数据的安全,不至于服务器被攻破以后数据库也一并暴露(或者反过来),但是我们的小系统没有必要分离,所以主机和数据库放在一起。 -
Database
: 就是我们选择的某一个数据库,因为可能你新建的用户只允许访问某一个特殊的数据库,这里也可以留空就表示所有的库都可以访问 -
User
: 我们新建的用户名 -
Password
: 密码
注意看最下方,如果你们是第一次通过PhpStorm建立远程连接,应该会提示 miss driver files
,我们直接点击下载就好了,下载成功后,就会显示和我的界面一样的 no ojbects
了.
我们可以点击中间的 test
进行测试连接,正常的话,会提示 connect success
的对话框
保存连接
点击OK以后,会弹出来让我们输入密码,这个密码是PhpStorm要用到的存储在本地密码,在日后要使用某个数据库时,可能会需要我们再次输入。
成功接入
贴一张我成功连接后的图片:
- 中间的窗口可以供我们进行数据库语句的编写,写完之后直接
Cmd + Enter
会提示我们执行相关的语句; - 右侧的窗口显示我们建立好连接的数据库的列表,包括每张表的详细列属性等等;
- 底部的窗口是显示我们执行完后的表的可视化窗口,途中我执行了一条create和select语句之后的表的内容。
在这个窗口执行相关数据的操作语句,就显得比较直观了~
远程开发PHP
如果上一篇博文中大家按照步骤建立了完整的LAMP环境,也在 /var/www/html
中测试了我们放进去的第一个php文件,那么我们就看如何利用phpstorm进行远程开发吧,也就是我们可以在我们自己本机的电脑上进行线下的开发,等到测试没有问题了之后,直接部署到线上。
创建工程
点击顶部菜单栏中的 File --> New Project from Existing Files...
在弹出的对话框中选择 Web server is on remote host, files are accessible via FTP/SFTP/FTPS
然后给我们的工程命名和选择路径,在 Deployment options
下选择 Custom
, 点击 next
因为我们选择了custom,所以这里我们可以进行一些部署时的选项。为了图方便,我们可以选择每次保存文件的时候就自动上传,当然这样对测试系统是没有问题的,但是对于正式部署的系统要谨慎,一定要线下测试完成之后,再选择上传到remote端。
添加远程的服务器
然后我们选择 Add new remote server
,点击 next
给自己的远程服务命名,然后 type
中选择 SFTP
, 并填入相关的参数,
-
SFTP host
: 填入我们的主机的ip地址 -
Port
: 端口号就用默认的22 -
Root path:
指的是页面文件的根目录,apache为我们新建的在/var/www/html
-
User name
、Password
大家都知道填什么对不对。
完成之后可以 Test SFTP connection...
在下个页面中,选中 Project Root
并且点击next
基本上整个环境就部署好了,我们可以试着新建一些php文件,然后编辑之后,点击Cmd+S,就会自动把文件上传到远端了,然后我们在相应的页面上就能看到我们刚部署上去的php文件了。
在php文件中连接数据
之前留了个悬念给大家,就是我们在php文件中连接我们的数据库,因为php文件和mysql数据库是在一个主机上的,所以相当于在localhost上面登录,而如果你之前添加的那个可以在任意ip地址登录的那个用户,在localhost上没有被赋予权限(因为我们近添加了 %
而没有添加 localhost
)详情参见上一篇博文,就会登录失败。
所以在你的php文件中,密码 必须 是null,才能登录成功。 当然如果你新建的其他用户只能在 localhost
通过密码登录,就真的需要输入秘密了。
来看下我的php登录mysql的源码吧:
<?php
$server_name = "localhost";
$db_name = "yourdatabasename";
$user_name = "yourname";
// create connection
$conn = new mysqli($server_name,$user_name,null,$db_name);
// check connection
if ($conn->connect_error) {
echo "Connect Fail!!" . $conn->connect_error;
} else {
echo "Connected successfully";
}
?>
注意看, mysqli()
方法中,密码那个参数是null,因为我把这个用户赋予了在任意ip地址登录的权限,而如果他在localhost登录,会被当做匿名(168学习网 www.300168.com)用户登录,所以,这里需不要密码。感兴趣的同学可以试一下!
好了,到这里,搭建phpstorm的过程就完成了。