CentOS 7安装、卸载MySQL数据库(二)

简介

之前写过一篇博客,介绍如何使用 yum 的方式在 CentOS 7 上安装 MySQL

本文介绍如何使用程序包的方式安装 MySQL

安装

(1)下载

首先,当然是在官网上下载自己要安装版本的 MySQL,我这里下载 8.0.39,选择下面这个选项

下载下来后,上传到服务器指定目录,我这里放到 /usr/local/dev/mysql/

(2)准备

解压

shell 复制代码
tar -xvf mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz

创建软链接

shell 复制代码
ln -s mysql-8.0.39-linux-glibc2.12-x86_64 mysql-8.0.39

创建用户组

shell 复制代码
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

创建数据目录并设置权限

shell 复制代码
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
chmod -R 750 /data/mysql

如下

配置 my.cnf,这个是 MySQL 的配置文件,路径一般是 /etc/my.cnf,修改成以下内容,保存退出

conf 复制代码
[mysqld]
user            = mysql
basedir         = /usr/local/dev/mysql/mysql-8.0.39
datadir         = /data/mysql
socket          = /tmp/mysql.sock
port            = 3306
log-error       = /data/mysql/error.log
pid-file        = /data/mysql/mysqld.pid

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine = InnoDB

max_connections = 1000
open_files_limit = 65535

innodb_buffer_pool_size = 1G
innodb_log_file_size = 512M
innodb_file_per_table = 1

symbolic-links=0
explicit_defaults_for_timestamp = 1

再创建 pid 目录

shell 复制代码
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

如下

(3)初始化

敲下面的命令,初始化 MySQL,产生默认初始密码,其中前面的路径换成自己实际安装的

shell 复制代码
/usr/local/dev/mysql/mysql-8.0.39/bin/mysqld --initialize --user=mysql --datadir=/data/mysql

查看日志文件,获取初始密码

shell 复制代码
cat /data/mysql/error.log

如下,最后这个就是 root 用户的初始密码

值得一提的是,如果你在 my.cnf 中没有配置 log-error = /data/mysql/error.log,那么以上内容会直接打印在控制台,就像下面这样

(4)配置

下面将 MySQL 的启动程序,配置到环境变量中,交给 Linux 的 systemctl 命令管理

前面的路径更换成自己实际安装的

shell 复制代码
cp /usr/local/dev/mysql/mysql-8.0.39/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

如下

敲下面命令,将 MySQL 注册到系统服务中

shell 复制代码
service mysqld start

如下

敲下面的命令,将 mysql 程序加入到环境变量中

shell 复制代码
echo 'export PATH=$PATH:/usr/local/dev/mysql/mysql-8.0.39/bin' >> /etc/profile
source /etc/profile

(5)启动

这是就可以用 systemctl 命令来启停 MySQL 了,如下,启动 MySQL

shell 复制代码
systemctl start mysqld

如下

可以敲下面的命令,使用前面的默认密码连接 MySQL,然后再设置 root 账户的密码

shell 复制代码
mysql -uroot -p

连接后,敲下面的命令

shell 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你要设置的密码';
FLUSH PRIVILEGES;

如下,我设置密码为 123456,设置后使用新密码登录

远程连接

此时 MySQL 还不能被远程连接

(连接工具)

(命令行)

需要给对应的连接账户,比如 root,设置可被远程访问的权限,本地连接 MySQL,然后敲下面的命令

shell 复制代码
-- 允许 root 用户从任何主机连接
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

如下

无需重启 MySQL,这样就能连接到该 MySQL 了

卸载

以上这种安装方式,卸载无非就是把创建过的用户、文件、目录都删掉,可以通过下面这些命令执行操作

先停止服务

shell 复制代码
systemctl stop mysqld

删除之前上传 MySQL 程序包所在的目录,这里放了压缩包、解压包和软链接

shell 复制代码
rm -rf /usr/local/dev/mysql

删除 MySQL 数据

shell 复制代码
rm -rf /data/mysql

删除 MySQL 配置

shell 复制代码
rm -f /etc/my.cnf
rm -f /etc/my.cnf.d/*

删除服务

shell 复制代码
rm -f /etc/systemd/system/mysqld.service
rm -f /usr/lib/systemd/system/mysqld.service

删除启动程序

shell 复制代码
rm -f /etc/init.d/mysqld

最后再刷一下系统服务

shell 复制代码
systemctl daemon-reload

通过这些操作,MySQL 彻底移除干净了,如下

相关推荐
Nturmoils7 分钟前
只面对一张表:KingbaseES 超表如何简化海量时序数据管理
数据库
starrocks_stella40 分钟前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
数据库
这个DBA有点耶1 小时前
MySQL迁移实战:从mysqldump到专业工具的完整选型指南
数据库·mysql·dba
小白说大模型1 小时前
LLM集成数据库的幻觉治理:当AI给出的SQL建议是错的
数据库·人工智能·sql·oracle·重构·开源
zcmodeltech2 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
曹牧2 小时前
Oracle:空值排序
数据库·oracle
SelectDB2 小时前
Apache Doris 与 StarRocks 深度对比:2026 年 OLAP 引擎选型指南
数据库
lbb 小魔仙3 小时前
谁替 AI Agent 记住时间?——从航海钟到智能数据库,三百年时延坍缩史
数据库·人工智能·db
这个DBA有点耶3 小时前
读懂半连接:IN/EXISTS子查询什么时候快、什么时候慢?
数据库·性能优化·架构
01_ice3 小时前
MySQL内外连接
数据库·mysql