在centos7上安装mysql5.7

boolwin / 2024-10-23 / 原文

1、此处是在MySQL官网获取的rpm包(也可直接在linux中使用yum获取这个rpm包到本地)

 

 

 

在MySQL官方网站的最底下找到这个
此处选择的MySQL版本5.7.44,操作系统选Oracle Linux,OS版本选择linux 7下载

将下载好的二进制文件包上传到centos7中
在windows系统中上传文件到虚拟机里面,可使用Xftp工具上传

mysql官方文档中有说明需要libaio库(如果centos7里面没有libaio库的话,使用下面命令安装libaio库,也可以使用此命令自检有没有这个库)

yum install libaio

 

此处使用的centos系统,会预装一个mariadb数据库,这个数据库会跟mysql有冲突,需卸载

# 使用以下两个命令检查是否已经存在这两个数据库,如果存在,则卸载
rpm -qa | grep mariadb
rpm -qa | grep mysql
# 卸载命令,如果出现依赖冲突,卸载不成功,则再后面追加 --nodeps 这个忽略依赖检查,强制卸载
rpm -e [此处粘贴上面查看到的数据库名,将出现的红色部分全部复制粘贴到此处] [--nodeps]

解压mysql的rpm包并安装mysql(此处的rpm包是放在opt/software目录底下的,这个目录是自建的)

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /opt/software/mysql5
#这里为了方便把rpm包解压到了mysql5这个自建的目录底下了
解压后的mysql包的各个部分

解压完后,依次执行命令安装mysql的rpm包

#加 --nodeps 是忽略出现的依赖问题,强制安装
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm --nodeps
————————————————

执行一下命令启动mysql服务

对于 Red Hat Enterprise Linux、Oracle Linux、CentOS 和 Fedora 系统,使用以下命令启动 MySQL

# 启动mysql服务
service mysqld start
# 查看启动状态
service mysqld status

对于 SLES 系统,命令相同,但服务名称为 不同

# 启动mysql服务
service mysql start
# 查看启动状态
service mysql status
此图片为启动成功截图(重点看绿色标识地方

自定义密码

第一次启动mysql服务,需要修改MySQL root用户的登录密码,此处为了方便将其密码修改成123456

获取root用户的临时登录密码,进入MySQL客户端,临时密码默认路径是在mysql的错误日志文件中
# 使用此命令可直接查看到临时密码
grep 'temporary password' /var/log/mysqld.log

 

冒号后面的就是临时密码,复制粘贴,进入mysql客户端需要这个临时密码,输入密码都是隐藏的,粘贴好就直接进入,没进入就多试几次(如图是进入后的界面)

因为mysql默认的密码修改策略是要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,以及总密码 长度至少为 8 个字符。为了设置一个简单方便的登录密码123456

# 修改密码安全策略为低
set global validate_password_policy = low;
# 修改密码长度为六位
set global validate_password_length = 6;
# 修改root用户的密码--- 修改密码这个要注意需要重新登录 

提示信息是:Ignoring query to other database。根据错误可以,知道,是忽略了对其他表的查询。

 

折腾了半天才发现原来是在连接mysql时没有"-u"参数导致的。

重新使用命令:

mysql -uroot -P;

然后再修改密码
alter user 'root'@'localhost' identified by '123456';

 

设置mysql的远程连接

进入mysql的客户端,查看root用户的访问权限

select user,host from mysql.user;

# 设置root的host为 %

update mysql.user set host= '%' where user= 'root';

# 设置好后刷新权限

flush privileges;

 

 MYSQL常用命令

# 直接登陆mysql
mysql -u用户名 -p密码 数据库名
# 例如:
mysql -uroot -p123456 mysql

# 先登陆后面再输入密码和选择数据库
mysql -u root -p
Enter password: “root用户密码”
mysql> use mysql # 选择要操作的数据库

# 切换数据库
use 数据库名;

# 查看所有数据库
show databases;

# 查看登陆数据库中所有的表
show tables;

# 查看数据表结构
desc 表名;

# 查看登陆用户名
select user();

# 查看登陆数据库库名
select database();

# 查看版本
select version();

# 显示当前时间
select now();

# 查看所有用户的 用户名、可登陆主机、身份验证插件、密码
select user,host,plugin,authentication_string from user;

# 查看当前登录用户权限
show grants;

# 查看任意用户权限(后面说权限的具体含义)
show grants for root@localhost;

 

也可以直接进入服务器的目录,在根目录下找到firewall的文件夹,然后找到public.xml文件打开

新增完成后,重载防火墙,命令: firewall-cmd --reload