在阿里云Linux服务器上部署MySQL数据库流程

阿里云百科分享在阿里云Linux服务器上部署MySQL数据库流程,MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。

目录

背景信息

[Alibaba Cloud Linux 2/3、CentOS 7.x](#Alibaba Cloud Linux 2/3、CentOS 7.x)

步骤一:安装MySQL

步骤二:配置MySQL

步骤三:远程访问MySQL数据库


背景信息

本教程中的MySQL版本仅为示例,您在实际操作时,MySQL的版本可能因软件源的更新而有所不同。关于MySQL相关安装路径说明如下:

  • 配置文件:/etc/my.cnf

  • 数据存储:/var/lib/mysql

  • 命令文件:/usr/bin和/usr/sbin

  • ECS云服务器:aliyunbaike.com/go/ecs

  • 操作系统:CentOS 7.x、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3。

  • 实例安全组的入方向规则已放行22、80、443、3306端口。具体操作,请参见添加安全组规则

Alibaba Cloud Linux 2/3、CentOS 7.x

步骤一:安装MySQL

  1. 远程连接ECS实例。 具体操作,请参见使用VNC登录实例

  2. 运行以下命令,更新YUM源。

    复制代码
    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
  3. 运行以下命令,安装MySQL。

    复制代码
    sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
  4. 运行以下命令,查看MySQL版本号。

    复制代码
    mysql -V

    返回结果如下,表示MySQL安装成功。

    复制代码
    mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

步骤二:配置MySQL

  1. 运行以下命令,启动并设置开机自启动MySQL服务。

    复制代码
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  2. 运行以下命令,获取并记录root用户的初始密码。

    复制代码
    sudo grep 'temporary password' /var/log/mysqld.log

    执行​命令结果示例如下。

    复制代码
    2022-02-14T09:27:18.470008Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: r_V&f2wyu_vI

    说明

    示例末尾的r_V&f2wyu_vI为初始密码,后续在对MySQL进行安全性配置时,需要使用该初始密码。

  3. 运行以下命令,对MySQL进行安全性配置。

    复制代码
    sudo mysql_secure_installation
    1. 根据提示信息,重置MySQL数据库root用户的密码。

      说明在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。

      复制代码
      Enter password for user root: #输入已获取的root用户初始密码
      
      The existing password for the user account root has expired. Please set a new password.
      
      New password: #输入新的MySQL密码
      
      Re-enter new password: #重复输入新的MySQL密码
      The 'validate_password' component is installed on the server.
      The subsequent steps will run with the existing configuration
      of the component.
      Using existing password for root.
      Change the password for root ? ((Press y|Y for Yes, any other key for No) :Y #输入Y选择更新MySQL密码。您也可以输入N不再更新MySQL密码。
      
      New password: #输入新的MySQL密码
      
      Re-enter new password: #重复输入新的MySQL密码
      
      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y #输入Y确认使用已设置的密码。
    2. 根据提示信息,删除匿名用户。

      复制代码
      By default, a MySQL installation has an anonymous user,
      allowing anyone to log into MySQL without having to have
      a user account created for them. This is intended only for
      testing, and to make the installation go a bit smoother.
      You should remove them before moving into a production
      environment.
      
      Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y #输入Y删除MySQL默认的匿名用户。
      Success.
    3. 禁止root账号远程登录。

      复制代码
      Normally, root should only be allowed to connect from
      'localhost'. This ensures that someone cannot guess at
      the root password from the network.
      
      Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y #输入Y禁止root远程登录。
      Success.
    4. 删除test库以及对test库的访问权限。

      复制代码
      By default, MySQL comes with a database named 'test' that
      anyone can access. This is also intended only for testing,
      and should be removed before moving into a production
      environment.
      
      
      Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y #输入Y删除test库以及对test库的访问权限。
       - Dropping test database...
      Success.
      
       - Removing privileges on test database...
      Success.
    5. 重新加载授权表。

      复制代码
      Reloading the privilege tables will ensure that all changes
      made so far will take effect immediately.
      
      Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y #输入Y重新加载授权表。
      Success.
      
      All done!

步骤三:远程访问MySQL数据库

建议您使用非root账号远程登录MySQL数据库。下文示例中,将创建新的MySQL用户账户,用于远程访问MySQL。

  1. 远程连接ECS实例。 关于连接方式的介绍,请参见连接方式概述

  2. 运行以下命令后,输入root用户的密码登录MySQL。

    复制代码
    sudo mysql -uroot -p
  3. 依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。

    本示例账号为dmsTest、密码为Ecs@123****
    重要

    实际创建账号时,需将示例密码Ecs@123****更换为符合要求的密码,并妥善保存。密码要求:长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。可以使用以下特殊符号:

    ()` ~!@#$%^&*-+=|{}[]:;'<>,.?/

    复制代码
    #创建数据库用户dmsTest,并授予远程连接权限。
    create user 'dmsTest'@'%' identified by 'Ecs@123****'; 
    #为dmsTest用户授权数据库所有权限。
    grant all privileges on *.* to 'dmsTest'@'%'; 
    #刷新权限。
    flush privileges; 
  4. 执行以下命令,退出数据库。

    复制代码
    exit
  5. 使用dmsTest账号远程登录MySQL。

    • (推荐)您可以通过阿里云提供的数据管理服务DMS(Data Management Service)来远程访问MySQL数据库。具体操作,请参见云数据库录入

    • 您可以通过MySQL客户端远程登录MySQL进行测试。例如:MySQL Workbench、Navicat。

本文源自阿里云官方文档。

相关推荐
程序员云帆哥13 分钟前
MySQL JDBC Driver URL参数配置规范
数据库·mysql·jdbc
TDengine (老段)30 分钟前
TDengine 数学函数 FLOOR 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
大气层煮月亮1 小时前
Oracle EBS ERP开发——报表生成Excel标准模板设计
数据库·oracle·excel
云和数据.ChenGuang1 小时前
达梦数据库的命名空间
数据库·oracle
lpfasd1232 小时前
第2部分:Netty核心架构与原理解析
运维·服务器·架构
若尘拂风2 小时前
centos 7.9 编译安装 freeswitch 1.10.12
服务器·udp·freeswitch·sip
三三木木七2 小时前
mysql拒绝连接
数据库·mysql
蹦跶的小羊羔2 小时前
sql数据库语法
数据库·sql
小蜜蜂爱编程2 小时前
gerrit的部署与配置关联到不同服务器上的git仓库
运维·服务器·git·gerrit
唐古乌梁海2 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql