在Huawei Cloud EulerOS上安装MySQL的最佳实践

举报
郑小健 发表于 2024/12/18 14:44:13 2024/12/18
【摘要】 本文将详细介绍如何在EulerOS上安装和配置MySQL数据库,并提供最佳实践建议以及常见问题的解决方案。

介绍

随着云计算的发展,越来越多的企业选择在云平台上部署数据库服务。华为云(Huawei Cloud)提供的EulerOS是一个稳定、安全且高效的Linux发行版,适用于多种应用场景。本文将详细介绍如何在EulerOS上安装和配置MySQL数据库,并提供最佳实践建议以及常见问题的解决方案。

准备工作购买华为云ECS

  1. 虚拟私有云:点击控制台界面“关注资源”下面的“虚拟私有云VPC”,进入VPC控制台。

  2. 建虚拟私有云:创建虚拟私有云点击右上角的“创建虚拟私有云”。

  3. 创建vpc:按照提示修改vpc参数,并进行创建VPC.

  4. 创建安全组:点击左侧导航栏的“网络控制台”,展开“访问控制”,点击“安全组”进行创建。

  5. 购买ECS-1:左侧导航栏的“弹性云服务器ECS”,进入ECS控制台。

  6. 购买ECS-2:在ECS控制台界面点击右上角的“购买弹性云服务器”。

  7. 购买ECS-3:按照自己的要求配置弹性云服务器的基础配置参数。这里重点是选择镜像的时候,我选择的是“Huawei Cloud EulerOS 2.0 标准版 64位 ARM版(10GiB)”。(另外设置root密码,这里不要忘记,最后按提示创建即可。)

  8. 查看ECS:返回到云服务器列表,我们就能找到自己刚购买的ECS以及状态了,状态为“运行中”则说明服务器正常可用。

连接服务器ECS

  1. 远程登录ECS:在服务器列表右滑到底,可以看到“远程”登录按钮。点击进行远程登录。

2.配置安全组:如果安全组未放行端口,这边也会友好提示,大家先要放行端口哟。(实例安全组的入方向规则放通22、3306端口)

  1. 登录ECS:而后输入我们的帐号密码,连接我们的ecs服务器。

  2. 连接成功:连接成功后,控制台状态将如下图所示:

安装MySQL

前面所做的一切都是准备工作,下面就正式进入我们今天的主题,安装MySQL。

  1. 安装MySQL服务端和客户端:执行以下命令安装MySQL服务端和客户端。
    dnf install mysql-server mysql-common mysql -y
    安装成功后,将如下图所示:

  2. 查看MySQL版本号:执行以下命令查看MySQL的版本号。
    mysql -V
    这里可以看到我的版本号是:mysql Ver 8.0.37 for Linux on aarch64 (Source distribution)

  3. 配置MySQL
    a.运行以下命令,启动并将MySql服务设置为开机自启动。
    systemctl start mysqld
    b.执行以下命令查看服务状态。
    systemctl status mysqld
    如果显示active (running)则表示启动成功。(如下图)

c.执行以下命令,对MySQL进行安全配置。
mysql_secure_installation
根据个人需要和提示信息,自定义选项内容。(下面是配置的提示,内容有点多。这里特别强调下,配置密码的时候,密码的长度需要设置包含:大小写字母、数字、特殊符号)。

### Securing the MySQL Server Deployment

#### Connecting to MySQL using a blank password.

#### VALIDATE PASSWORD COMPONENT Setup
VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of the password and allows users to set only those passwords which are secure enough.
Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y  // 是否设置密码组件

#### Password Validation Policy Levels
There are three levels of password validation policy:
- LOW:    Length >= 8
- MEDIUM: Length >= 8, numeric, mixed case, and special characters
- STRONG: Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2  // 选择密码安全策略

#### Setting the Root Password
Please set the password for root here.

New password: 
Re-enter new password: 

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

#### Removing Anonymous Users
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  // 是否删除匿名用户
Success.

#### Disallowing Root Login Remotely
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  // 是否禁止root账户远程登录
Success.

#### Removing Test Database and Access to It
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  // 是否删除测试数据库
- Dropping test database...
Success.
- Removing privileges on test database...
Success.

#### Reloading Privilege Tables
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  // 是否重新加载权限表
Success.

All done!

当出现如下图所示的状态“All done!”,则说明你已经配置成功了。

  1. 远程连接数据库:执行以下命令在MySQL server端连接数据库。
    mysql -uroot -p
    然后输入上述为root用户创建的密码。按回车键即可连接数据库。(如下图所示)

配置优化与注意事项–拓展实践

  • 调整内存参数:根据您的硬件资源情况适当调整InnoDB缓冲池大小等关键参数以提高性能。编辑MySQL配置文件 /etc/my.cnf.d/server.cnf/etc/my.cnf 添加如下内容:

    [mysqld]
    innodb_buffer_pool_size = 1G # 根据实际情况调整
    
  • 字符集设置:为了防止中文乱码等问题,推荐设置全局字符集为utf8mb4:

    [client]
    default-character-set = utf8mb4
    
    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    
  • 备份策略:定期对数据库进行完整备份非常重要,可以考虑使用mysqldump或者Percona XtraBackup等工具。

常见问题处理

  • 无法连接到MySQL:检查是否正确指定了主机名/地址和端口号;确认防火墙没有阻止MySQL端口;验证MySQL服务是否正在运行。

  • 忘记root密码:可以通过跳过权限表的方式重置密码。停止MySQL服务后,执行以下命令重启MySQL而不加载授权表:

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    

    然后连接到MySQL并更新root用户的密码:

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
    EXIT;
    

    最后正常重启MySQL服务。

  • 性能瓶颈:如果遇到性能问题,首先查看慢查询日志找出耗时长的SQL语句;其次评估索引使用情况,必要时创建合适的索引来加速查询;最后不要忽视硬件升级的可能性,如增加RAM或SSD。

通过遵循上述指南,您应该能够在Huawei Cloud EulerOS环境中成功安装并优化MySQL数据库,同时掌握解决潜在问题的方法。希望这份文档能帮助您顺利完成部署工作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。