如果使用自动化部署工具,并提示安装成功后,开发平台发布的时候报这样的错:Unable to cornect to any of the specified MySQL hosts. 那就是MySQL安装失败了。
MySQL安装失败的原因可能会有很多,我们可以通过下面的方式进行排查。
有一种情况是很可能MySQL的服务已经安装了但初始化不成功,从而导致MySQL安装失败,这时候可以这么检查:如下图右键点击“桌面 - 此电脑”点击弹窗菜单项“管理”:
进入下图的“计算机管理”后,在“服务和应用程序”中找到“服务”并点击,查看右侧是否有服务名为“MySQL3306(或者MySQL服务)”的服务,并且状态是“正在运行”。如果状态是如下图这样空白的则表示没有安装成功,我们可以尝试右键点击MySQL3306这个服务,然后点击“启动”菜单项看看是否能够启动服务。
我们先检查MySQL是否正确初始化:
打开如下目录“D:\eHelper\DB\Data(这是E6自动化部署工具根据你设置的安装路径自动创建的)”,如果目录内容包含了mysql,performance_schema, sys等文件夹,那就说明MySQL能够正确初始化,那么很可能就是系统中已经有MySQL存在占用了3306端口,从而导致服务没法启动:
如果Data文件夹中确实mysql等文件夹,那么就是MySQL初始化失败,只能用后面的手动执行命令的方式进行安装。
如果是MySQL的3306端口被占用怎么办呢?
这种情况往往是这台电脑以前安装过MySQL所以3306端口才会被占用,可以用E6自动化部署工具重新换个数据库端口(比如3308等等)后重新安装MySQL,修改端口并选择好MySQL安装包以后执行“先安装MySQL”,如下图:
如果以前没有安装过MySQL则意味着3306端口没有被占用,很可能是其他原因导致安装失败,所以如果还想继续用3306端口继续安装,但是由于上一次已经创建了一个MySQL3306服务了,所以我们需要先删除这个服务再继续安装,如下图在“搜索框”中输入cmd后,右键点击“命令提示符”并“以管理员身份运行”。
然后执行命令sc delete MySQL3306 如下图提示执行成功:
那如果再用工具装后还是不能启动怎么办呢?很可能是系统却VC++等等了,那么可以手工安装试试,下面教您手工安装:
手工安装MySQL:
如上面重新“以管理员身份运行”运行一个命令提示符,分别输入下面的命令,进入MySQL的程序目录:
1、直接输入:D:
2、切换到D:\>后,输入:cd D:\eHelper\DB\mysql-5.7.26-winx64\mysql-5.7.26-winx64\bin这里的路径最好是打开文件夹进入到bin目录后拷贝出来粘贴在这里面,如下图
3、执行:mysqld -install 命令,如果如下图执行报Service successfully installed 成功,后可以检查下上面的“服务”中是否有MySQL3306服务了,如果有,则继续执行下面4,如果不成功,则看后面;
4、执行:mysqld --initialize-insecure 命令,这个命令执行成功后,不会有提示,但是我们可以检查:D:\eHelper\DB\Data目录,如上面检查此目录中是否有mysql,performance_schema, sys等文件夹,有则表示安装成功。
5、如果上面几步成功了,那么我们此时可以执行:net start mysql3306启动MySQL服务,或者如下图,在服务中启动MySQL3306:
6、上面命令安装的MySQL的root用户密码是空的,这样很不好,所以我们需要修改下root密码,可以再次“以管理员身份运行”运行一个新的命令提示符,进入MySQL。
在上图的“mysql>”后面拷贝粘贴下面的命令后回车执行:
alter user root@localhost identified by '密码';
记得把“密码”改成你自己的密码(E6安装工具上的root密码)。
如果上面第3步执行mysqld -install的时候报错,比如报确实VC++,那么请看具体提示下载对应的VC++包后进行安装即可。