• Centos7 yum方式安装mysql8


    Centos7 yum方式安装mysql8

    1.如果之前安装过或者系统默认安装了MariaDB,需要先卸载
    rpm -qa |grep mariadb
    yum -y remove mariadb*

    再检查是否有手动安装过 mysql ,如果有,也需要删除
    rpm -qa |grep mysql
    rpm -e xxx

    find / -name mysql
    删除对应目录
    rm- -rf xxx 


    2.下载 mysql 8.0 comunity 包
    wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
    rpm -ivh mysql80-community-release-el7-7.noarch.rpm
    如果下载慢的话,可以用国内地址下载:
    wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-x86_64/mysql80-community-release-el7-6.noarch.rpm --no-check-certificate
    rpm -ivh mysql80-community-release-el7-6.noarch.rpm

    安装完以后,就会在 /etc/yum.repos.d目录下生成几个mysql相关的repos:
    mysql-community.repo
    mysql-community-source.repo


    3.配置yum源

    1)先备份Centos-Base.repo,然后从阿里云下载centos7-repo:

    mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.ori
    wget http://mirrors.aliyun.com/repo/Centos-7.repo
    mv Centos-7.repo CentOS-Base.repo.aliyun
    cp CentOS-Base.repo.aliyun /etc/yum.repos.d/CentOS-Base.repo

    下面两部操作不是必须的,可以选择是否执行,清除缓存和重新生成缓存
    yum clean all
    yum makecache

    2)修改 mysql-community.repo 

    vi /etc/yum.repos.d/mysql-community.repo

    修改 [mysql80-community] 对应的配置参数:

    enabled=1
    gpgcheck=0

    说明:
    enabled=1   # enabled表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启,确认已经为1
    gpgcheck=0    # 改为0不校验,gpgcheck表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启,0表示关闭,此项不写默认为验证

    4.直接使用yum安装mysql8
    yum -y install mysql-community-server

    5.启动并查看状态
    systemctl start mysqld
    systemctl enable mysqld
    systemctl status mysqld

    如果启动失败,查看日志  cat /var/log/mysqld.log
    如果启动报错:
    2023-09-29T12:18:46.865530Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
    网上找资料说是容器内安装mysql8 如果设置了 lower-case-table-names = 1  就会导致该问题。但我 vi /etc/my.cnf 确认并未设置该参数,参数未设置默认应该等同于0才对。
    我是在docker容器内部安装mysql8,遇到了上面的问题。尝试多种方法都没有解决。最终直接在容器内部卸载 & 重装 mysql8。

    卸载mysql8:
    yum remove mysql-community-server
    rm -rf /var/lib/mysql/*

    find  / -name mysql
    rm /usr/lib64/mysql
    rm /var/lib/mysql


    重新安装mysql8
    echo "" > /var/log/mysqld.log 
    yum -y install mysql-community-server

    启动mysql8
    systemctl start mysqld
    注意:我再容器内启动的过程很长,终端看起来像卡主了,最初我通过 ctrl+c 中止了启动,从而导致问题,重启会失败。如果是在容器内,这里可以多等一段时间。
    同时可以新开一个窗口进入容器查看启动日志: tail -100f /var/log/mysqld.log 可以观察到启动过程是否故障或完成,只要没有发生ERROR,可以多等一段时间,最终能启动成功。


    6.设置mysql新密码并重启服务
    安装初始为随机密码,需要修改方便好记
    grep "temporary password" /var/log/mysqld.log
    mysql -uroot -p
    mysql> alter user 'root'@'localhost' identified by 'Abcd_12345678';
    mysql> flush privileges;
    mysql> quit;


    查看表大写配置:
    mysql> show variables like '%lower_case_table_names%';

    如果需要配置root允许远程连接MySQL(默认近允许本地连接 'root@localhost')

    create user 'root'@'%' identified by 'password';
    grant all privileges on *.* to 'root'@'%' WITH GRANT OPTION;
    flush privileges;

    修改密码:
    alter user 'root'@'%' identified by 'password_new' ;

    如果数据库连接工具连接MySQL Server出现 2059 - authentication plugin 'caching_sha2_password' -navicat 解决方式:

    这个错误的原因是由于 MySQL 8.0 之后的加密规则为 caching_sha2_password。而在此之前的加密规则为 mysql_native_password。

    可以将MySQL Server端的加密规则改成 mysql_native_password,然后客户端再连接:

    mysql -u root -p

    修改加密规则:
    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

    更新密码:
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

    刷新权限:
    FLUSH PRIVILEGES;

    重置密码:
    alter user 'root'@'%' identified by 'password';

  • 相关阅读:
    HTML核心(6)- 路径的写法
    AIR101 LuatOS LVGL 显示多个标签例程
    Linux中创建用户时要自己设置密码
    java类型属性set方法无法被赋值
    spring中使用getBean获取ioc容器创建的对象常见异常
    全栈开发 - 从 Vue 配置中解决 CORS 跨域问题(2分钟搞定)
    想要避免After Effects渲染失败的问题,5个小技巧必看
    SpringCloud的新闻资讯项目09 --- 用户行为-需求和接口文档
    2023 年收入最高的 10 种编程语言 Java 排第 10 位
    Docker 安装Elasticsearch、Kibana、Logstash(宝塔linux)
  • 原文地址:https://blog.csdn.net/sunny05296/article/details/133420011