当前位置: 首页 > news >正文

Linux/Centos7离线安装并配置MySQL 5.7

文章目录

  • 前言
  • 1、安装包下载
  • 2、卸载MariaDB
  • 3、创建MySQL用户
  • 4、上传安装包
  • 5、创建数据目录和配置文件
  • 6、安装MySQL
  • 7、启动MySQL
  • 8、初始化MySQL
  • 9、退出验证新密码
  • 10、创建普通用户和库
  • 11、测试普通用户和库
  • 总结


前言

        博主参考了一些大佬的文章,部分收费的就看不了了,发现部分大佬的流程总有遗漏或者没说清楚的地方,为了让广大码农少走点弯路,我就在前人的基础上完善一下步骤,也就是我每一步操作的步骤。
        包好使!


1、安装包下载

安装文件下载链接:https://downloads.mysql.com/archives/community/。
在这里插入图片描述
一般都是下载64位的安装包合集,也就是第一个“Download”按钮。

2、卸载MariaDB

MariaDB是根据MySQL分开开发的,避免冲突,所以先卸载一下。
rpm是Red Hat及其衍生系统(如CentOS、Fedora)中的包管理工具,用于安装、查询、验证、更新和删除软件包。-qa是rpm的一个选项,其中-q表示查询,-a表示所有已安装的包;|为管道符,将前一个命令的输出传递给后一个命令处理;grep(Global Regular Expression Print,全局正则表达式打印),grep mariadb为过滤出包含 mariadb 关键字的行。

:这里可以先创建目录/usr/local/mysql。

root@myos06:/# mkdir /usr/local/mysql
root@myos06:/usr/local/mysql# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
root@myos06:/usr/local/mysql# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
root@myos06:/usr/local/mysql# rpm -qa | grep mariadb
root@myos06:/usr/local/mysql# rm /etc/my.cnf

rpm -e --nodeps强制卸载MariaDB(-e为卸载,--nodeps为忽略依赖检查,避免因依赖关系中断卸载)。
rm /etc/my.cnf删除残留配置文件。

3、创建MySQL用户

创建用户组,创建用户,设置密码。

root@myos06:/usr/local/mysql# groupadd mysql
root@myos06:/usr/local/mysql# useradd -g mysql mysql
root@myos06:/usr/local/mysql# passwd mysql

4、上传安装包

解压在官网下载的压缩包,我们只需要上传以下几个就够了,其他的根据自己需求安装,上传到/usr/local/mysql目录。

-rw-r--r-- 1 root  root   25649868 1130 2015 mysql-community-client-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root  root     275520 1130 2015 mysql-community-common-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root  root    2307512 1130 2015 mysql-community-libs-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root  root    2115668 1130 2015 mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root  root  148556300 1130 2015 mysql-community-server-5.7.10-1.el7.x86_64.rpm

5、创建数据目录和配置文件

root@myos06:/usr/local# mkdir /usr/local/mysql/data
root@myos06:/usr/local# vim /usr/local/mysql/my.cnf

my.cnf内容如下,可根据需求再自行调整:

[mysqld]
socket=/var/lib/mysql/mysql.sock  # 进程间通信文件路径
port=3306                        # 默认监听端口
basedir=/usr/local/mysql         # MySQL安装目录
datadir=/usr/local/mysql/data    # 数据存储目录
max_connections=200              # 最大连接数
character-set-server=utf8        # 默认字符集
lower_case_table_names=1         # 表名不区分大小写
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION  # 严格SQL模式[client]
default-character-set=utf8       # 客户端字符集[mysqld_safe]
log-error=/var/log/mysql/mysqld.log  # 错误日志路径
pid-file=/var/run/mysqld/mysqld.pid  # 进程ID文件路径

赋权目录:

root@myos06:/usr/local# chown -R mysql:mysql /usr/local/mysql
root@myos06:/usr/local# chmod 755 /usr/local/mysql/my.cnf

6、安装MySQL

按顺序安装以下包:

