MySQL 安装部署

概述

本文主要介绍如何在 Linux 中以 RPM 包的方式安装 MySQL 并进行相关的初始化配置,文中方案均已实践验证。

操作系统 CentOS 7.6
数据库版本 MySQL 8.4.3 LTS

[!NOTE] 说明
本文主要介绍 RPM 包的安装方式,其他安装方法可查阅官网:MySQL :: MySQL 8.4 Reference Manual :: 2.5 Installing MySQL on Linux

环境准备

从官方下载RPM包:MySQL :: Download MySQL Community Server

  • 版本:8.4.3 LTS
  • 系统:RedHat Linux / Oracle Linux
  • 内核:Linux 7 (本文是7-x86-84bit)

各个包之间存在依赖关系,如果需要安装完整版,则下载 RPM bundle tar ,里面包含了所有的RPM包。大多数情况下,标准安装MySQL只需要下载以下RPM包:

  • mysql-community-server
  • mysql-community-client
  • mysql-community-client-plugins
  • mysql-community-libs
  • mysql-community-icu-data-files
  • mysql-community-common
  • mysql-community-libs-compa

如果已安装MySQL,需要先删除旧版本:

```bash
yum list installed | grep mysql
rpm -qa | grep mysql
yum remove mysql
```

安装部署

将下载的RPM包上传至服务器目录,并在目录下执行如下命令进行安装:

```bash
$> su - mysql
$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*
```

[!NOTE] 注意
有些用户会使用 rpm -Uvh ,但是由于潜在的依赖项问题,可能会导致安装失败,因此使用 yum

安装完成后,会创建如下文件和资源:

Files or Resources Location 说明
Client programs and scripts /usr/bin 客户端程序和脚本
mysqld server /usr/sbin mysqld 服务器
Configuration file /etc/my.cnf 配置文件
Data directory /var/lib/mysql 数据目录
Error log file For RHEL, Oracle Linux, CentOS or Fedora platforms: /var/log/mysqld.log

For SLES: /var/log/mysql/mysqld.log | 错误日志文件
Value of secure_file_priv | /var/lib/mysql-files |
System V init script | For RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqld

For SLES: /etc/init.d/mysql | 初始化脚本
Systemd service | For RHEL, Oracle Linux, CentOS or Fedora platforms: mysqld

For SLES: mysql | 系统服务
Pid file | /var/run/mysql/mysqld.pid | Pid 文件
Socket | /var/lib/mysql/mysql.sock |
Keyring directory | /var/lib/mysql-keyring | 密钥环目录
Unix manual pages | /usr/share/man |
Include (header) files | /usr/include/mysql |
Libraries | /usr/lib/mysql |
Miscellaneous support files (for example, error messages, and character set files) | /usr/share/mysql |
该安装还会创建一个名为 mysql 的用户及用户组(本文已经提前创建了)。 | |

