安装与卸载中,⽤⼾全部切换成为root,⼀旦安装,普通⽤⼾也能使⽤。
有的系统自带数据库,或者mariadb(MySQL的一种分支版本),有的可以使用,但作为MySQL数据库的学习,需要把其他的卸载掉。
在Linux中,采用yum的方式获取安装包,一般都是
.rpm
的,rpm -qa
就能查到所有的安装包,但此时只想查看MySQL的,所以grep筛选一下:
mysql的数据文件一般不会随着卸载而被删除,数据会保存在/var/lib/mysql/目录下,但不会对我们的后续安装MySQL产生影响。
所以,卸载不要的环境最终可以总结以下这三点:
做完前两步后my.cnf若仍存在,可以选择使用rm指令删除配置文件或者备份起来。
官方yum源中存在多个版本,要结合我们自己的系统版本进行相应的版本下载,否则可能会存在软件兼容性问题。
下载之后放到桌面,方便通过rz命令传到centos中。为了方便管理,在root的家目录新建一个MySQL目录来保存此文件:
不存在mysql的yum源,所以直接安装会失败,现在就需要先进行相应的yum源安装:
安装好之后,观察一下此时的yum源列表:
此时就可以查看安装的这个yum源,可以看到有若干个版本:
vim /etc/yum.repos.d/mysql-community.repo
总结一下:获取步骤可大致分为以下几步:
yum list | grep mysql
说明此时mysql的yum源已经生效。此时mysql-community-release-el7.rpm安装包没有用处了,可以删掉也可以不进行处理。删掉之后也可以查看:
此时已有了一键安装mysql的条件。
yum install -y mysql-community-server
若存在以上问题,说明没有安装成功,此时将标题翻到:常见问题,对此进行解决。
验证是否安装成功:
首先查看是否存在my.cnf的文件:
查看mysql客户端:
三位一体,就安装成功了。
启动mysql
此时可以查看mysql的端口号:(mysql是一种网络服务)
前三节已经安装好了mysql,在使用之前还需要进行登陆:
登陆方法有多种,但这里了解常见的一种就行了。
方法步骤:
vim /etc/my.cnf
systemctl stop mysqld
systemctl start mysqld
最后显示的mysql>表示已经登陆成功,可以使用mysql了。
下面的各个名称都是数据库。
输入quit退出数据库。
配置⼀下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
不过云服务器不会关机,因此没什么影响。
确保您在终端命令⾏中可以输⼊中⽂
[whb@VM-0-3-centos ~]$ env |grep LANG
LANG=en_US.utf8
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
安全策略性更好,一旦设置免密码登陆,就不能网络登陆了,只能进行本地的域间套接字进行通信,因此我在配置skip-grant-tables后netstat -nltp查不到相应的网络端口号等等,因为免密码登陆导致不安全,8.0版本为了保证安全就就禁止掉了网络通信。
解决方案:若想查到网络进程,则只需把免密登陆的配置注释掉即可。
8.0在后续的练习,不会出现问题。只有可能在mysql链接C语言时会出现问题,所以到时候在换成5.6版本的mysql。
腾讯云服务器Linux(CentOS7)Mysql8远程连接失败,port端口为0,