root@myos06:/usr/local/mysql# rpm -ivh mysql-community-common-5.7.10-1.el7.x86_64.rpm 
警告:mysql-community-common-5.7.10-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-common-5.7.10-1.e################################# [100%]
root@myos06:/usr/local/mysql# rpm -ivh mysql-community-libs-5.7.10-1.el7.x86_64.rpm 
警告:mysql-community-libs-5.7.10-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-libs-5.7.10-1.el7################################# [100%]
root@myos06:/usr/local/mysql# rpm -ivh mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm 
警告:mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-libs-compat-5.7.1################################# [100%]
root@myos06:/usr/local/mysql# rpm -ivh mysql-community-client-5.7.10-1.el7.x86_64.rpm 
警告:mysql-community-client-5.7.10-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-client-5.7.10-1.e################################# [100%]
root@myos06:/usr/local/mysql# rpm -ivh mysql-community-server-5.7.10-1.el7.x86_64.rpm 
警告:mysql-community-server-5.7.10-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-server-5.7.10-1.e################################# [100%]

7、启动MySQL

启动(如果不启动的话,那么是无法做初始化的,也没法知道数据库root的临时密码)

root@myos06:/root# systemctl start mysqld

查看状态

root@myos06:/root# systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 四 2025-05-15 14:59:26 CST; 4s agoProcess: 53312 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)Process: 53237 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 53315 (mysqld)CGroup: /system.slice/mysqld.service└─53315 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid515 14:59:22 myos06 systemd[1]: Starting MySQL Server...
515 14:59:26 myos06 systemd[1]: Started MySQL Server.

8、初始化MySQL

初始化

root@myos06:/usr/local/mysql# mysqld --initialize --user=mysql

查看初始化日志/var/log/mysqld.log中root临时密码,找关键字A temporary password is

root@myos06:/# view /var/log/mysqld.log
2025-05-15T06:59:47.299736Z 1 [Note] A temporary password is generated for root@localhost: +*lih0FOvURs

冒号空格后面的都是,可能包含特殊符号的奇奇怪怪密码,当然我们会改成简单的密码,比如123456,生产环境可别用弱口令,实际测试下来5.7.10版本不支持弱口令,哈哈。

登录(输入日志里的复杂密码):

root@t-kfwjxt-xt-06:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.10Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

修改密码(实际测试下来5.7.10版本不支持弱口令,哈哈):

mysql> SET PASSWORD = PASSWORD('P@ssw0rd');
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

9、退出验证新密码

退出:

mysql> quit
Bye

重新登录,并设置其他机器可以连接数据库:

root@t-kfwjxt-xt-06:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.10 MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'P@ssw0rd' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)mysql>

10、创建普通用户和库

mysql> CREATE USER 'testuser'@'%' IDENTIFIED BY 'P@ssw0rd';
Query OK, 0 rows affected (0.00 sec)mysql> CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.00 sec)mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON testdb.* TO 'testuser'@'%';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)mysql>

11、测试普通用户和库

使用数据库工具测试连接
在这里插入图片描述


总结

至此,整个流程算是都圆满结束了。只要铁子门按照步骤操作,那必须妥妥的。

相关文章:

  • 微服务概述
  • Loki的部署搭建
  • OpenCV 图像直方图:从原理剖析到实战应用
  • C++多态实现的必要条件剖析
  • unordered_set和unordered_map
  • AtCoder 第405场初级竞赛 A~E题解
  • 从理论到实战:模糊逻辑算法的深度解析与应用实践
  • 全面掌握JSR303校验:从入门到实战
  • 开发技术.前端开发相关问题
  • 2023年河南CCPC->F题
  • 《Python星球日记》 第81天:回看图像生成与风格迁移
  • 第一个优化
  • 2025年5月15日
  • 策略模式-枚举实现
  • 【蓝桥杯嵌入式】【模块】四、按键相关配置及代码模板
  • (6)python开发经验
  • CSRF攻击 + 观测iframe加载时间利用时间响应差异侧信道攻击 -- reelfreaks DefCamp 2024
  • MySQL数据类型之VARCHAR和CHAR使用详解
  • 湖北理元理律师事务所:债务优化如何实现“减负不降质”?
  • fscanf 读取问题指南
  • 习近平就乌拉圭前总统穆希卡逝世向乌拉圭总统奥尔西致唁电
  • 王东杰评《国家与学术》︱不“国”不“故”的“国学”
  • 云南德宏州盈江县发生4.5级地震,震源深度10千米
  • 政企共同发力:多地密集部署外贸企业抢抓90天政策窗口期
  • 向猫学习禅修之后,你会发现将生活降格为劳作是多么愚蠢
  • 十年磨一剑!上海科学家首次揭示宿主识别肠道菌群调控免疫新机制