CentOS 7安装mysql 技术整理
写在前面:本文学习参考了互联网上多位前辈的博文,为了表示谢意,稍后会一一列出。
https://www.cnblogs.com/qjoanven/p/7699382.html
本文主要是用RPM的方式安装mysql
1、安装前准备
1) 查看当前发行版本:(非必需)
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
我的是CentOS 7.3 这个和实际安装没有必然关系 只是介绍一下环境
2)卸载系统自带的mariaDb 数据库,如果不卸载,会在安装第一个RPM包(common)时报错,且提示库冲突,这里感谢CSDN的libaineu2004
查看mariadb数据库:
rpm -qa | grep mariadb
卸载mariadb数据库:
rpm -e --nodeps mariadb文件名
2、下载RPM安装包,做如图的选择

选择形如mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar的包下载,这个是总包,下面是子包,为避免yum源找不到镜像,推荐下载总包。

以下内容感谢博客园执剑长老,从他那里COPY过来的
3、下载后解压
将 mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar 复制到 / home/(在 linux 下面安装软件,一般都需要将文件拷贝到 home 目录下)
cp mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar /home/ # 复制到/home目录下
cd /home # 进入/home目录下
tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar # 解压文件,解压出一系列rpm 文件
安装rpm包
一般只需要安装下面几个文件,所以之前不下载总包,只下载下面这几个包应该也行。
mysql-community-client-5.7.20-1.el7.x86_64.rpm
mysql-community-common-5.7.20-1.el7.x86_64.rpm
mysql-community-devel-5.7.20-1.el7.x86_64.rpm
mysql-community-libs-5.7.20-1.el7.x86_64.rpm
mysql-community-server-5.7.20-1.el7.x86_64.rpm
这里千万注意:上面这几个文件是存在依赖关系的,所以在安装时有对应的优先级,需要按顺序安装:
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.20-1.el7.x86_64.rpm
安装成功后,开启 mysql 服务:
systemctl start mysqld.service
查看 3306 端口是否开启:
netstat -ln | grep 3306

4、修改 my.cnf 配置文件
需要找到 my.cnf 文件。my.cnf 文件的默认路径为 / etc/my.cnf。
编辑 my.cnf:
vim /etc/my.cnf
插入以下代码:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
注:validate_password=off 的意思是关闭密码验证插件(这一句必须加上,因为在修改密码的时候如果不加上会非常的麻烦)。
重启 mysql 服务:
systemctl restart mysqld.service
至此mysql安装成功,其他配置过程见后文。
4.1 修改初始密码
mysql5.7初始化后,会产生一个 临时登录密码,前面在 my.cnf 文件中配置的日志路径是 log-error=/var/log/mysqld.log, 查看此路径下面的 mysqld.log 日志, 可以找到临时密码。
cat /var/log/mysqld.log | grep password # 也可以使用cat /root/.mysql_secret命令查看,不过要保证是最新的
如下图A temporary password is generated for root@localhost:便是初始密码:

使用初始密码登录mysql:
mysql -uroot -p
然后使用如下命令修改密码:
mysql> set password=password('新密码');
例如设置密码为P@ssw0rd
则 mysql>set password=password('P@ssw0rd')
mysql> flush privileges; #刷新
4.2 添加远程访问权限
#登录mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;

这表示root 用户可以从任何主机/终端登录
mysql> flush privileges;
#退出mysql,重启mysql服务生效
5、设置防火墙
但是你会发现仍然无法远程连接mysql
那么可能是这个问题 感谢CSDN的libaineu2004
笔者注:远程连接的前提条件,先要关闭Linux的防火墙。
CentOS 7操作防火墙的命令是:
[root@localhost ~]# firewall-cmd --state #查看防火墙是否启用
[root@localhost ~]# systemctl stop firewalld#关闭防火墙
通过这种RPM的方式,你会发现mysql用户 和mysql用户组是自动建立好了
而我之前在网上苦苦搜索,按照二进制的方式安装始终没有搞定,可见对于新手来讲RPM的安装方式更为简单。

浙公网安备 33010602011771号