阿里云 ECS 本地配置与初始化|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习基于阿里云 ECS 本地配置与初始化,这节课进行分享 MySQL 实操课程的第二小节,MySQL 的基本配置与远程访问,这个小节包含两部分内容,第一部分是基于阿里云 ECS 本地安装,在上一节的课程当中,已经分享了怎么在阿里云的本地安装 MySQL,并且已经把 MySQL 安装版成功上传到申请的阿里云服务器上和解压。这节课将进行 MySQL 的云主机以及 MySQL数据库进行相关配置与初始化。第二部分主要讲解阿里云的 RDS 库,包括如何去使用和需要进行哪些准备工作?以上就是本节课程需要进行分享的。下面进行讲解MySQL 的本地配置。

开发者学堂课程【MySQL 实操课程基于阿里云 ECS 本地配置与初始化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/717/detail/12801


基于阿里云 ECS 本地配置与初始化

 

目录

一、MySQL 配置

二、使用初始密码登录 MySQL

三、重置 MySQL 密码

四、使用 MySQL 新密码登录

五、总结

 

一、MySQL 配置

1、初始化 MySQL 步骤

⑴使用 mysqld 命令来指定相关的参数完成 MySQL 的初始化。

⑵初始化完之后,系统会生成一个 MySQL 登录的临时密码,将该密码复制下来,后续登陆会要使用到。

2、初始化 MySQL 的演示(含错误版)

那么在这里初始化执行这个命令之前,它是要进行一些准备工作的。包括怎样的准备工作呢?包括要去创建的这个系统的账号,创建一个 MySQL 的系统帐号。并且要去给这个系统帐号去授权,同时这里给定的系统帐号,现在是没有的,像etc/my.cnf 之前是没有的,需要去手动的给它创建好。并且把一些基本的配置,把它放 my.cnf 里面,否则的话会出现这个配置文件找不到的情况。同时像 MySQL 的基础目录,这里叫 /usr/local/mysql,解压后是一个很长的目录叫 MySQL 的名字,就需要给它改名或者给它直接加一个软链接。同时还指定了这个 MySQL 的数据目录,这里显示的是 /usr/local/MySQL/data/ 的一个目录,那么这里直接使用/ data/ MySQL / 作为它的一个数据目录。所以说这里有一个参数叫 usr,可以看到在 MySQL 这里,如:

[root@iZwz9grf5rktb5exdZ datal]# /usr/local/mysql/bin/mysqld--defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql --initialize

所以说要先去创建一个 MySQL 的一个用户。然后接下来就打开这个 cloud shell 这个工具,开始做一些工作。首先,还是一样的远程登录这台服务器,复制这个 IP:47.122.159.55,通过 ssh root 进行连接,输入密码连接成功后进入 usr/local,找到之前解压的 mysql 进行重命名 mysql,如:

shell@Alicloud:~$ ssh root@47. 112.159.55

root@47.112.159.55's password:

Last login: Sat Aug 15 19:47:18 2020 from 59. 42.7.247

Welcome to Alibaba Cloud Elastic Compute Service !

[ root@iZwz9bize6nk8hug8j0vywZ ~]# cd /usr/local

[ root@iZwz9bize6nk8hug8j0vywZ local]# ll

drwxr-xr-x. 9 7161 31415 4096 Jun 2 21:11 mysql-5.7.31-linux-glibc2.12-x86_64

[root@iZwz9bize6nk8hug8j0vywZ local]# mv mysql-5.7.31-linux-glibc2.12-x86_64/ mysql

[root@iZwz9bize6nk8hug8j0vywZ local]# ll

drwxr-xr-x. 9 7161 31415 4096 Jun 2 21:11 mysql

接下来第一步工作首先要进行创建 MySQL 账号,而在创建账号前要先添加一个用户组,在这里通过 groupadd 命令增加一个用户组。

[root@iZwz9bize6nk8hug8j0vywZ local]# groupadd mysql

[root@iZwz9bize6nk8hug8j0vywZ local]#ll

这样就创建好了一个用户组,然后给这个 MySQL 的用户添加到说的这个 MySQL 的用户组,如:

[root@iZwz9bize6nk8hug8j0vywZ local]# useradd -g mysql  mysql -s /sbin/nologin

这样就添加了一个 MySQL 的用户,这是一个免登录的用户,等会在初始化的时候会用到这个用户。

然后接着给它授权,如下将 mysql 目录授权给 mysql 用户组中的 mysql,因为等会会对这个 mysql 目录进行读写的操作,还有进行 mysql 数据存储的目录也进行授权,这里会提示还没有这个目录,所以需要创建,创建成功后再次进行授权,如:

