手把手教你部署一套生产级的 mysql 数据库

发布于:2023-01-05 ⋅ 阅读:(113) ⋅ 点赞:(0)

一、摘要

实际的软件项目开发过程中,不可避免的需要用到关系型数据库,比较主流的关系型数据库有 mysql、oracle、sql server、postgresql、db2 等等,当然目前最主流的数据库非 mysql 莫属,相比其他数据库,mysql 性能可靠,使用简单,而且开源免费。

在我们平时开发的时候,以个人 windows 操作系统为例,我们只需要下载一个 mysql 的安装包,然后傻瓜式的安装就可投入使用,但是实际上生产环境往往不是 windows 系统,而是 centos 系统。

那么在 CentOS 系统中,我们应该如何安装一款 Mysql 数据库呢?

今天我们就一起来了解一下如何在 centos 操作系统上安装一款生产级的 mysql 数据库,希望能帮助到大家!

鉴于目前最主流的项目部署环境,本次选型的操作系统版本号和 mysql 版本号如下:

  • CentOS 操作系统版本号:7.6
  • Mysql 操作系统版本号:5.7.38

具体安装实施步骤如下!

二、实施流程

2.1、下载 MySQL5.7 的 rpm 安装包

访问https://dev.mysql.com/downloads/mysql 官方社区版本的下载地址,选择MySQL Community Server,按照下面的步骤依次操作。

 

 

 

 

2.2、卸载已安装的MySQL(如果没安装过,可以跳过)

  • 检查是否有安装过 mysql
#输入如下命令,检查是否安装了mysql
rpm -qa |grep mysql

 

三、小结

本文主要围绕如何在 CentOS 操作系统上安装部署 Mysql 数据库,希望能帮助到大家!

  • 按照顺序,依次卸载服务
  • #卸载之前请先关闭 mysql 服务,命令如下
    systemctl stop mysqld
    
    #依次卸载相关服务
    rpm -e --nodeps mysql-community-server
    rpm -e --nodeps mysql-community-client
    rpm -e --nodeps mysql-community-libs
    rpm -e --nodeps mysql-community-common
    
  • 清理依赖的文件
  • #删除数据库配置文件
    rm -rf  /etc/my.cnf
    
    #删除数据库数据文件
    rm -rf /var/lib/mysql
    
    #删除日志临时文件
    rm -rf /var/log/mysqld.log
    

    2.3、MySQL 安装环境准备

  • 检查是否安装了mariadb,如果已安装,需要卸载
  • CentOS7 版本默认是已安装 mariadb,CentOS6 本本默认是已安装 Mysql,可以安装上面步骤卸载。

    #输入如下命令,检查是否安装了mariadb
    rpm -qa | grep mariadb
    

    如果出现如下信息,表示已安装 mariadb,可以安装下面步骤进行卸载。

  •  

    #卸载mariadb
    rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
    
    #再次检查,是否已经mariadb,如果没有,表示卸载完毕
    rpm -qa | grep mariadb
    
  • 安装软件包所需的依赖
  • 一般都是最新版了,以防万一后面安装出错,缺少依赖

    yum install libaio -y
    yum install net-tools -y
    

    2.4、安装 MySQL 软件包

    将上文中下载的软件包,上传到 CentOS 服务器某个文件夹下。

     

    当然,你还可以直接使用wget命令直接在服务器端下载文件,操作步骤如下:

    #安装wget命令
    yum install wget
    
    #下载server 包
    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.38-1.el7.x86_64.rpm
    
    #下载client 包
    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.38-1.el7.x86_64.rpm
    
    #下载common 包
    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.38-1.el7.x86_64.rpm
    
    #下载libs 包
    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.38-1.el7.x86_64.rpm
    

    文件上传到服务器或者下载到服务器磁盘上之后,我们就可以对 Mysql 进行安装了。

    安装时必须严格遵守安装顺序,依赖关系依次为common → libs → client → server。

    #安装步骤如下:
    rpm -ivh  mysql-community-common-5.7.37-1.el7.x86_64.rpm
    rpm -ivh  mysql-community-libs-5.7.37-1.el7.x86_64.rpm
    rpm -ivh  mysql-community-client-5.7.37-1.el7.x86_64.rpm
    rpm -ivh  mysql-community-server-5.7.37-1.el7.x86_64.rpm
    

    命令说明:ivh中, i表示install安装;v表示verbose进度条;h表示hash哈希校验。

    以上 rpm 包安装完成之后,输入如下命令,可查询安装的 MySQL 版本

    mysqladmin --version
    

    2.4、启停及查询服务状态

  • 查询 MySQL 系统的状态
  • systemctl status mysqld
    
  • 启动 MySQL 数据库
  • systemctl start mysqld
    
  • 关闭 MySQL 数据库
  • systemctl stop mysqld
    
  • 重启 MySQL 数据库
  • systemctl restart mysqld
    
  • 设置开机启动
  • systemctl enable mysqld
    
    # 重载所有修改过的配置文件
    systemctl daemon-reload
    

    2.5、登录 MySQL 并修改配置

    在 MySQL5.7.4 之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,在里面进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个临时密码,通过临时密码进入之后进行再进行修改。

    1.获取数据库的临时密码命令如下:

    grep 'temporary password' /var/log/mysqld.log
    

     

    2.使用临时密码登录

  • #输入如下命令回车,然后粘贴临时密码,再回车
    mysql -uroot -p
    

    操作类似如下图:

     

    3.修改 root 账户密码

    输入如下命令,修改root账户密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    以后,如果想要修改密码,可以通过如下命令实现。

    mysql> use mysql;
    mysql> update user set password=PASSWORD('new_password') where user='root';
    mysql> flush privileges;
    

    注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。

    具体可以查看 MySQL 官网密码详细策略。

    4.添加远程登录用户

    默认只允许root帐户在本地登录,如果要在其它机器上连接 mysql,必须添加一个允许远程连接的帐户,或者修改 root 为允许远程连接。

    添加一个允许远程连接的帐户,方式如下:

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' IDENTIFIED BY 'Zhangsan2018!' WITH GRANT OPTION;
    

    修改 root 为允许远程连接,方式如下(不推荐):

    mysql> use mysql;
    mysql> UPDATE user SET Host='%' WHERE User='root';
    mysql> flush privileges;
    

    最后,使用客户端,输入服务器 IP、账户、密码,即可登录 MYSQL 数据库!

    5.设置默认编码为 utf8(非必需,可以跳过)

    mysql 安装后默认不支持中文,需要修改编码。

    修改/etc/my.cnf配置文件,在相关节点(没有则自行添加)下添加编码配置,如下:

    [mysqld]
    character-set-server=utf8
    
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    

    最后,重启 mysql 服务,查询编码,可以看到已经改过来了。

    shell> systemctl restart mysqld
    shell> mysql -uroot -p
    mysql> show variables like 'character%';
    

     

    默认配置文件路径如下:

  • 配置文件:/etc/my.cnf
  • 日志文件:/var/log/var/log/mysqld.log
  • 服务启动脚本:/usr/lib/systemd/system/mysqld.service
  • socket文件:/var/run/mysqld/mysqld.pid
本文含有隐藏内容,请 开通VIP 后查看