MySQL在centos7环境安装
- 一.卸载不要的环境
- 二.获取mysql官方yum源
- 三.安装mysql服务
- 四.mysql登陆
- 五.设置配置文件my.cnf
- 六.设置开机启动【可以不设】
- 七.常见问题
安装与卸载中,⽤⼾全部切换成为root,⼀旦安装,普通⽤⼾也能使⽤。
一.卸载不要的环境
- 陈旧环境清理
有的系统自带数据库,或者mariadb(MySQL的一种分支版本),有的可以使用,但作为MySQL数据库的学习,需要把其他的卸载掉。
- 首先检查是否含有MySQL数据库、mariadb数据库。
- 如果存在MySQL,那么先关闭它,再进行卸载。
在Linux中,采用yum的方式获取安装包,一般都是
.rpm
的,rpm -qa
就能查到所有的安装包,但此时只想查看MySQL的,所以grep筛选一下:
- 查看mysql安装包。
- 卸载3中查找的安装包(如果你的系统中存在,就需要删掉)。
- 确认是否存在遗留文件:ls /etc/my.cnf ,若有则需要删除。
mysql的数据文件一般不会随着卸载而被删除,数据会保存在/var/lib/mysql/目录下,但不会对我们的后续安装MySQL产生影响。
所以,卸载不要的环境最终可以总结以下这三点:
- 不存在mysql对应的rpm包
- 没有对应的mysql进程
- 没有my.cnf配置文件
做完前两步后my.cnf若仍存在,可以选择使用rm指令删除配置文件或者备份起来。
二.获取mysql官方yum源
官方yum源中存在多个版本,要结合我们自己的系统版本进行相应的版本下载,否则可能会存在软件兼容性问题。
- 首先需要查看我们系统的版本:
- 然后在官方中找到对应的版本进行下载:找到后直接点击
下载之后放到桌面,方便通过rz命令传到centos中。为了方便管理,在root的家目录新建一个MySQL目录来保存此文件:
- 查看yum源是否含有MySQL&&mysql的yum源安装
不存在mysql的yum源,所以直接安装会失败,现在就需要先进行相应的yum源安装:
- 注:ivh选项相当于拷贝。
安装好之后,观察一下此时的yum源列表:
此时就可以查看安装的这个yum源,可以看到有若干个版本:
vim /etc/yum.repos.d/mysql-community.repo
总结一下:获取步骤可大致分为以下几步:
- 在MySQL官网中找到对应的yum源并进行下载。
- 通过rpm进行安装。
- 安装前后效果就是更新本地yum源,让其中具有MySQL的yum源。
- 测试是否可以查到关于MySQL的内容(比较慢)
yum list | grep mysql
说明此时mysql的yum源已经生效。此时mysql-community-release-el7.rpm安装包没有用处了,可以删掉也可以不进行处理。删掉之后也可以查看:
此时已有了一键安装mysql的条件。
三.安装mysql服务
yum install -y mysql-community-server
若存在以上问题,说明没有安装成功,此时将标题翻到:常见问题,对此进行解决。
验证是否安装成功:
首先查看是否存在my.cnf的文件:
查看mysqld服务端:
查看mysql客户端:
三位一体,就安装成功了。
启动mysql
此时可以查看mysql的端口号:(mysql是一种网络服务)
四.mysql登陆
前三节已经安装好了mysql,在使用之前还需要进行登陆:
登陆方法有多种,但这里了解常见的一种就行了。
方法步骤:
- 打开mysql配置文件:my.cnf。
vim /etc/my.cnf
- 在尾部添加:skip-grant-tables 并保存。
- mysqld服务重启生效
systemctl stop mysqld
systemctl start mysqld
- 登陆mysql
最后显示的mysql>表示已经登陆成功,可以使用mysql了。
下面的各个名称都是数据库。
输入quit退出数据库。
五.设置配置文件my.cnf
配置⼀下my.cnf,主要是数据库客⼾端和服务器的编码格式->统一使用UTF-8的编码格式。
mysql作为网络服务,那么就可以更改其指定的端口号,通过配置my.cnf进而更改端口号。(仅仅演示,后续仍需要改回)
-
datadir=/var/lib/mysql代表数据库未来建表建库时的对应数据所在的路径。
-
socket:域间套接,会把本地mysql进程的pid放到mysql.sock中。
-
log-error:错误日志放到mysqld.log中‘
-
character-set-server:编码格式为utf-8
-
default-storage-engine:存储引擎为innodb
配置之后为了生效,需要重新启动mysqld:
systemctl restart mysqld
记得改回3306。
六.设置开机启动【可以不设】
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload
不过云服务器不会关机,因此没什么影响。
七.常见问题
- mysql 已经配置了客⼾端服务器utf8编码,但是⽆法输⼊中⽂
确保您在终端命令⾏中可以输⼊中⽂
[whb@VM-0-3-centos ~]$ env |grep LANG
LANG=en_US.utf8
- 安装遇到秘钥过期的问题:(三.安装mysql服务出现了此情况)
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决方案:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
再重新安装mysql-community-server。
yum install -y mysql-community-server
- mysql8.0的防火墙问题:
安全策略性更好,一旦设置免密码登陆,就不能网络登陆了,只能进行本地的域间套接字进行通信,因此我在配置skip-grant-tables后netstat -nltp查不到相应的网络端口号等等,因为免密码登陆导致不安全,8.0版本为了保证安全就就禁止掉了网络通信。
解决方案:若想查到网络进程,则只需把免密登陆的配置注释掉即可。
8.0在后续的练习,不会出现问题。只有可能在mysql链接C语言时会出现问题,所以到时候在换成5.6版本的mysql。
腾讯云服务器Linux(CentOS7)Mysql8远程连接失败,port端口为0,