zoukankan      html  css  js  c++  java
  • centos7安装mysql8

    1.安装前清理

      1.1. 清理原有数据库
        1.1.1. 清理软件包
          使用 “rpm -pa | grep mysql” 查看原有的软件包和依赖包,将结果使用 “yum remove 包名”逐一删除。
        1.1.2. 清理配置
          使用“find / -name mysql”查看所有mysql配置,将结果使用“rm -rf 文件名”逐一删除。
      1.2. 删除 mariadb 文件
        由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
        查看:rpm -qa | grep mariadb
        可能结果:mariadb-libs-5.5.56-2.el7.x86_64
        删除:rpm -e mariadb-libs-5.5.56-2.el7.x86_64
        如果出错,则使用强制删除:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    2. 下载安装包
      centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;
      2.1. 访问官网,查看最新安装包
        https://dev.mysql.com/downloads/repo/yum/
      2.2. 选择版本,点击“download”

        

      2.3. 登录
        如果是未登录状态,会要求登录。此时会跳转到 oracle 单点登录页面,登录自己的 oracle 账号即可(没有账号就注册一个,现在下载 oracle 的产品都需要登录,比如 jdk)
      2.4. 登录后回到上述页面,右键选择的版本对应的download按钮,点击“复制链接地址菜单项”
      2.5. 登录Linux服务器,进入到某个目录(如 /usr/local/src),使用 wget 下载源安装包
        wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

    3. 安装mysql源
      3.1. 安装 yum repo 文件
        rpm -ivh mysql80-community-release-el7-3.noarch.rpm
        执行结果会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

          

      3.2. 更新yum缓存
        yum clean all

          

        yum makecache

          

    4. 安装mysql服务器
      4.1. 选择版本
        当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
        4.1.1. 查看mysql yum仓库中mysql版本,使用如下命令
          yum repolist all | grep mysql

            

          可以看到mysql8是可用的,其它是禁用的,我正好是需要安装mysql8,所以不用管了。如果想要安装其它版本可以修改

        4.1.2. 修改禁用启用规则
          yum-config-manager --enable mysql57-community
          如果命令无效,可以直接编辑 mysql repo

            

      4.2. 安装mysql服务
        yum install mysql-community-server

        中间有需要确认的步骤就一直 “y” 就行了。

        

        

    5. 启动服务,测试连接
      启动:systemctl start mysqld.service
      停止:systemctl stop mysqld.service
      重启:systemctl restart mysqld.service
      查看服务状态:systemctl status mysqld.service
    6. 修改初始密码
      6.1. 查看初始密码
        mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
        查看:cat /var/log/mysqld.log

        

        初始登录密码只能用于登录mysql,不能进行其它操作。会强制要求用户修改密码。

      6.2. 修改初始密码

        使用初始密码登录:mysql -uroot -p

        如果不修改,则任何操作时会提示如下错误:

          You must reset your password using ALTER USER statement before executing this statement.

        修改方式是登录后使用以下语句

          ALTER USER USER() IDENTIFIED BY '新密码'

        值得注意的是,新密码必须符合安全策略(就是足够复杂,mysql8的默认安全策略级别是 中等,像123456这些肯定是过不了的),否则会提示如下错误:

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

        修改成功之后我们可以看一下mysql服务器的密码安全策略等级:SHOW VARIABLES LIKE 'validate_password%',结果如下:

          

    7. 允许远程登录

      mysql8安装完成之后,root用户只允许本地登录远程登录会报错:

        ERROR 1130 (HY000): Host 'xxx(ip)' is not allowed to connect to this MySQL server

      放开远程权限的方法是登录之后,执行

        use mysql;

        update user set host = '%' where user = 'root';

        flush privileges;

    8. 修改密码加密方式

      经过 7. 之后,发现远程还是不能登录,但是报错有所不同了:

        Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

      这是因为mysql7之后,默认的密码加密方式更改了,但是你使用的客户端没有升级,不支持此种加密方式,解决方法是更改服务器加密方式为传统加密方式或者升级客户端。如果是新项目建议使用第二种,毕竟新的肯定更好。如果是存量项目的数据库迁移或者升级,考虑到兼容问题和稳定性,建议使用第一种。

      修改加密方式为本地登录之后执行:

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

      至此,mysql服务已经可以使用了。

    9. 修改默认服务端口

      mysql默认端口号是 3306。一般线上数据库,出于安全考虑,都会修改默认端口号。

      9.1. 编辑“/etc/my.cnf”文件

        vi /etc/my.cnf

      9.2. 添加行

        port=新端口;

      9.3. 重启mysql服务

        systemctl restart mysqld.service

    完!

  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/coding-one/p/11698271.html
Copyright © 2011-2022 走看看