CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载

因为同学的一句mysql新版本不用安装,然后就去试了一下。。。。。。很多坑。。。
查阅的网上众多博主资料,自己也有一些新的错误,最后总算是解决了。

文章目录

    • mysql 8.0.13安装
      • 1.卸载mariaDB
      • 2.卸载已有的mysql
      • 3.安装mysql8.0.13
        • 报错一
        • 报错二
        • 报错三

mysql 8.0.13安装

1.卸载mariaDB

我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql。
而且以往7以下版本的centos系统都是默认的集成有mysql。
然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认内部集成了mariaDB。

  • 执行:rpm -qa | grep mariadb确定版本号
    在这里插入图片描述
  • 删除:yum remove mariadb-libs-5.5.64-1.el7.x86_64
  • 检查是否删除:rpm -qa | grep mariadb
    在这里插入图片描述
  • 删除配置文件和数据目录
rm -f /etc/my.cnf
rm -rf /var/lib/mysql/

在这里插入图片描述

2.卸载已有的mysql

  • 检查是否安装mysql:
rpm -qa | grep mysql
  • 卸载:
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
  • 查询所有Mysql对应的文件夹:
whereis mysql
find / -name mysql

CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第1张图片

  • 删除对应文件
    这一步删除的路径根据你查找的路径而定。
rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/bin/mysql /usr/local/mysql /usr/local/mysql/data/mysql
rm -rf /run/lock/subsys/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/rc.d/init.d/mysql
  • 再次查询判断
    在这里插入图片描述

3.安装mysql8.0.13

  • 下载
Wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
  • 解压
tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
  • 下载依赖包
yum install libaio
  • 解压后的目录
    CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第2张图片
  • 使用 rpm -vih XXXXXX(XXXXXX 为 rpm包全名)
rpm -vih mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -vih mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -vih mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
rpm -vih mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -vih mysql-community-embedded-compat-8.0.13-1.el7.x86_64.rpm
rpm -vih mysql-community-server-8.0.13-1.el7.x86_64.rpm

执行结果:
CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第3张图片

  • 启动mysql
    service mysqld restart

报错一

在执行mysql启动的时候,遇到报错:

Redirecting to /bin/systemctl restart mysqld.service
Job for mysqld.service failed because the control process exited with error code.
 See "systemctl status mysqld.service" and "journalctl -xe" for details.

查看日志:(大家一定要看日志找问题,也有可能是其他问题)
vi /var/log/mysqld.log
CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第4张图片
查看资料得知:问题出在3306端口被占用
使用命令:ps -aux | grep mysql
发现并没有3306端口的mysql进程。
使用命令:netstat –apn
查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name

[root@lyc local]# netstat -apn  | grep 3306
tcp6       0      0 :::3306            :::*         LISTEN      6478/mysqld         
[root@lyc local]# kill 6478
[root@lyc local]# netstat -apn  | grep 3306
  • 重新启动mysql
    service mysqld restart
    在这里插入图片描述

  • 找到初始密码

不知道为何,这个版本的网上有些博主说是不需要初始密码的,但是我测试了无法登录,需要密码;
执行命令:grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

  • 登录:mysql -u root -p输入上一步的密码
    CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第5张图片
  • 重置密码
    这一步是必须要执行的!!!
    为了加强安全性,在此版本中,默认需要修改密码。
    且密码必须:长度为8为,包含大小写字母,特殊符号以及数字(真麻烦)。
    输入:ALTER USER USER() IDENTIFIED BY 'Lyc@1234';(后面的八位密码自定义)
    执行结果:
    在这里插入图片描述
  • 把密码弄的简单点:
    上述密码的取值规则与validate_password.policy的取值有关。
    输入:SHOW VARIABLES LIKE 'validate_password%';
    CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第6张图片
    validate_password.policy默认是MEDIUM即1,需要修改两个参数:
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)
  • 再次查看:SHOW VARIABLES LIKE 'validate_password%';
    CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第7张图片
    修改密码:alter user 'root'@'localhost' identified by '123456';
    在这里插入图片描述
  • 重新登录:
    CentOS安装mysql8.0.13(亲测能用),包括mariaDB、mysql的卸载_第8张图片

报错二

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

意思是:你需要首先初始化密码才行。见上述初始化密码。

报错三

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

意思是:你设置的密码不符合格式,应该要8位且包含大小写字母,特殊符号和数字。

你可能感兴趣的:(mysql)