在Linux实例中安装MySQL数据库

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用结构化查询语言(SQL)进行数据库管理,适用于Web应用开发、企业应用程序、数据分析和报告、软件开发和测试等多种场景下的数据存储和管理需求。本文介绍如何在Linux实例中部署MySQL数据库。

手动部署MySQL数据库(Alibaba Cloud Linux 3/2、CentOS 7.x)

手动部署MySQL时,已有ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。

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

  • 实例安全组的入方向规则已放行22、80、443、3306端口

步骤一:安装MySQL

  1. 远程连接ECS实例。

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

    本操作以下载MySQL 8.0版本为例,如果您想下载其他版本的MySQL,请参见Mysql官方文档

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

     

  3. (可选)当操作系统为Alibaba Cloud Linux 3时,请执行如下命令,安装MySQL所需的库文件。

    sudo rpm -Uvh https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/compat-openssl10-1.0.2o-4.0.1.al8.x86_64.rpm

     

  4. 运行以下命令,安装MySQL。  

    sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck

     

  5. 运行以下命令,查看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.
        复制代码

         

        禁止root账号远程登录。
      3. 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。

      原文link:https://help.aliyun.com/zh/ecs/use-cases/manually-deploy-mysql-on-an-ecs-instance-that-runs-centos?spm=a2c4g.11174283.0.i4

posted @   明&天  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示