您的位置:首页 > 运维架构 > Linux

CentOS 7 安装MySQL 5.7

2017-04-02 19:48 786 查看

前言

我个人是比较喜欢Debian,但是由于公司都是用的CentOS的,没办法只能熟悉下CentOS了。今天安装个MySQL数据库,居然踩了好几个坑。在此记录一下。

安装

环境标题就是,不多说。直接安装,可以使用官方的rpm包离线安装,也可以通过yum来进行在线安装,这里我先使用的是yum的在线安装。

官方安装指引(包含仓库源地址):https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/

推荐使用清华镜像源,速度比较快。

配置一下仓库,然后就可以使用yum了。

$ sudo vim /etc/yum.repos.d/mysql.repo


mysql.repo

[mysql]
name=CentOS-$releasever - mysql
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/
enabled=1
gpgcheck=0


开始安装

$ sudo yum makecache
$ sudo yum install mysql-server


配置密码

这里比较坑的就是,安装完成后不直接提示给你初始密码,需要先启动mysqld服务,然后到日志文件中去找,我勒个去,不过更坑的还在后面。

启动服务
$ sudo systemctl start mysqld
$ sudo vim /var/log/mysqld.log

找到类似下面这行,最后面就是初始密码了
[Note] A temporary password is generated for root@localhost: fydT=x7!5Z6e


修改初始密码

通过
mysql -uroot -p
输入初始密码进入mysql服务端,然后必须要先修改初始密码,才能使用。否则直接提示:

ERROR 1820 (HY000): You must reset your password using
ALTER USER statement before executing this statement.


要更新初始密码不说,还必须要用ALTER USER的方式进行更新,像以前常用的UPDATE形式都不行了。。

你是大哥,听你的,用就用呗。

新的更新密码命令可以使用下面这个。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH
mysql_native_password AS 'xxx新密码';


注意,这里有坑

localhost必须不变,不能使用本机ip,否则还是报上面错误:

ERROR 1820 (HY000): You must reset your password using
ALTER USER statement before executing this statement.


新密码必须要带有数字、大小写字符和特殊字符。这个是安全等级限制的。

最后别忘了刷新:

mysql> flush privileges;


配置远程访问

友情提示,在初始化密码后,一定要授予远程访问权限,如下:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxx密码' WITH GRANT OPTION;

mysql> flush privileges;


有可能会遇到,即使修改了新密码,退出后还是无法登陆。提示这个错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


后序

最后如果安装过程中,出现密码初始化等问题导致无法登陆,请不要随意重新安装,最后可能会导致很多问题,而且即使重新安装了原先密码也还是在的,不会消失,启动时提示:

[Warning] Found invalid password for user: 'root@localhost'; Ignoring user


除非彻底卸载,这又是很麻烦的事情。

这时候只需先停掉服务,然后删除掉
/var/lib/mysql
目录:

$ sudo rm -rf /var/lib/mysql


最后重启服务即可获取新的初始密码:

[Note] A temporary password is generated for root@localhost: )(srRY?+O4Z;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql