0%

mysql | 记录一次远程协助安装 mysql 的经历

受制于疫情的影响,有些人不能到公司进行测试,只能把测试环境部署在自己电脑上,由于自己的电脑充满了各种意想不到的情况,所以,在这里,我记录一下非常具有参考意义的一次经历。

由于这次的焦灼点主要是 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 安装好了。

请我喝杯咖啡吧~