centos 下 mysql 安装部署及使用,其他Linux下也同理

背景:
最近开发了一款软件,需要和centos上的MySQL数据库做交互,自己配置了一个测试环境,顺便记录下centos下安装MySQL时遇到的问题。

第一步:删除已经存在的MySQL(彻底删除 MySQL):

### ① 关闭MySQL服务
service mysql stop
### ② 检查系统是否安装了MySQL数据库
rpm -qa | grep -i mysql
### ③ 卸载并删除MySQL(不检查依赖关系)(上面搜索命令搜出来的都删除)
rpm -ev --nodeps mysql-community-common-8.0.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-icu-data-files-8.0.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-client-plugins-8.0.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-libs-8.0.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-server-8.0.36-1.el7.x86_64
rpm -ev --nodeps mysql80-community-release-el7-11.noarch
rpm -ev --nodeps mysql-community-client-8.0.36-1.el7.x86_64
###  四、查看MySQL对应的文件夹并进行删除
sudo find / -name mysql
#### 删除
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/bin/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /etc/logrotate.d/mysql
### 五、最后验证一下是否删除成功
rpm -qa | grep -i mysql

如图:
图①:
在这里插入图片描述
图②:
在这里插入图片描述

第二步:安装 mysql 前 查看是否已经安装了 mariadb

mariadb 是 mysql 的一个分支, 和mysql 的安装会有冲突,如果有冲突,则需要删除。

### 检查是否安装了 mariadb
rpm -qa | grep mariadb
彻底删除 mariadb
### 2、查看是否已经安装了 mariadb 
sudo rpm -qa | grep mariadb*
yum info mariadb-server
# 3、停止数据库服务。
sudo systemctl  stop   mariadb.service
# 4、删除mariadb服务开机自启动。
sudo systemctl  disable   mariadb.service
# 5、移除mariadb程序文件。
sudo yum remove -y  mariadb*
# 6、查询mysql相关的文件并删除。
sudo find  /  -name  "mysql*" |xargs  sudo rm  -rf 
sudo find  /  -name  "mariadb*" |xargs  sudo rm  -rf 
# 检查 mariadb 是否删除了。
sudo rpm -qa | grep mariadb*

第③步:安装配置 MySQL

MySQL 输出日志的位置(有些报错信息需要在mysqld.log中进行排查):/var/log/mysqld.log

# 步骤 1: 添加 MySQL Yum Repository
## MySQL 提供了官方的 Yum Repository,可以使用它来安装最新版本的 MySQL。
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
## 更新缓存
sudo yum makecache

# 步骤 2: 安装 MySQL 服务器
sudo yum install mysql-server
## 报错: Public key for mysql-community-client-8.0.36-1.el7.x86_64.rpm is not installed
 ##-- Failing package is: mysql-community-client-8.0.36-1.el7.x86_64
 ##-- GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
### 解决:在 CentOS 7 上导入 MySQL GPG 密钥的步骤:
### 下载 MySQL GPG 密钥:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
### 再次尝试安装 MySQL 软件包:
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum makecache
sudo yum install mysql-server
## 报错:这表明已经安装的 MySQL GPG 密钥与预期的密钥不匹配。
##-- The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package.
##-- Check that the correct key URLs are configured for this repository.
### 解决:1. 移除已安装的 GPG 密钥:删除已经存在的 MySQL GPG 密钥以确保一个干净的设置:
sudo rpm -e --allmatches gpg-pubkey
### 2. 清理 Yum 缓存:
sudo yum clean all
### 2. 导入正确的 GPG 密钥:导入 MySQL 正确的 GPG 密钥:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
### 3. 再次尝试安装 MySQL 软件包:重新运行 MySQL 软件包的安装命令:
sudo yum localinstall https://repo.mysql.com/mysql80-community-release-el7.rpm
sudo yum makecache
sudo yum install mysql-server
### 报错原因, https://repo.mysql.com/mysql80-community-release-el7.rpm 这个地址不对,对了就可以了。