[root@iZwz9bize6nk8hug8j0vywZ local]# chown mysql :mysql -R /usr/ local/mysql

[root@iZwz9bize6nk8hug8j0vywZ local]# chown mysql :mysql -R /data/mysql

chown: cannot access / data/mysql: NO such file or directory

[root@iZwz9bize6nk8hug8j0vywZ local]# mkdir -p /data/ mysql

[root@iZwz9bize6nk8hug8j0vywZ local]# chown mysql :mysql -R /data/ mysql

授权成功后还差一个 etc/my.cnf 配置文件,下面给它去创建一下。那么在这里也是一样的给它打开这个 cloud shell 文件。

[root@iZwz9bize6nk8hug8j0vywZ local]# vi /etc/my.cnf

可以看到,这个里面其实已经默认的生成了这样的一些文件。然后你要把它改成一些指定的目录。这个是阿里云安装的时候,它会自动的帮你去生成这样的一些文件。如果是没有的话,你要去主动的创建这样一个文件,修改如下:

[mysqld]

datadir=/data/ mysql

socket=/ tmp/ mysql . sock

user mysql

# Disabling symbolic links is recorumended to prevent assorted security risks

symbolic-links=0

[mysqld safe]

log-error-/data/log/mysqld. log

pid-file-/data/run/mysqld/mysqld.pid

这里简单说一下这几个配置文件,datadir 实际上讲的是数据的存放目录,对于参数的指定,可以在初始化的时候进行指定,如果不想指定就会进行读取配置文件中的配置进行指定,socket 是在 mysql 服务启动时会生成的文件,需要进行指定保存的路径,user 实际上指定的是 mysql 用户,如开头 mysqld 表示第一组,每一组有不同的参数配置,平时很容易混淆不同组的配置,后面的是 mysqld 安全模式下保存的安全日志保存路径和 pid 运行进程。然后进行保存,保存后就可以进行一些初始化的工作。

初始化如下:

[root@izwz9bize6nk8hug8j0vywZ local]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql --initialize

…root@localhost: srlUCXt-N0oZ

此时回车后看最后一行,会生成一个临时的密码,把这个临时密码复制下来,待会登录进去。这个命令前面的目录代表 MySQL 的安装目录,MySQL 的所有命令都是保存在 bin 目录之下,而 d_safe 表示以一种安全模式进行启动,安全模式的作用就是启动完后仍会去监控 MySQL 的进程,一旦发现 MySQL 的异常会进行重启服务,而且会把前面在 mysqld 中配置的 mysqld_safe 选项运行的日志打印到指定目录,后面的目录是指定配置文件,加上&符号,表示是进行后台启动。

紧接着还不能去登录,因为这个 mysql 的服务还没有启动。那这个时候怎么办呢?要先把这个 mysql 服务给它启动,启动如下:

[root@izwz9bize6nk8hug8j0vywZ local]# /usr/local/mysql/bin/mysqld_safe --defaults- file /etc/my. cnf &[root@izwz9bize6nk8hug8j0vywZ local]# 2020-08-15T12:28:20.7946922 mysqld_safe error: log-error set  to '/data/log/mysqld.log', however file don't exists. Create writable for user ' mysql[root@izwz9bize6nk8hug8j0vywZ local]# ps -ef |grep mysqld 启动指令回车后会显示报错为目录 /data/log/mysqld.log 不存在,是因为前面授权时没有进行这个目录授权,这里需要重新加上授权。可以进行查看后发现确实没有启动成功,所以这里有几种方案,第一种是把这个目录放到原来的目录下面,第二种就是对这个目录再进行授权,这里进行授权的演示。授权时提醒目录不存在,所以要进行创建,成功后再进行授权,此时提醒文件不存在,所以就要进行创建 my.cnf 文件,写入配置内容后进行保存退出,再次进行授权:可以进行查看后发现确实没有启动成功,所以这里有几种方案,第一种是把这个目录放到原来的目录下面,第二种就是对这个目录再进行授权,这里进行授权的演示。

授权时提醒目录不存在,所以要进行创建,成功后再进行授权,此时提醒文件不存在,所以就要进行创建 my.cnf 文件,写入配置内容后进行保存退出,再次进行授权:

[root@izwz9bize6nk8hug8j0vywZ local]# chown mysql :mysql -R /data/log

[root@izwz9bize6nk8hug8j0vywZ local]# mkdir -P /data/log

[root@izwz9bize6nk8hug8j0vywZ local]# chown mysql :mysql -R /data/log

