Centos7安装mysql,让我偶遇的坑

因为在学习大数据,所以新开了一个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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容