# 步骤 3: 启动 MySQL 服务
sudo systemctl start mysqld

# 步骤 4: 配置 MySQL : 运行以下命令以执行 MySQL 安全性脚本:
sudo mysql_secure_installation
## 报错:Error: Access denied for user 'root'@'localhost' (using password: YES)
##-- 说明 MySQL 不允许使用提供的密码连接到 MySQL 服务器。这可能是由于密码不正确或者 MySQL 用户权限的问题引起的。
### 解决:1. 确认 MySQL 服务正在运行:确保 MySQL 服务已经启动。你可以使用以下命令检查 MySQL 服务的状态:
sudo systemctl status mysqld
### 2. 重置 MySQL root 密码:如果你忘记了 MySQL root 用户的密码或者无法登录,可以尝试重新设置密码。请按照以下步骤操作:
#### a. 停止 MySQL 服务:
sudo systemctl stop mysqld
#### b. 以跳过权限检查的方式启动 MySQL:
sudo mysqld_safe --skip-grant-tables --skip-networking &
## 报错: mysqld_safe: command not found: 说明 mysqld_safe 命令未在系统中找到。
##-- 在 MySQL 8.0 中,mysqld_safe 已经不再是标准的启动方式,因此你可以尝试使用 mysqld 命令来启动 MySQL 服务。
##-- 以下是使用 mysqld 命令跳过权限检查的步骤:
### 停止 MySQL 服务:
sudo systemctl stop mysqld
### 以跳过权限检查的方式启动 MySQL:
sudo mysqld --skip-grant-tables --skip-networking &
## 报错:Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
##-- 这个错误表明你试图以 root 用户身份直接运行 mysqld,但 MySQL 8.0 不再允许直接以 root 用户身份运行 mysqld,而是通过 systemd 进行管理。
##-- 如果你想要跳过权限检查,可以通过以下步骤实现:
### 停止 MySQL 服务:
sudo systemctl stop mysqld
### 创建一个临时的 MySQL 配置文件(my.cnf):如果文件不存在,vi 将创建一个新文件。
sudo vi /etc/my.cnf
### 添加以下内容:
[mysqld]
skip-grant-tables
skip-networking
### 以系统管理员权限启动 MySQL:
sudo systemctl start mysqld
### 以 root 用户身份登录 MySQL:
mysql -u root
### 使用以下 SQL 命令更新 root 用户的密码:
UPDATE mysql.user SET authentication_string=PASSWORD('mysql') WHERE User='root';
FLUSH PRIVILEGES;
## 报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('mysql') WHERE User='root'' at line 1
### 解决:在你提供的 SQL 语句中存在语法错误。错误提示指向的位置是 ('mysql') WHERE User='root'。这部分是无效的语法。
UPDATE mysql.user SET authentication_string=PASSWORD('mysql') WHERE User='root';
## 报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('mysql') WHERE User='root'' at line 1
### 解决:实际上,PASSWORD() 函数在 MySQL 8.0 中已经不再使用,而是使用 ALTER USER 语句来设置密码。以下是正确的更新语句:
##-- 放宽密码策略: 如果你有管理员权限,可以考虑放宽 MySQL 的密码策略。这可以通过修改密码验证插件的配置来实现。
SET GLOBAL validate_password.policy = 0;
### 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'kai@_123123';
FLUSH PRIVILEGES;

# 退出 MySQL:
exit;

# 停止 MySQL:
sudo systemctl stop mysqld

# 启动 MySQL 服务:
sudo systemctl start mysqld

# 使用以下命令登录到 MySQL 服务器:
mysql -u root -p

本文地址:centos 下 mysql 安装部署及使用,其他Linux下也同理

其他有关 MySQL 的博客:
windows下 免安装版MySQL配置及使用

ps:

各位小伙伴有什么以为尽管留言哈,解决你的问题,我也会跟着成长进步,让我们一起加油。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值