centos7下安装mysql全过程
作者:独行侠_阿涛
今天作者随机尝试了一下centos7安装mysql。T_T,心路历程。。。。
这么重要的东西,不能动不动就是卧槽...之类来结尾,应该是:请看下面分享。
mysql安装
mysql安装方式很多,原本吧,想要自己下载安装包,通过ftp方式拷贝到虚拟机,但是呢,最近用yum用的很有心得,觉得简单,方便,虽说安装过程的软件目录乱七八糟,我们都不知道啥是啥,但是通过find命令还是能够统统找出来。
yum方式安装
安装mysql客户端
yum install mysql
安装mysql服务器端
yum install mysql-server
报错:
没有可用软件包 mysql-server
这个是因为本地没有相应的mysql yum仓库。需要添加。
下载MySQL Yum仓库的RPM安装包
添加rmp安装包
linux下的rpm文件是什么东西? rpm文件是linux中一种常见的软件安装包的格式。 rpm命令是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” 用来安装rpm文件 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update; -qpl:列出RPM软件包内的文件信息[Query Package list]; -qpi:列出RPM软件包的描述信息[Query Package install package(s)]; -qf:查找指定文件属于哪个RPM软件包[Query File]; -Va:校验所有的RPM软件包,查找丢失的文件[View Lost]; -e:删除包
访问:
http://dev.mysql.com/downloads/repo/yum/
找到:
选择对应的rpm(centos7就是linux7):
mysql57-community-release-el7-11.noarch.rpm
下载:可以直接下载上传,也可以通过wget方式下载下来:
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
下载好之后,查看下当前目录是否有这个rpm安装包:
补充:
ls -ltr: 对输出文件进行各种排序; 按照字符序(default): #ls -l 按照修改时间排序: #ls -t //最近修改在最上面 逆排序 : #ls -r
安装rpm安装包
yum localinstall mysql57-community-release-el7-11.noarch.rpm
安装完成后会将MySQL的Yum仓库添加到系统的仓库list中,可以/etc/yum.repos.d目录下看到新增的两个文件(mysql-community.repo和mysql-community-source.repo)。
检查MySQL Yum仓库是否被添加成功。
准备工作over。下面可以正式开始安装mysql了。
安装mysql
有了mysql的yum仓库之后,只要运行:
yum install mysql-community-server
安装完毕,就可以直接启动mysql并且查看mysql的状态:
之前安装ngxin的时候就说过了,通过yum安装的软件,都会自动帮我们把软件的启停添加到服务里头,服务的文件地址在:/usr/lib/systemd/system/mysqld.service。
mysql也例外:
- 启动:service mysqld start
- 停止:service mysqld stop
- 查看状态:service mysqld status
- 重启:service mysqld restart
提示:很多地方都说安装完成之后会有一个root用户的随机密码(路径:/var/log/mysqld.log),网友提供的截图:
但是,很不幸,我没有找到。
于是直接就是修改密码。
忘记密码修改密码(实质添加临时密码)
屏蔽安全验证
1、vi /etc/my.cnf
2、找到:
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
在下面添加:
skip-grant-tables
3、保存退出
linux mysql登入:
mysql -u root
修改密码
update user set authentication_string = password('root') where user = 'root';
补充:新版的mysql(5.7之后)的user表是没有password字段的,取而代之的是authentication_string.
修改密码之后,刷新权限
flush privileges
取消屏蔽安全校验
把之前的屏蔽安全验证的内容删除
vi /etc/my.cnf
mysql登入
重启mysql服务:
service mysqld restart
带密码登入mysql:
mysql -u root -p
输入密码:root
登入成功。
mysql使用
mysql>show databases;
发现报错了:
You must reset your password using ALTER USER statement before executing this statement
==20180322补充:通过上述方式修改密码,就跟我们安装mysql的时候它提供给我们的临时密码一样,登入之后就必须马上修改,不然就会报错--官方解释
真是奔溃啊,fuck。
修改临时密码
查询众多地方找到了解决方案:
alter user 'root'@'localhost' identified by '123456789';
执行报错:
Your password does not satisfy the current policy requirements
fuck again。
修改密码策略
查询众多地方找到解决方案:
修改密码安全策略:validate_password_policy
set global validate_password_policy=0;
上述是比较暴力的,直接将策略调整为只校验密码长度。详细可以查看: 密码策略
重新设置后就可以了如下:
远程连接mysql
通过navicat连接报错:
host 172.18.160 is not allowed to connect to this mysql server
没脾气了,半天过去了。
查询很多地方之后发现是mysql的连接策略导致的:
最暴力的方式,直接设置root用户所有ip都能访问:
update user set host='%' where user ='root'
记住:设置之后必须重启mysql服务,设置才能生效。
恭喜你,至此,mysql你可以直接用了。
补充:
问题:
Your password has expired. To log in you must change it using a client that supports expired passwords
解决:重新设置密码
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。