受制于疫情的影响,有些人不能到公司进行测试,只能把测试环境部署在自己电脑上,由于自己的电脑充满了各种意想不到的情况,所以,在这里,我记录一下非常具有参考意义的一次经历。
由于这次的焦灼点主要是 mysql
的安装,所以,这里主讲 mysql
。
参考资料
安装 mysql
通过 exe 进行安装
在官网下载了 mysql 8.0.*
的 exe
安装包,双击之后,无论是 server only
模式还是 developper default
模式,发现都安装不了。
这个方式最终放弃。
通过 zip 安装
这个是绿色安装,需要自己使用命令行进行安装。请参考 win10
章节。
通过上面的步骤进行了安装,并设置密码 123456
,最后成功。
使用命令行进行了 mysql -u root -p
进入后,发现版本是 8.0.*
的版本。创建了一个叫做 test 的数据库,并导入预先保存的 sql
文件。
然后启动了程序,发现一直启动不了。打开 log
发现是找不到 test
的数据库。
然后不断的进行改名字、改 localhost
等等,发现一直是找不到 test
。
最后使用 nvicat
进行连接。
ps:使用 cmd
进行连接端口号是 3306
,使用 nvicat
进行连接也是 3306
。
nvicat
界面中真的没有 test
数据库。也就是,命令行界面的数据库中有这个库,nvicat
中没有这个库。另外,nvicat
连接的那个库中有一个叫做 zentaoep
的数据库,这是伏笔,后面提。
查找 BUG
同一个端口号,竟然连接了不同的数据库。我进行了下面的无用操作
- 使用第一个
exe
中的remove
操作,删除mysql
zip
把my.ini
的3306
换成了3307
- 发现
mysql
进不去了,密码不对 - 改成
3306
,重新安装mysql
之后又可以使用123456
登录了- 卸载是先
mysqld remove
- 然后
mysqld install MySQL --defaults-file="D:\mysql\my.ini"
- 卸载是先
- 发现
一系列的操作后发现都不能解决问题。
但是,由于一系列的操作,我再启用
net start mysql
的时候,发现启动不了,但是,进行
mysql -u root -p
之后,又可以进入数据库,所以,我怀疑有一个不知名的软件在占用。
并且,在重复安装卸载之后,进入 mysql
之后的 8.0.15
版本变成了 5.5.5
版本。
ps: 后来,我仔细想了一下。原来应该就有 5.5.5
版本的 mysql
服务,最开始,我在启用 zip
的 mysql
的时候,启动的是 8.0
的,后来卸载执行了 net stop mysql
之后,又执行了 net start mysql
。这个时候启动的就是 5.5.5
,所以,一只被这个程序占用着,后面启动 net start mysql
都被占用了。
但是,我查看 3306
的端口,又发现啥都没有。
我找到了 win10
的卸载程序的界面,发现有很多的 Microsoft sql
软件在运行。虽然,查了资料,这个并不会产生冲突,但是,最后还是让卸载了。
卸载了之后,发现没有任何用处。
mysql -u root -p
之后,依然是 5.5.5
,然后我发现这个的后缀是 5.5.5-10.4.14-MariaDB mariadb
。
经过查询,mariadb
相当于是 mysql
的开源版本,所以,一定有一个地方在默默的占用 mysql
。虽然,其不占用 3306
,但是,其占据了 net start mysql
。导致,8.0
版本的 mysql
启动不了。
我再次进入 mysql
的环境,然后查询了 user
,终于发现了一个名字叫做 zentao
的用户。
询问测试,这个电脑只有他一个人用,没有其他人。
经过搜索得知,是一个叫做禅道的软件在占用。
然后让测试把这个软件的所有东西全部删除。
重新初始化 mysql
卸载禅道软件后,登陆 mysql -u root -p
会出现
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
这个是因为没有开启 mysql
服务。
net start mysql
发现开启不了,报了 系统错误。用 win10
界面的 mysql
服务进行启用
报了
本地计算机上的
MySQL
服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
经过,了解得知,现在的情况只能进行 mysql
的初始化了,这也就意味着所有的数据都会丢失。
将 zip
那一章节的 data
删掉,然后创建一个空的 data
。
执行
mysqld –initialize
然后执行
net start mysql
发现其成功执行。
使用
mysql -u root -p
发现,无论输入什么都会报
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
这是因为 mysql
在重新初始化的时候,随机初始化了一个密码,这个密码就放在
data
文件夹下面以 .err
为后缀的文件中,前缀不一定是什么。
打开文件,查询 password
。就能发现随机的那个密码了。
直接输入MySQL的简单命令之后,发现并不能操作数据库,会提示报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
这是让你修改密码,请参考
至此,mysql 8.0
安装好了。