[root@izwz9bize6nk8hug8j0vywZ local]# /usr/local/mysql/bin/mysqld_safe --defaults- file=/etc/my.cnf &

[root@izwz9bize6nk8hug8j0vywZ local]# ps -ef |grep mysqld

[root@izwz9bize6nk8hug8j0vywZ local]# vi /data/log/mysqld.log

[root@izwz9bize6nk8hug8j0vywZ local]# /usr/local/mysql/bin/mysqld_safe - -defaults- file=/etc/my.cnf &

[root@izwz9bize6nk8hug8j0vywZ local]# 2020-08-15T12:30:24. 5375202 mysqld_safe Logging to ' /data/ 1og/mysqld. log'.

回车后进行查看 MySQL 是否启动成功,可以查看到并没有启动成功:

[root@izwz9bize6nk8hug8j0vywZ local]# ps -ef |grep mysqld

原因是前面并没有授权完全,所以需要重新进行授权。再次进行授权操作如下,与上面相比要多授权一个 mysql.pid 目录:

然后进行查看 MySQL 是否启动成功,可以发现依然没有。此时可以进行查看打印日志,日志中说明是没有权限创建 mysql.pid 目录的,所以启动失败:

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# tail -f -n 100 /data/ log/ mysqld. log

…Can’t create/write to file' , data/ run/ mysqld/ mysqld.pid' (Errcode:13 -Permission denied)

打印日志时已经说明了这里是不能往 mysql.pid 中这样写,因为没有权限。所以这里把整个目录重新授权然后进行启动,如下:

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# chown -R mysql /data/run/mysqld

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# /usr/local/mysql/bin/mysqld_safe --defaults- file-/etc/my. cnf

启动后发现被阻塞,因为使用的是前台启动。此时,通过另外一个窗口进行查看是否启动成功,如下启动成功:

[root@izwz9bize6nk8hug8j0vywZ ~]# ps -ef |grep mysqld

root …

mysql 4060 3863…

root…

然后可以使用 MySQL 客户端进行连接,连接时要输入密码,密码则为前面生成的初始密码,这个初始密码也会写入到日志文件当中,输入后回车则成功进入:

[root@iZwz9bize6nk8hug8jOvywZ ~]# /usr/ local/mysql/bin/mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g .

Your MySQL connection id is 3

Server version: 5.7.31

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved .

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners .

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement .

 

二、使用初始密码登录 MySQL

1、步骤

(1)使用 MySQL 命令行客户端工具 mysq| 命令连接 MySQL 服务端

(2)用户名为 root ,密码为 MySQL 初始化时生成的临时密码

2、演示

成功进入 MySQL 后,因为前面的密码是临时密码,对于临时密码在执行 mysql 指令时,如 show databases 指令,会提示必须重置密码,如:
mysql> show databases ;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 

三、重置 MySQL 密码

1、步骤

(1)第一次使用 MySQLI 临时密码登录进去后,要求重置密码

(2)设置新密码

(3)设置新密码永不过期

2、演示

重置密码使用 set password 指令设置为000000,然后通过 alter user 'root' 设置对应的本机 localhost 当前的密码永不过期,然后 flush 设置权限

四、使用 MySQL 新密码登录

1、步骤

(1)使用 MySQL 命令行客户端工具 mysq| 命令连接 MySQL 服务端

(2)至此,成功完成了阿里云 ECS 本地安装 MySQL 的初始化工作。

2、演示

如上设置成功后退出,然后使用新的密码进行登录登录成功后再执行show databases,就不会报权限错误:

mysql> exit

mysql> show databases ;

+--------------+

|  Database  |

在上面步骤中登录后进行返回的信息有 MySQL monitor 是 MySQL 的监视器,connection id 是当前连接 id,这里当前连接 id 为4,Server Version 是当前服务版本为5.7.31,并且是 MySQL 的社区版,show databases 指令的作用是查看当前MySQL 数据库的实例名称和有那些数据库。

 

五、总结

1、总结

首先要使用 mysqld 命令来完成初始化之前要进行一些准备工作,首先要进行创建MySQL 账号和添加用户组,并且还要给 MySQL 目录进行授权,指定写入的权限,涉及到的目录有--basedir 和数据存放目录--datadir,而没有这些目录的要提前创建好,并且进行授权否则就会报上面进行演示的错误。以上是为了演示报错的过程和提示在工作中需要注意。

2、log 日志查看

这里可以打开 mysqld.log 日志进行查看,这个日志是 MySQL 进行命名的,打开日之后可以看到整个 MySQL 启动过程,而且也会提示当前 sock 所在其他端口下和密码过期,密码需要在客户进行改变重置,日志中都会进行明确说明

