前言

Centos8相对7来说,改变蛮大的,默认是最新GA版本MySQL,所以不能直接使用yum或dnf的方式进行安装,在安装之前请确保MySQL的相关服务及资料已清理干净。 如果你之前有安装过MySQL的相关服务及资源,为了安装过程顺利,请按照步骤步步操作(此方法也适用于卸载MySQL),如果你是全新的环境,请忽略卸载过程! MySQL官方文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

一、卸载 MySQL

  1. 停止 MySQL 运行
    systemctl stop mysqld.service
  2. yum 方式查询 MySQL 安装情况
    yum list installed mysql*
    image.png 如果有: yum remove mysql-community-*

    卸载 MySQL 资源文件
  3. 查询 MySQL 目录
    find / -name mysql
    image.png

  4. 逐一删除 MySQL 相关目录
    rm -rf ......
  5. 删除 MySQL 配置文件(如果有)
    rm -rf /etc/my.cnf
  6. 删除 MySQL 用户
    userdel mysql

二、安装 MySQL

在MySQL Yum存储库(https://repo.mysql.com/yum/)中,不同版本的MySQL Community Server托管在不同的子存储库中。默认情况下,默认启用最新GA系列(当前为MySQL 8.0)的子存储库,而所有其他系列(例如,MySQL 5.7系列)的子存储库均被禁用。使用此命令可查看MySQL Yum存储库中的所有子存储库,并查看已启用或禁用了哪些子存储库(对于启用dnf的系统,请使用dnf替换 命令中的 yum

  1. 查询子存储库状态
    yum repolist all | grep mysql (centos8查询结果为空)
  2. 手动创建新的 mysql5.7 子存储库
    sudo vim /etc/yum.repos.d/mysql-community.repo
  3. 编辑并保存配置信息,这里我提供了2种源,任选其中一种即可。
  1. # 清华大学MySQL镜像源
  2. [mysql-5.7-community]
  3. name=MySQL 5.7 Community Server
  4. baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
  8. [mysql-tools-community]
  9. name=MySQL Tools Community
  10. baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7-$basearch/
  11. enabled=1
  12. gpgcheck=1
  13. gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
  14. [mysql-connectors-community]
  15. name=MySQL Connectors Community
  16. baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
  17. enabled=1
  18. gpgcheck=1
  19. gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
  20. # MySQL官方源
  21. [mysql57-community]
  22. name=MySQL 5.7 Community Server
  23. baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
  24. enabled=1
  25. gpgcheck=1
  26. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  27. [mysql-connectors-community]
  28. name=MySQL Connectors Community
  29. baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
  30. enabled=1
  31. gpgcheck=1
  32. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  33. [mysql-tools-community]
  34. name=MySQL Tools Community
  35. baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
  36. enabled=1
  37. gpgcheck=1
  38. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1567550/1611113956921-bd4c3d4d-cb16-4397-93e2-e183a8bf88c5.png#align=left&display=inline&height=260&margin=%5Bobject%20Object%5D&name=image.png&originHeight=347&originWidth=1004&size=36114&status=done&style=stroke&width=753)
  1. 验证是否已启用和禁用正确的子存储库(对于启用了dnf的系统,请使用dnf替换 命令中的 yum
    yum repolist enabled | grep mysql
    image.png
  2. 禁用默认的 MySQL 模块
    sudo yum module disable mysql
    image.png
  3. 开始安装
    sudo yum install mysql-community-server
    image.png

三、检查版本

  • 检查命令
    mysql -V
    image.png

四、登录 MySQL

  • 启动 MySQL 服务
    systemctl start mysqld.service
  • 重载配置
    systemctl daemon-reload
  • 获取数据库安装时系统临时生成的密码
    grep 'temporary password' /var/log/mysqld.log
    image.png
  • 登录数据库
    mysql -uroot -p
    输入密码
    image.png
  • 修改登录密码
    ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘输入你要设置的root密码’;
    注意必须包含大小写字母数字以及特殊字符并且长度不能少于8位,否则会报错
    image.png
  • 修改完密码记得退出 MySQL 重新登录

五、开启远程登录

  • 授权远程登录用户
    GRANT ALL PRIVILEGES ON . TO ‘zhou’@’%’ IDENTIFIED BY ‘Aabbcc1234@’ WITH GRANT OPTION;
    zhou为用户名,Aabbcc1234@为zhou的密码,或者直接将root权限修改为可以通过远程访问
  • 刷新配置
    use mysql;
    UPDATE user SET Host='%' WHERE User='root';
    flush privileges;
    image.png

六、设置编码

  • 默认的编码格式
    show variables like 'character%';
    image.png
  • 编辑 配置文件
    vim /etc/my.cnf
  • 保存以下配置信息
    ```shell [client] default-character-set=utf8

[mysqld] character-set-server=utf8 ```

  • 修改完成,重启(restart) MySQL,再重新登录
  • 查询编码修改情况
    show variables like 'character%';
    image.png

七、Navicat 连接 MySQL

  • 关闭防火墙(如果不关闭防火墙会报2003错误码)
    systemctl disable firewalld.service
    systemctl stop firewalld.service
  • 开始连接

image.png