zoukankan      html  css  js  c++  java
  • Centos7安装mysql8教程

     

    网上的教程很多,我也参考了很多,以下是我实践的步骤,真实有效。

     

    1.配置Mysql 8.0安装源:

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

     

     

    2.安装Mysql 8.0

    sudo yum --enablerepo=mysql80-community install mysql-community-server

     

     

    以下都选y

     

     

     

     

    看到complete就是安装完啦,是不是很简单?

     

     

    3.启动mysql服务

    安装完的第一件事当然是启动mysql服务啦

    sudo service mysqld start

     

    这样就算启动完了哦,不信?看下运行状态:

    service mysqld status

     

    嗯,没骗你吧。。。

     

    4.查看root临时密码:

    安装完mysql之后,会生成一个临时的密码让root用户登录,那么临时密码在哪里看呢?

    输入以下命令就可以啦:

    grep "A temporary password" /var/log/mysqld.log

     

    我去,好复杂。。。

     

    5.更改临时密码:

    这个密码估计也只有外星人能记得住了,作为地球人,第一件事就是改成我自己容易记得密码啦。

    先用临时密码登录mysql

    输入:mysql -uroot -p

    在Enter password:后面输入密码,注意输入密码的时候是看不到的哟,别担心,直管输完回车就行。

     

    恭喜你,这样就是登录成功了。

    先在我们要改密码了哟:

    输入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

    这里的new password要改成你自己的密码哟,我想把密码改成root,所以我输入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

     

    哎哟,提示密码不满足密码验证策略,也是,密码太简单了呢。

    好吧,现在有2种选择:

    1. 把密码改复杂点,让它符合密码验证策略,这个当然是最好的,符合国际惯例;
    2. 把密码验证策略改简单点,让它适用简单的密码,这个符合懒人的做法。

    额,作为一个上进的人,那我就选择2吧。

     

    那我们先看看当前的密码验证策略是怎么样的吧。

    输入:SHOW VARIABLES LIKE 'validate_password.%';

     

    我去,重置密码之前还不让看。。。直接看官方文档吧:

     

     

    validate_password.length 是密码的最小长度,默认是8,我们把它改成4

     

    set global validate_password.length=4;

     

     

    validate_password.policy 验证密码的复杂程度,我们把它改成0

     

    set global validate_password.policy=0;

     

     

    validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它去掉

     

     

    set global validate_password.check_user_name=off;

     

     

    现在再执行修改密码的命令:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

     

    成功了,密码设成了root,但是我建议大家还是设个复杂点密码,不要这么懒哦。

     

    6.配置远程访问

    用mysql客户连接报不允许连接的错误,那是因为没开通远程访问的权限哦。

     

    百度上基本说执行

    GRANT ALL ON *.* TO 'root'@'%'; 就行了,但是一不下心报了个错:

     

    看下默认MySQL用户:

    use mysql;

    select host, user, authentication_string, plugin from user;

     

    发现root的host是localhost,不是%哦,那我们就加个host是%的root账号:

    CREATE USER 'root'@'%' IDENTIFIED BY 'root';

     

    再查下用户

    select host, user, authentication_string, plugin from user;

     

     

    可以看到已经新增了host为%的root用户

    然后再执行:

    GRANT ALL ON *.* TO 'root'@'%';

     

    成功了耶,嘿嘿。

    连接成功:

     

     

    7.navicat连接mysql

    用navicat连接mysql还是会报错:

     

    原因是mysql8的加密方式规则不一样,是caching_sha2_password

     

     

    把加密方式改成mysql_native_password就行了:

    ALTER USER '[用户名]'@'%' IDENTIFIED WITH mysql_native_password BY '[密码]';

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

     

    加密方式以及改成了mysql_native_password:

     

     

     

    这样就可以了哦。大功告成!

  • 相关阅读:
    nginx端口被占用解决方案
    linux安装pip报错
    小程序学习-小程序特点及适用场景
    总结行内元素与块级元素
    重装系统之无法在驱动器0的分区1上安装windows
    重装系统之win10不能进入bios界面
    重装系统之U盘设为第一启动项
    重装系统之制作U盘启动盘
    Vue-条件渲染v-if与v-show
    Cookie与Session
  • 原文地址:https://www.cnblogs.com/zhanyd/p/10001138.html
Copyright © 2011-2022 走看看