3、查看 pid 文件

除了可以查看 log 日志,还可以查看 mysqld.pid。查看如下:

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# tail -f -n 100 mysqld. pid

4060

^C

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# ps -ef |grep mysqld

root   3863  3616  0 20:43 pts/3…

mysql 4060  3863  0 20:45 pts/3…

root   4231  4030  0 20:57 pts/4…

因为这个 mysql 是安全启动 mysqld_safe,是可以强制去掉的,但执行后再进行查看会发现启动了一个新的 mysql,叫4247,如:

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# ki1l -9 4060

[root@iZwz9bize6nk8hug8jOvywZ mysqld]# ps ef |grep mysqld

root  3863  3616  0 20:43 pts/3…

mysql 4060  4247  0 20:57 pts/3…

root  4231  4279  0 20:57 pts/4…

所以这就是安全模式的优点,他会强制性监视运行情况,而运行停止后则会进行重启。这里提示在上面配置权限的时候,是可以将权限配置到 mysql 下面的,就不用配置其他那么多文件夹权限,如:

[mysqld]

datadir=/data/mysql

socket=/tmp/mysql.sock

user=mysql

# Disabling symbolic- links is recormended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/data/mysql/log/mysqld. log

log-error-=/data/log/mysqld. log

pid-file=/data/run/mysqld/mysqld.pid

到这里 MySQL 就已经成功启动了,并且可以远程连接和进行了初始化工作。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
弹性计算 编解码 大数据
性价比最高提升50%!阿里云企业级云服务器上新
阿里云ECS云服务器推出全新升级的u2系列实例,包括基于Intel的u2i实例与首个基于AMD的u2a实例,提供企业级独享算力,综合性价比最高提升50%。u2i实例已开放公测,适用于中小型数据库、企业网站建设等场景。同时发布基于AMD的第九代旗舰实例g9ae,性能提升65%,适用于大数据、视频转码等密集型业务。
131 0
|
20天前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点、配置性能参数表
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能计算能力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备高安全、低延迟、强扩展等优势。
|
22天前
|
存储 机器学习/深度学习 缓存
阿里云企业级九代云服务器:c9i、g9i、r9i实例的收费标准、性能与选型攻略
计算型c9i、通用型g9i和内存型r9i实例是阿里云专为需要高性能云服务器的用户推出的第九代新品云服务器实例规格,适用于机器学习推理应用,数据分析等场景。本文为大家介绍阿里云服务器的新品实例——计算型c9i、通用型g9i、内存型r9i实例各自的性能参数与适用场景,再到最新的活动价格与其他实例的对比选型指南,以供参考。
|
20天前
|
弹性计算 固态存储 JavaScript
阿里云4核8G服务器ECS配置大全以及参考价格整理
阿里云4核8G服务器ECS提供多种实例规格选择,如通用算力型u1、计算型c8i、经济型e等,价格从每月216元至879元不等。当前u1实例年付仅955元,支持3M带宽下约30人并发访问,适用于日均万级IP应用,系统盘为20GB-40GB ESSD Entry云盘,性能稳定,适合企业及开发者使用。
215 5
|
18天前
|
存储 机器学习/深度学习 缓存
阿里云九代云服务器怎么样?计算型c9i、通用型g9i、内存型r9i实例介绍
阿里云第9代云服务器主要实例规格包括计算型c9i、通用型g9i、内存型r9i,本文将为大家介绍阿里云九代云服务器中的计算型c9i、通用型g9i、内存型r9i实例的主要性能特点,并分享最新的活动价格信息,以供参考。
153 1
|
20天前
|
弹性计算 小程序 容灾
2025购买阿里云服务器配置选择方法:企业+个人+学生攻略
2025年阿里云服务器购买省钱攻略,涵盖个人、中小企业及高性能配置推荐。个人用户优选38元轻量或99元ECS,企业用户选199元2核4G服务器,游戏用户适合4核16G或8核32G配置,详情请参考最新活动及攻略。
228 3
|
20天前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。
|
22天前
|
弹性计算 运维 监控
阿里云国际站轻量云服务器价格怎么样?
阿里云国际站轻量云服务器是一款便捷易用的云计算产品,适合个人开发者及中小企业快速搭建应用。它基于云服务器ECS资源,提供一键部署、域名解析、安全管理和运维监控等功能,降低使用门槛和成本。相比传统云服务器,轻量云服务器操作更简单、价格更实惠,适用于网站搭建、学习测试等轻量级场景。

热门文章

最新文章