Centos上安装Mysql5.7教程
目录
一.开始
1. 添加 MySQL Yum 仓库
2. 安装 MySQL 5.7
3. 启动 MySQL 服务
4. 获取初始密码
5. 安全配置 MySQL
6. 登录 MySQL
7.常用管理命令
8.配置文件位置
9.修改默认配置(可选)
10. 卸载Mysql
11. 常见问题
11.1 忘记密码重置
11.2 MySQL GPG 密钥与当前软件包不匹配
二. 图形化界面访问数据库
1.进入服务器找到防火墙
2.添加规则(开放端口号)
3.我们以SQLog工具为例子
一.开始
1. 添加 MySQL Yum 仓库
# 下载 MySQL 官方 Yum 源
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装 Yum 源
sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm# 验证仓库是否添加成功
sudo yum repolist enabled | grep "mysql.*-community.*"
2. 安装 MySQL 5.7
# 安装 MySQL 服务器
sudo yum install mysql-community-server -y
3. 启动 MySQL 服务
# 启动服务
sudo systemctl start mysqld# 设置开机自启
sudo systemctl enable mysqld# 检查状态
sudo systemctl status mysqld
4. 获取初始密码
# 获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:A temporary password is generated for root@localhost: 3e5g7G!qQw2e
5. 安全配置 MySQL
# 运行安全脚本
sudo mysql_secure_installation
按提示操作:
- 输入临时密码
- 设置新密码(需包含大小写字母、数字和特殊字符)
- 移除匿名用户:Y
- 禁止 root 远程登录:Y(根据需求选择)
- 移除 test 数据库:Y
- 立即重载权限表:Y
6. 登录 MySQL
mysql -u root -p
登录成功!!!
7.常用管理命令
# 启动服务
sudo systemctl start mysqld# 停止服务
sudo systemctl stop mysqld# 重启服务
sudo systemctl restart mysqld# 查看状态
sudo systemctl status mysqld
8.配置文件位置
# 主配置文件
/etc/my.cnf# 数据存储目录
/var/lib/mysql# 错误日志
/var/log/mysqld.log
9.修改默认配置(可选)
sudo vi /etc/my.cnf
常用配置项
[mysqld]
# 设置字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci# 最大连接数
max_connections=500# 表名不区分大小写
lower_case_table_names=1# 开启慢查询日志
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=2
修改后重启
sudo systemctl restart mysqld
10. 卸载Mysql
# 停止服务
sudo systemctl stop mysqld# 卸载软件包
sudo yum remove mysql-community-server mysql57-community-release# 删除数据文件
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/log/mysqld.log
11. 常见问题
11.1 忘记密码重置
# 停止 MySQL
sudo systemctl stop mysqld# 跳过权限检查启动
sudo mysqld_safe --skip-grant-tables &# 登录 MySQL
mysql -u root# 重置密码
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;# 重启 MySQL
sudo systemctl restart mysqld
11.2 MySQL GPG 密钥与当前软件包不匹配
The GPG keys listed for the "MySQL 5.7 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. Failing package is: mysql-community-libs-5.7.44-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
当出现以上错误 终极解决方案
这个错误表明系统上安装的 MySQL GPG 密钥与当前软件包不匹配,即使您已经尝试过修复。别担心,我会提供一套完整的解决方案来解决这个顽固的问题:
1: 完全清除所有 MySQL 相关组件
# 停止并移除所有 MySQL 服务
sudo systemctl stop mysqld 2>/dev/null
sudo yum remove -y mysql-community-* mysql57-community-release# 删除所有残留文件和配置
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf*
sudo rm -rf /var/log/mysqld.log
sudo rm -f /etc/yum.repos.d/mysql-community*
sudo rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql*
# 清理 RPM 数据库中的旧密钥
sudo rpm -e --allmatches gpg-pubkey $(rpm -qa | grep 'gpg-pubkey.*mysql' | sed 's/gpg-pubkey-//')
2: 下载并安装最新的仓库配置
# 下载最新的仓库配置 (2023年更新)
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装仓库配置(跳过依赖检查)
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm --nodeps --force
3: 手动下载并安装正确的 GPG 密钥
# 创建 GPG 密钥目录
sudo mkdir -p /etc/pki/rpm-gpg# 下载 2023 版新密钥
sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 \https://repo.mysql.com/RPM-GPG-KEY-mysql-2023# 创建正确的符号链接
sudo ln -sf /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql# 导入密钥到 RPM 数据库
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
4: 手动编辑仓库文件
sudo vi /etc/yum.repos.d/mysql-community.repo
确保内容如下(特别注意
gpgkey 路径):
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 # 关键修改
5: 手动下载并安装 RPM 包(跳过 Yum)
# 创建缓存目录
mkdir -p ~/mysql-install
cd ~/mysql-install# 下载所有必要组件
sudo yum install --downloadonly --downloaddir=./ \mysql-community-common \mysql-community-libs \mysql-community-client \mysql-community-server# 手动安装所有 RPM 包(强制安装)
sudo rpm -ivh *.rpm --nodeps --force# 如果仍有签名警告,强制忽略
sudo rpm -ivh *.rpm --nodeps --force --nosignature
6: 启动并配置 MySQL
# 启动服务
sudo systemctl start mysqld# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log# 安全配置
sudo mysql_secure_installation
如果上述方法仍然失败
备选方案 1: 使用官方 MySQL Yum 仓库的 Docker 容器
# 安装 Docker
sudo yum install -y docker
sudo systemctl start docker# 在容器中运行 MySQL 5.7
sudo docker run -d \--name mysql57 \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=your_password \mysql:5.7
备选方案 2: 改用 MariaDB(完全兼容 MySQL 5.7)
# 安装 MariaDB
sudo yum install -y mariadb-server# 启动服务
sudo systemctl start mariadb
sudo systemctl enable mariadb# 安全配置
sudo mysql_secure_installation# 验证版本(会显示兼容性)
mysql -V
二. 图形化界面访问数据库
通过图形化界面访问部署的服务器必须开放服务器上的防火墙
1.进入服务器找到防火墙
2.添加规则(开放端口号)
根据自己需求添加开放的端口即可。
3.我们以SQLog工具为例子
遇到以上1130错误该怎么办?
3.1解决方案
使用root权限登录数据库后选择mysql库
mysql -u root -p
use mysql;
查看mysql库中的user表的host值后修改为通配符%
select host from user where user='root';
update user set host='%' where user='root';
flush privileges;
查看修改结果并重新测试
select user,host from user;
此时即可连接成功!!!!
以上内容希望对大家有帮助 ,如有错误,请大家积极指出!!!一起进步