Centos项目部署之MySQL数据库安装

安装数据库 MySQL 8

卸载 MariaDB

安装 MySQL 时可能会与 MariaDB 的文件冲突,因此需要先检查是否已安装 MariaDB,如果已安装,则需要卸载。

# 检查是否已安装 MariaDB
rpm -qa | grep -i mariadb

# 如果已安装,关闭 MariaDB 进程
sudo systemctl stop mariadb

# 检查已安装的 MariaDB 相关包
rpm -qa | grep -i mariadb

# 卸载所有 MariaDB 相关包
# 注意:请根据实际列出的包名进行卸载
sudo yum remove mariadb-libs-5.5.68-1.el7.x86_64

如何安装 MySQL

1. 获取下载链接

访问 MySQL 官方 Yum 源,选择适合的版本,右键查看源码以获取下载地址。
例如:https://dev.mysql.com/get/mysql80-community-release-el7.rpm

2. 添加 MySQL Yum 仓库
2.1 下载 MySQL Yum Repository
wget -P /usr/local/softpackage https://dev.mysql.com/get/mysql80-community-release-el7.rpm
2.2 安装 MySQL Yum Repository
sudo yum install -y /usr/local/softpackage/mysql80-community-release-el7.rpm
2.3 验证仓库是否添加成功
sudo yum repolist enabled | grep "mysql.*-community.*"
3. 安装 MySQL 8
sudo yum install -y mysql-community-server
4. 启动 MySQL 服务
4.1 启动 MySQL 服务
sudo systemctl start mysqld
4.2 检查 MySQL 服务状态
sudo systemctl status mysqld
5. 获取初始 root 密码
sudo grep 'temporary password' /var/log/mysqld.log

示例输出:请记下这个密码【Ruq?GbFns7hk】。
日志示例:2024-12-30T08:53:50.822866Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Ruq?GbFns7hk

6. 安全配置 MySQL
6.1 登录 MySQL
mysql -u root -p

输入刚才获取到的临时密码。

6.2 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword@123';
6.3 创建用户外网 IP 连接

创建一个名为 pzh 的用户,允许从任何主机(%)连接,密码设置为 YourPassword@123

CREATE USER 'pzh'@'%' IDENTIFIED BY 'YourPassword@123';
6.4 授予用户权限

授予用户 pzh 对所有数据库(*.*)的全部权限(ALL PRIVILEGES),并允许该用户将权限授予其他用户(WITH GRANT OPTION)。

GRANT ALL PRIVILEGES ON *.* TO 'pzh'@'%' WITH GRANT OPTION;
6.5 修改用户身份验证方式

将用户 pzh 的身份验证方式改为 mysql_native_password,以确保某些客户端能够正常连接。

ALTER USER 'pzh'@'%' IDENTIFIED WITH mysql_native_password;
6.6 刷新授权
FLUSH PRIVILEGES;
6.7 重启 MySQL 服务
sudo systemctl restart mysqld
7. 设置开机自启动
sudo systemctl enable mysqld

扩展知识

创建只读用户

创建一个名为 smallhui 的用户,密码为 PanZonghui@123456

CREATE USER 'smallhui'@'%' IDENTIFIED BY 'PanZonghui@123456';

将用户认证插件改为旧版 mysql_native_password,确保某些客户端能够正常连接。

ALTER USER 'smallhui'@'%' IDENTIFIED WITH mysql_native_password;

授予用户 smallhuipzh_blog 数据库的只读权限。

GRANT SELECT ON pzh_blog.* TO 'smallhui'@'%';

刷新权限。

FLUSH PRIVILEGES;

查看用户权限。

SHOW GRANTS FOR 'smallhui'@'%';
常用操作 MySQL 的系统命令
# 查看 MySQL 服务的运行状态
sudo systemctl status mysqld
# 启动 MySQL 服务
sudo systemctl start mysqld
# 停止 MySQL 服务
sudo systemctl stop mysqld
# 重启 MySQL 服务
sudo systemctl restart mysqld

# 检查 MySQL 服务是否设置为开机自动启动
sudo systemctl is-enabled mysqld
# 设置 MySQL 服务为开机自启动
sudo systemctl enable mysqld
# 禁止 MySQL 服务为开机自启动
sudo systemctl disable mysqld
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 验证是否开机自启动
sudo reboot # 重启系统
sudo systemctl status mysqld # 查看状态
常用 MySQL 命令
-- 查询 MySQL 用户列表
SELECT User, Host FROM mysql.user;

-- 查看用户权限
-- 示例:查看用户 'smallhui'@'%' 的权限
SHOW GRANTS FOR 'smallhui'@'%';
-- 示例:查看用户 'root'@'localhost' 的权限
-- SHOW GRANTS FOR 'root'@'localhost';

-- 查看 MySQL 版本
SELECT VERSION();

-- 查看 MySQL 的端口号
SHOW GLOBAL VARIABLES LIKE 'port';

如何卸载 MySQL

# 检查是否已安装 MySQL
rpm -qa | grep -i mysql

# 停止 MySQL 服务
sudo systemctl stop mysqld

# 禁用 MySQL 开机自启
sudo systemctl disable mysqld

# 检查已安装的 MySQL 相关包
rpm -qa | grep -i mysql

# 卸载所有 MySQL 相关包
sudo yum remove -y $(rpm -qa | grep -i mysql)

# 再次检查是否已经移除干净
rpm -qa | grep -i mysql

# 删除 MySQL 数据目录
rm -rf /var/lib/mysql

# 删除 MySQL 配置文件
rm -f /etc/my.cnf
rm -rf /etc/my.cnf.d/

# 删除 MySQL 相关的系统服务配置
sudo rm -f /usr/lib/systemd/system/mysqld.service

# 重新加载 systemd 配置
sudo systemctl daemon-reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值