Linux CentOS 安装 MySQL 服务教程

发布于:2024-04-11 ⋅ 阅读:(69) ⋅ 点赞:(0)

Linux CentOS 安装 MySQL 服务教程

1. 查看系统和GNU C库(glibc)版本信息

1.1 查询机器 glibc 版本信息

glibc,全名GNU C Library,是大多数Linux发行版中使用的C库,为系统和应用程序提供核心的API接口。在Linux系统中,特别是在需要编译或运行依赖特定版本glibc的软件时,了解当前安装的glibc版本是非常重要的。

要查看CentOS 7系统中glibc的版本信息,你可以通过执行命令行指令来实现。以下是一些获取glibc版本信息的方法:

  1. 使用ldd命令ldd命令通常用于打印程序或文件所以来的共享库列表,但也可以用来查看 glibc 的版本信息。
    执行命令:
    ldd --version
    
    这个命令会打印出ldd的版本信息,它通常与glibc的版本相匹配。输出的第一行会显示glibc的版本号,操作后如下所示:
    在这里插入图片描述
  2. 查询 glibc 包的版本: 在基于RPM的系统(如CentOS)中,glibc作为一个软件包安装。你可以使用 rpm 命令查询 glibc 包的版本信息。
    执行命令:
    rpm -a glibc
    
    这个命令会返回已安装的glibc软件包的版本信息。
    如下所示:
    在这里插入图片描述

1.2 查询系统 CPU 架构信息

lscpu 命令在 Linux 系统中用于显示 CPU 架构信息,包括CPU的类型、核心数、每个核心的线程数、CPU的家族、型号等详细信息。这个命令聚合了从系统的多个资源(如/proc/cpuinfo文件)收集的信息,以便为用户提供一个用于系统CPU配置的全面视图。

以下是lscpu能够提供的一些关键信息:

  • 架构:显示处理器架构,比如x86_64表示64位处理器。
  • CPU运行模式:显示 CPU 支持的运行模式,通常是32位或64位。
  • CPU数量:物理CPU数量。
  • 每个CPU的核心数:每个物理CPU中核心的数量。
  • 每个核心的线程数:每个核心能够同时处理的线程数,有助于了解CPU的超线程技术。
  • CPU家族和型号:提供CPU的制造商、家族和具体型号信息。
  • 缓存大小:显示CPU缓存的大小,这对于评估处理器性能非常重要。

如下所示:
在这里插入图片描述

2. 根据系统版本信息下载合适的 MySQL 服务

从上面的截图中可以看到,我本地的系统是架构是 aarch64,glibc 版本是 glibc-2.17-317.el7.aarch64,访问 MySQL 服务下载的官网:https://dev.mysql.com/downloads/mysql/

下载对应的版本如下所示:
在这里插入图片描述
下载好后,可以用 scp 命令将安装包上传至服务器中。

