美文网首页
Centos7安装mysql,让我偶遇的坑

Centos7安装mysql,让我偶遇的坑

作者: Sam_L | 来源:发表于2018-12-14 11:48 被阅读0次

    因为在学习大数据,所以新开了一个Centos7,在安装hive的时候需要安装mysql,以前在参照安装mysql也没出现这么多问题,现在都遇到了,留个纪念给自己个儿~ 整理一下
    (有误及时通知我,我好改一下)

    采用的方式是 YUM

    1.下载mysql源安装包

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    2.安装mysql源

    yum localinstall mysql57-community-release-el7-8.noarch.rpm

    3.检查mysql源是否安装成功

    yum repolist enabled | grep "mysql.-community."

    4.修改 vim /etc/yum.repos.d/mysql-community.repo源 ,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。

    Image 1.jpg

    5.安装MySQL

    yum install mysql-community-server

    6.启动MySQL服务

    systemctl start mysqld(我只用了这个)
    systemctl start mysqld.service

    7.检查 MySQL运行状态(我没用这个)

    service mysqld status
    systemctl status mysqld.service

    8.进入mysql

    mysql -uroot -p

    9.修改临时密码-----------这里问题就来了:敲黑板!敲黑板!敲黑板!

    问题1:有临时密码(一般Mysql5.7默认安装之后root是有密码的。)

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
    只有启动过一次mysql才可以查看临时密码
    vi /etc/my.cnf
    可以查看到 error log=/var/log/mysqld.log

    我没找到临时密码,所以图只能从<博客园来自cao_xiaobo>copy滴

    grep 'temporary password' /var/log/mysqld.log


    2.png

    【连接mysql 】mysql -uroot -p
    【修改密码】mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    或者:
    mysql> set password for 'root'@'localhost'=password('123456');

    【如果这里出现1820、1819错误】参照问题2解决吧,因为我没找到密码~~~
    问题2:有点蒙啊,我发现,我发现,我发现,我的mysqld.log是空的,密码不知道。(估计是跑丢啦)
    问了度娘说要直接重置密码。方法整理如下

    (1).修改配置文件my.cfg
    [root@localhost ~]# vi /etc/my.cnf
    找到【mysqld】在之后添加 skip-grant-tables
    保存退出

    (2) 重启mysql服务
    service mysqld restart

    (3)直接登陆mysql而不需要密码
    mysql -u root (直接点击回车)

    (4)在mysql中输入(我第一次用的这句话)
    update mysql.user set authentication_string=password('123456') where user='root';
    (mysql数据库下已经没有password这个字段了,password字段改成了authentication_string)
    或者:

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

    说明:这(5)步我想放在这里做,因为之前执行到(4)步,然后执行(6)刷新,(7)退出,然后按照mysql操作都是正常工作的,但在执行./hive的时候就报错了,
    Caused by: java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
    问度娘得到de解决方法:

    (5)进入mysql尝试是否报【1820错误】,执行语句:mysql> select 1;


    Image 3.jpg

    重新设置新密码: alter user 'root'@'localhost' identified by '123456';
    提示报错:大概是----【密码设置太简单】出现以下的提示


    Image4.jpg
    【解决ERROR1819:修改参数值】
    mysql> set global validate_password_policy=0;

    mysql>set global validate_password_length=1;
    mysql>set global validate_password_mixed_case_count=2;

    【然后再执行】: alter user 'root'@'localhost' identified by '123456';
    显示:Query OK
    【再次尝试是否报1820错误】执行语句: mysql> select 1;


    Image 5.jpg
    出现这个离成功就差一丢丢啦~~~

    (6)执行 flush privileges

    (7)退出mysql

    到my.cgf中把开始添加的skip-grant-tables去掉

    (8)重启mysql服务

    登录后就可以啦

    10.添加远程登录用户

    我的此步骤是连接win的Navicat的,在执行之前务必要将mysql配置文件进行修改
    vi /etc/my.cnf
    [mysqld]下面添加:
    bind-address = 0.0.0.0

    然后执行权限设置命令:(%代表所有ip)
    mysql> GRANT ALL PRIVILEGES ON \ *.* TO 'root'@'%' IDENTIFIED BY '你自己的password' WITH GRANT OPTION;

    刷新:mysql>flush privileges

    【提示】如果还是提醒1819错误,可以参照上面解决。

    【Navicat连接】将ip地址查到连接即可。

    然后,然后,然后,我执行./hive的时候就OK了(千万别忘了先启动hadoop!!!)

    ※ 特别感谢以下地址:
    一楼留给可爱滴度娘❤~
    https://www.cnblogs.com/caoxb/
    https://www.linuxidc.com/Linux/2016-10/136522.htm
    https://www.cnblogs.com/weiwang/p/6252475.html
    http://www.cnblogs.com/shihuibei/p/9249155.html
    https://blog.csdn.net/xyajia/article/details/77096974

    相关文章

      网友评论

          本文标题:Centos7安装mysql,让我偶遇的坑

          本文链接:https://www.haomeiwen.com/subject/lwuwhqtx.html