今天在linux上又装了一遍MySQL,过程比较恼火,踩了坑,特此记录一遍今后安装顺利一些。
准备好安装包
这里已rpm的方式安装,需要准备的安装包如下:
下载地址:
https://dev.mysql.com/downloads/mysql/8.0.html
下载后将3个安装包上传到服务器对应的目录,我这里是 mysql8,如上上图所示。
准备环境
因为有些linux系统会自带mariadb以及mysql,这些需要先删除掉。
- 检查是否安装了mariadb, 使用如下命令:
- 删除mariadb
mysql操作同mariadb
开始安装
使用rpm命令
- 安装server 包
- 安装缺少的依赖包
上面两个是之前下载好的,已经安装完毕,还差3个依赖包,直接使用如下命令安装:
- 再次安装server 包
安装完毕。
验证安装
- 使用命令
service mysqld status
查看mysql的状态
说明安装成功,只是还没有启动服务
- 启动服务
service mysqld start
, 停止服务service mysqld stop
- 进入mysql
发现个问题:至今还不知道密码, 有网友说是默认密码是空的,可直接进入。显然,由上图可知是不行。
更改密码
-
停止mysql服务
service mysqld stop
-
编辑文件
vi /etc/my.cnf
添加skip-grant-tables
- 启动mysql
service mysqld start
- 现在就可以直接进入mysql了
- 更新user表的root用户的密码为空串’’,mysql8中的密码字段已经不是password了!
- 现在将之前的配置文件改回初始的状态(去掉skip-grant-tables),也同样可以不用密码就能直接进入数据库了。并且,必须去掉skip-grant-tables,然后重启mysql,后面的真正修改密码的命令alert user。。。。才能正确执行。
执行修改密码命令alter user 'root'@'%' identified by 'newpass'
; 然后执行flush privileges
。 其中’root’@’%‘也可能是’root’@‘localhost’, 根据实际情况而定
其中,“newpass”为自己新设置的密码,必须包含大小写字母以及特殊字符和数字。
注:命令中的 'root'@'%'
也可能是'root'@'localhost'
,具体根据实际情况而定,如下图中的host是什么就写什么:
- 验证新密码
Navicat 无法连接mysql
如果 root对应的host是localhost,就会出现Navicat无法连接的情况,只需将localhost该为 百分符号 % 即可,
可使用update语句修改:update user set host='%' where user='root';
不要忘记执行:
flush privileges;