安装 MySQL 服务

  1. 解压压缩包
    使用命令 tar -xvf mysql-8.0.36-linux-glibc2.17-aarch64.tar.xz

  2. 移动MySQL文件
    将解压后的文件重命名,并移动到你指定的目录下
    mv mysql-8.0.36-linux-glibc2.17-aarch64 mysql-8.0.36

  3. 添加用户和用户组
    添加mysql用户和用户组:useradd mysql
    在这里插入图片描述

  4. 创建 mysql 数据目录
    使用命令mkdir data创建数据目录,如下所示:
    在这里插入图片描述
    并修改权限:chown mysql:mysql -R /opt/mysql/mysql-8.0.36

  5. 在MySQL目录下创建my.cnf文件

    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=mysql
    basedir=/opt/mysql/mysql-8.0.36
    datadir=/opt/mysql/mysql-8.0.36/data
    socket=/opt/mysql/mysql-8.0.36/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    character_set_server=utf8
    log-error=/opt/mysql/mysql-8.0.36/logs/mysql.log
    pid-file=/opt/mysql/mysql-8.0.36/logs/mysql.pid
    
    #
    # include all files from the config directory
    #
    # !includedir /etc/my.cnf.d
    

    在这里插入图片描述

  6. 初始化 mysql
    命令如下:
    /opt/mysql/mysql-8.0.36/bin/mysqld --defaults-file=/opt/mysql/mysql-8.0.36/my.cnf --basedir=/opt/mysql/mysql-8.0.36/ --datadir=/opt/mysql/mysql-8.0.36/data/ --user=mysql --initialize

  7. 查看数据库密码
    在这里插入图片描述

  8. 安装 MySQL 服务
    创建 systemd 服务文件,在 /etc/systemd/system/ 目录下,创建 mysql8.service 文件:

    [Unit]
    Description=MySQL 8 Server
    After=network.target
    After=syslog.target
    
    [Install]
    WantedBy=multi-user.target
    
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/opt/mysql/mysql-8.0.36/bin/mysqld --defaults-file=/opt/mysql/mysql-8.0.36/my.cnf
    LimitNOFILE = 5000
    

    确保 ExecStart 中的路径指向你的 mysqld 可执行文件的位置,并且 --defaults-file 参数指向正确的配置文件。
    重新加载 systemd 配置,让 systemd 识别新的服务:
    sudo systemctl daemon-reload
    启动 MySQL 服务:
    sudo systemctl start mysql8
    设置开机自启:
    sudo systemctl enable mysql8

  9. 登录数据库
    使用命令 /opt/mysql/mysql-8.0.36/bin/mysql -u root -p 如果使用 mysql -u root -p 需自行配置环境变量
    输入之前初始化时候的密码,如果日志路径配置正确,密码会打印在日志中,如下所示:
    在这里插入图片描述
    如果之前修改了 socket file,需要执行 /opt/mysql/mysql-8.0.36/bin/mysql -u root -p --socket=/opt/mysql/mysql-8.0.36/mysql.sock 命令连接数据库,连上之后如下所示:
    在这里插入图片描述

  10. 修改登录密码,并允许从任意主机连接
    执行以下SQL命令修改密码:

    # 进入mysql库
    use mysql;
    # 重新设置root用户密码为你想要设置的密码, 这里只能本地登录,可以将 localhost 替换成 %
    alter user 'root'@'localhost' identified with mysql_native_password BY '12345678';
    # 刷新用户权限信息
    flush privileges;
    

    在这里插入图片描述

  11. 开放 3306 端口允许远程连接

    firewall-cmd --permanent --add-port=3306/tcp
    firewall-cmd --reload
    

    登录 mysql,执行如下命令允许 root 账号可以远程登录:

    use mysql;
    update user set host = '%' where host = 'localhost' and user = 'root';
    flush privileges;
    

    修改后可以看到:
    在这里插入图片描述
    之后通过 sqlyog 或其他连接工具连接即可:
    在这里插入图片描述

其他问题

通过设置别名来连接特定的 mysql 服务

由于上面的安装方法是在自定义的目录中保存的,如果本地安装了多个 MySQL 服务,通过设置环境变量我们不好决定要连接哪个版本的 MySQL,如果你只是偶尔需要使用这个特定版本的 MySQL 客户端,或者你不想修改 PATH 环境变量,设置一个别名(alias)可能是一个更简单的选择。

  1. 打开你的 shell 配置文件。同样地,根据你的 shell 和 Linux 发行版,找到对应的配置文件:~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.profile 等。
  2. 在文件中添加一个别名。在文件的末尾,添加以下行:
    alias mysql8='/opt/mysql/mysql-8.0.36/bin/mysql --socket=/opt/mysql/mysql-8.0.36/mysql.sock'
    
    这会创建一个名为 mysql 的别名,当你在命令行中输入 mysql 时,实际上会调用你指定的路径下的 MySQL 客户端。
  3. 保存文件并重新加载配置。保存你的配置文件后,使用下面的命令使改动生效:
    source ~/.bashrc
    

之后我们可以直接使用命令 mysql8 -u root -p 来连接我们的 MySQL 服务了
在这里插入图片描述