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
  • zipmy.ini3306 换成了 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 服务,最开始,我在启用 zipmysql 的时候,启动的是 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 安装好了。

请我喝杯咖啡吧~