安装数据库 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;
授予用户 smallhui
对 pzh_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