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 11月 30 2015 mysql-community-client-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 275520 11月 30 2015 mysql-community-common-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2307512 11月 30 2015 mysql-community-libs-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2115668 11月 30 2015 mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 148556300 11月 30 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.pid5月 15 14:59:22 myos06 systemd[1]: Starting MySQL Server...
5月 15 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、测试普通用户和库
使用数据库工具测试连接
总结
至此,整个流程算是都圆满结束了。只要铁子门按照步骤操作,那必须妥妥的。