记一次mysql8.0的安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32740675/article/details/81459608

虽然我没写过什么大型的服务器程序,但也接触mysql一年有余了,使用解压版的安装方法,方便快捷简单高效,比起另外的数据库更得心应手,今天重装了系统,准备重装开发环境以及软件时,顺便将mysql从之前的5.7.18升级成8.0.12,但因为一些莫名其妙的坑,浪费了我三四个小时,特记于此,告诫后人。

之前的mysql用户权限以及安全性检查都比较松,安装完后可以直接 “mysql” 进入root权限的数据库,之后mysql就不允许这种危险的行为了,于是在配置好了 my.ini 进行

mysqld --initialize --user=mysql --console

初始化时会生成一个初始的随机化密码,显示在命令行上,这时需要记录下这个密码。安装完成后使用
mysql --install 安装服务,然后net start mysql启动服务。
若启动成功,就可以以
mysql -uroot -p"密码"
进入mysql了, 注意这里的-p后面,输入的密码一定要使用 双引号括起来,因为windows的cmd下有些关键字可能会触发会使得该随机化的密码无效。使用双引号就不会触发cmd的关键字了。

在这里我还需要将我遇到的坑以及解决思路清理一遍:

1.安装mysql时观看他的错误日志,十分有帮助于解决问题,在windows系统中,该日志的位置在:

%MYSQL_HOME%\data\*.err 

2.使用netstat -an 指令可以查看启动mysql服务后是否有指定端口号(默认3306)的TCP服务监听,如果没有监听可以从my.ini和防火墙的角度去思考解决方案。

3.win10下的mysql8中在my.ini中的< mysqld >下填写skip-grant-tables选项会出现服务启动后立即关闭的现象,从日志发现是这样的问题:shared-memory or named-pipe,加上第一个选项mysql则不会使用TCP通信而使用共享内存通信了,这是我们不愿意看到的,使用第二个选项则mysql无法监听3306。(神奇。。。)

4.如上所说,初始化完mysql后生成的密码是随机的,很有可能触发cmd的关键字,所以如果密码是这样:asd><@!SD的,建议这样启动mysql服务,然后再修改密码:

mysql -uroot -p"asd><@!SD"

该指令可以在记事本写完后再复制进去,避免出错。

猜你喜欢

转载自blog.csdn.net/qq_32740675/article/details/81459608