早上接到阿里云客服的电话,告知我之前买的云虚拟机快到期了,问我要不要续费,我去看了下控制台,感觉自己留着这个还是蛮有用的,就续费了,随便翻了下控制台,看见虚拟机上面的数据库还没怎么用过,就想着利用一下,再加上自己最近在捣鼓一些小玩意,零零总总的也学到一些东西,这更激发了我的动手欲,我就试着使用PHPstorm连接我允许你主机上的MySQL数据库,本以为没什么难得,可谁知道还是遇到棘手的问题,索性自己查了一大堆资料,后面问题都解决了,下面我将自己所遇到的问题列举出来,并将解决方法附上,希望后来者有所借鉴。
涉及工具及版本:
1.PHPstorm 2017.3
2.PHP (xampp v3.2.2下的php5.7)
3.阿里云虚拟主机 共享虚拟主机普惠版
4.MySQL数据库 5.1.73
1. PHP Interpreter is not configured Please configure PHP Interpreter to use built-in web server
本人技拙,后台语言只对PHP略知一二,为了方便编写PHP脚本,所以使用PHPstorm,跟连接本地数据库一样,我先编写了一个名为conn.php的脚本,代码如下:
运行脚本的时候,PHP就报了如下错误:
PHP Interpreter is not configured Please configure PHP Interpreter to use built-in web server
意思是说没找到是说没有找到php解释器。
解决办法:
打开PHPstorm的设置路径 file => setting =>LANGUAGE & FRAMEWORK=>PHP
点击后面的Fix(...),会出现如下对话框,点击加号,选中图片上的选中项
按如下配置设置好参数后,确定就好了(备注:php解释器的路径根据自己的实际情况而定,我的是在xampp下)
如此第一个问题就解决了,
2.Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in D:\Code\AppServ\InstallLocation\AppServ\conn.php on line 3
解决掉了第一个错误,我以为成功就在眼前时,事实证明,我太年轻了...............
执行conn.php文件后包了如下错误:
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in D:\Code\AppServ\InstallLocation\AppServ\conn.php on line 3
此错误大概意思是:使用高版本mysql数据库导入了低版本数据引起的,其中高版本数据库的password hashes 是41位的hashes,而低版本数据库的数据存储的root 的password是16位的hashes,需要修改user表的password字段数据为41为的hashes。
解决办法:
我进入自己的云虚拟机数据库管理页面,打开命令窗口,在窗口内执行了一下指令:
set session old_passwords=0; //修改session使用41位hashes(16为1,41的为0) select password('此处输入自己数据库对应的密码'); //查看你的password函数是否可以生成41位的hashes
执行完成以上命令后,再执行数据库脚本,成功。
如哪位大神有更好的方法,请在评论区附上,欢迎交流