-
本文使用yum安装mysql
-
linux版本为 centos 8
参考:
CentOS 8 yum安装软件时,提示无法从AppStream下载
如果在本文遇到困惑和问题,可参考以上文档和文章。
本文经过作者实践,可放心使用
1.去MySQL官网
我们使用yum安装MySQL,
你可能发现了这不是MySQL8的吗,我想装其它版本怎么说?
后续操作表明:mysql80-community-release-el8-3.noarch.rpm只包含MySQL8,所以你们可以试试6和7
ok,就它了:mysql80-community-release-el8-3.noarch.rpm
2. 安装
-
第一步:下载
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
-
第二步:安装
yum install mysql80-community-release-el8-3.noarch.rpm
报错:
这是centos8的问题,小插曲,一起解决
解决bug
这个问题的原因是:centos8官方已经停止提供服务,相应的yum源也已经移到归档源
比较有意思的是,阿里云的服务器的yum源好像改为了腾讯的
-
清理yum缓存
yum clean all
-
重建缓存
yum makecache
还是报同样的错!!!
-
查看CentOS-Base.repo
cat /etc/yum.repos.d/CentOS-Base.repo
复制过去:
[BaseOS] name=Qcloud centos OS - $basearch baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
-
打开CentOS-AppStream.repo,注释掉原有内容,并插入新内容
vim /etc/yum.repos.d/CentOS-AppStream.repo
复制进去:
[AppStream] name=Qcloud centos AppStream - $basearch baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/AppStream/$basearch/os/ enabled=0 gpgcheck=1 gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
-
重建缓存
yum makecache
3.解决bug后再来yum install
第一步:安装
yum install mysql80-community-release-el8-3.noarch.rpm
都y就行了
第二步:查看该yum源支持哪些版本
默认开启的是MySQL8
yum repolist all | grep mysql
…,mysql80-community-release-el8-3.noarch.rpm这个是只有MySQL8的
第三步:如果你的支持MySQL其它版本
可通编辑配置,以禁用或启用某个版本
vim /etc/yum.repos.d/mysql-community.repo
修改enable即可,0代表禁用,1代表启用
如我这里:
大概就是这样玩的
下面这个命令可以查看你开启了哪些
yum repolist enabled | grep mysql
第四步:安装
安装过程会询问你,一直y即可
yum install mysql-community-server
第五步:启动、查看、开机自启
启动MySQL:
systemctl start mysqld
查看MySQL状态:
systemctl status mysqld
开机自启:
# 开机自启
systemctl enable mysqld
# 重新加载系统配置,使开机自启立马有效
systemctl daemon-reload
登录MySQL8
MySQL较大的变动就是,第一次安装会给root用户一个临时密码,我们需要拿到这个临时密码:
grep 'temporary password' /var/log/mysqld.log
还有一种查看默认密码的方式:
vim /var/log/mysqld.log
ok,拿到默认密码后,登录:
会提示你输入密码,将密码复制即可
mysql -u root -p
改密码
- 改密码,
需要知道的是: mysql新的安全机制要求,mysql的密码必须包含英文大小写、数字以及特殊字符
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'
刷新:
flush privileges;
远程连接
-
换库
use mysql;
-
查看数据库用户
select user,host from user;
可以看到,root用户的host未localhost,这意味着root用户只能在本机连接数据库。
所以我们需要将他改为所有机器都能连:(或者指定为ip)
update user set host='%' where user='root';
因为:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 由于用的是破解版的navicat,所以只能用第二种方法解决了
修改密码,并且不对密码加密:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
修改完成,退出:
exit
远程连接测试
服务器防火墙记得开放3306
为了写这篇博客,拿了一台服务器安装MySQL。写到这里时已经凌晨10分,两个小时吧。只是为了自己有一份博客,需要的时候有得看,也希望能帮到各位,晚安。
更新记录
2022.5.11
由于之前gitee图床增加了防盗链导致很多博客图片失效。
此次更新,更换了图片地址