[!NOTE] 注意

  • mysql 用户是使用 useradd 命令的 -r-s /bin/false 选项创建的,因此它没有登录服务器主机的权限(有关详细信息,请参阅创建 mysql 用户和组。要切换到 mysql 用户,请使用 su 命令及选项:

    bash
    $> su - mysql --shell=/bin/bash

  • 安装旧版本的MySQL时,软件包可能已经创建了 /usr/my.cnf 的配置文件,请检查文件内容并迁移其中的所需配置至新的配置文件 /etc/my.cnf ,然后删除 /usr/my.cnf

至此安装完成,启动服务:

```bash
$> systemctl start mysqld
```

可以根据需要设置开机自启动:

```bash
systemctl enable mysqld
systemctl list-unit-files|grep mysqld
```

初始启动后,会创建超级用户root'@'localhost,用如下命令查看临时密码:

```bash
$> sudo grep 'temporary password' /var/log/mysqld.log
```

使用临时密码登录后修改密码:

```bash
$> mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
```

如果在安装过程中出现问题,可以在错误日志文件 /var/log/mysqld.log 查看相关信息。

如果需要安装多个客户端库版本以保持兼容性,使用--oldpackage,例如:

```bash
$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
```

[!NOTE] 注意
更多详细信息可参见官网文档:MySQL :: MySQL 8.4 Reference Manual :: 2.5.4 Installing MySQL on Linux Using RPM Packages from Oracle

初始配置

配置远程连接

  1. 修改 /etc/my.cnf,在mysqld 块加入配置项 bind-address=* (或者 `bind-address=0.0.0.0)。
  2. 修改 /etc/my.cnf,在mysqld 块加入配置项mysql_native_password=ON 以允许本地密码连接,重启服务。
  3. 修改用户的host字段,允许远程主机连接,用通配符 % 表示任意主机:

    ```sql
    use mysql;

    update user set host = '%' where user = 'root';

    flush privileges;
    ```

  4. 确保服务器的防火墙规则允许MySQL服务端口(默认为3306)上的入站流量。

创建用户授权登录

创建新库

```sql
CREATE DATABASE mydatabase;
```

创建用户和密码

```sql
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
```

授权用户

```sql
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
```

刷新权限

```sql
FLUSH PRIVILEGES;
```

验证登录:

```bash
mysql -h xx.xx.xx.xx -P 3306 -u myuser -p
```

常见问题

无法使用临时密码登录,登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问。

  1. 设置登录时跳过权限检查:修改 /etc/my.cnf,在mysqld 块加入配置项 skip-grant-tables ,然后重启数据库 systemctl restart mysqld

  2. 登录mysql :mysql –uroot –p

  3. 修改密码:

    sql
    update mysql.user set authentication_string = 'Root@1234' where user = 'root';
    flush privileges;

远程客户端(如Navicat、DBeaver等)连接报错:Authentication plugin 'caching_sha2_password' cannot be loaded

由于MySQL 8.4.3 默认使用的是caching_sha2_password验证方式,但客户端不支持,需要服务端开启 mysql_native_password ,即在my.cnf 文件的 [mysqld] 部分中加入mysql_native_password=ON 或者以参数 --mysql-native-password=ON 启动 MySQL 服务。

查看当前配置:

```sql
mysql> select user, host, plugin from mysql.user;
```

[!NOTE] 注意
mysql_native_password 身份验证 plugin 从 MySQL 8.0.34 开始被弃用,在 MySQL 8.4 中默认处于禁用状态 ,并从 MySQL 9.0.0 中删除。

修改my.cnf配置后MySQL无法启动

由于MySQL 8.4.3 的部分配置参数对比之前版本存在较大差异,而目前网络上大部分文章的配置参数都是早期版本,导致修改后启动服务报错,比如:

是否启用native_password,旧版本是default-authentication-plugin=mysql_native_password ,新版本是 mysql_native_password=ON

旧版本是default-authentication-plugin=mysql_native_password ,新版本是 mysql_native_password=ON

各参数配置请以官网为准:
MySQL :: MySQL 8.4 Reference Manual :: 7.1.7 Server Command Options

参考文章

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/6126.html

(0)
LomuLomu
上一篇 2025 年 1 月 13 日
下一篇 2025 年 1 月 13 日

相关推荐

  • Java智能家居革命:大数据技术赋能用户行为分析与场景自动化(214)

    🌟亲爱的技术探索者们,诚挚欢迎来到【云端科技驿站】!在这个数字化浪潮奔涌的时代,我们共同搭建了一个融合创新技术与实践智慧的交流平台。这里不仅有前沿的技术解析,更期待您分享独到见解,让我们携手在智能科技领域开疆拓土!🌟全网平台(微信公众号/CSDN/抖音/华为/支付宝/微博):云端科技一、加入【技术精英联盟】快速通道1:【云端技术精英社群(2024)】快速通道…

    2025 年 5 月 13 日
    42300
  • 【JVM】使用 IntelliJ IDEA 进行 Java 内存分析

    使用 IntelliJ IDEA 进行 Java 内存分析 前言 内存管理对于 Java 应用程序的性能至关重要,特别是在处理复杂的应用程序时,内存泄漏或内存溢出等问题可能导致性能下降甚至程序崩溃。在遇到这些问题时,内存分析工具能够帮助开发者快速定位和解决问题。IntelliJ IDEA 提供了内置的内存分析工具,可以方便地捕获并分析 Java 应用程序的内…

    未分类 2024 年 12 月 31 日
    1.6K00
  • JavaSE 核心知识精要(万字长文详解,助你快速掌握!)

    目录一. 基础语法要点1. 数据类型概述2. 数据类型转换规则3. 运算符详解4. 循环结构解析5. 方法定义规范6. 数组使用指南二. 面向对象编程1. 类与对象关系2. 构造方法解析3. 方法重载机制4. this关键字应用5. static特性说明6. 代码块执行顺序7. 访问权限控制8. 三大特性剖析封装原理继承机制多态实现9. 方法重写规则10. …

    2025 年 5 月 15 日
    34800
  • 【JavaSE】【网络协议】HTTP 请求和响应

    一、HTTP请求 1.1 请求格式 请求格式:首行+请求头(header)+空行+正文(body) 1.2 首行组成 首行组成:请求方法+URL+版本号。使用“空格”将他们分隔开。 1.2.1 请求方法 方法 说明 支持的HTTP版本 GET 获取资源 1.0 1.1 POST 传输实体主体 1.0 1.1 PUT 传输文件 1.0 1.1 DELETE 删…

    2025 年 1 月 14 日
    56800
  • 2024最新IDEA永久激活破解教程(附IDEA激活码)

    申明:本教程 IntelliJ IDEA 破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 本教程适用于 JetBrains 全系列产品,包括 IDEA、Pycharm、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等。 本教程适用 Wi…

    2024 年 6 月 22 日
    8.3K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信