《冬季实战营第三期:MySQL数据库进阶实战》学习报告

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: MySQL数据库进阶实战

MySQL数据库快速部署


更新YUM源。

rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

安装MySQL。

yum -y install mysql-community-server --nogpgcheck

查看MySQL版本号。

mysql -V

启动MySQL服务。

systemctl start mysqld

设置MySQL服务开机自启动。

systemctl enable mysqld

配置MySQL的root用户密码:

查看/var/log/mysqld.log文件,获取root用户的初始密码。

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

使用root用户登录数据库。

mysql -uroot -p

提示Enter password时输入不显示,不用在意,继续操作就行

修改MySQL的root用户的初始密码。

set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)。 ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';

授予root用户远程管理权限。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';

输入exit退出数据库。

执行以下命令,使用root用户登录数据库。

mysql -uroot -p12345678

创建test数据库。

create database test;

查看当前数据库列表。此时,可以看到三个数据库:information_schema ,mysql,performance_schema,sys,test 。

show databases;

执行命令 use mysql;,连接 mysql 数据库。然后执行命令 show tables; ,查看 mysql 数据库中的数据表。使用命令 exit ,退出 MySQL 界面。

返回 Linux 界面,执行如下命令,将名为 test 的数据库备份到当前目录的 test.sql

mysqldump -uroot -p test >test.sql

返回 Linux 界面,执行如下命令,将 test.sql 导入数据库。

mysql -uroot -p -Dtest

还有一种导入方法:输入命令:mysql -uroot -p12345678 ,进入 MySQL 数据库。输入 use test; ,连接数据库 test ,输入 source /root/test.sql; ,将 test.sql 导入数据库 test ,全部出现 Query OK ,则表示数据库导入成功。

在Mysql中,执行命令 use test; ,连接 test 数据库。

建表 CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);

插入数据 CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);

查询 语法1:SELECT * FROM 表名称; //查询表中的所有列的数据信息

语法2:SELECT 列名称 FROM 表名称; //查询表中的指定列的数据信息

修改 UPDATE 表名称 SET 列名 = 值 WHERE 表名称 = 值;

删除行 DELETE FROM 表名称 WHERE 列名称 = 值;

删除表 DROP TABLE 表名称


数据库上云实战

登录到阿里云RDS管理控制台,完成数据库账号创建,在数据库管理创建数据库并授权账号。

进入数据传输服务DTS, 配置迁移任务,按照如下步骤,输入 源库信息 的配置信息:

  • 实例类型:选择 有公网IP的自建数据库
  • 实例地区: 选择 云产品资源 中分配的 地域 ,例如:华东1
  • 数据库类型:选择 MySQL
  • 主机名或IP地址:输入 云产品资源 中分配的 MySQL源数据库 ECS实例的 弹性IP。
  • 端口:使用默认端口号 3306
  • 数据库账号:输入ECS上自建MySQL的 数据库账号,数据库密码

完成 目标库信息 的配置信息:

1)实例类型:选择 RDS实例

2)实例地区:选择 实验资源 中分配的 地域 ,例如:华东1

3)RDS实例ID :选择 实验资源 中提供的 目标数据库 的 实例ID

4)数据库账号,数据库密码

5)完成如上配置后,点击右侧的 测试链接 ,测试RDS账号的连通性,若显示 测试通过 ,证明连接成功。否则,请检查如上配置信息是否正确。

6)完成如上的配置后,点击右下角的【 授权白名单并进入下一步 】。

配置迁移任务的 迁移类型及列表:

1)点击左侧 迁移对象 中的本地MySQL数据库中的bakery

2)点击 >

3)数据库 bakery 移动到 已选择对象 的列表中。

4)完成如上配置后,点击右下角的【 预检查并启动】 。

9. 等待30秒钟左右,完成预检查,检查结果为 预检查通过100% ,点击 【下一步】 。

说明:若预检查未通过,请根据错误提示和如上的操作步骤,核对迁移任务的配置是否正确。

10. 此时,页面迁移任务的状态为 迁移中 ,等待3-4分钟,状态变为 已完成

登录数据库后进入数据库管理登录界面,检验迁移是否成功。


MySQL数据库基础

在MySQL数据库快速部署中已有部分数据库基础操作

更新数据表。

在年龄age列后面,为USER表新增一列性别sex,0代表女,1代表男。

ALTER TABLE user ADD COLUMN sex tinyint(1) NOT NULL COMMENT 'sex,woman:0,man:1' AFTER `age`;

数据表重命名 RENAME TABLE table_name_a TO table_name_b;

函数:

取平均值:AVG()函数

计数: COUNT()函数

最大值:MAX()

最小值:MIN()

求和: SUM()


使用ECS和RDS搭建个人博客

同样,登录到阿里云RDS管理控制台,完成数据库账号创建,在数据库管理创建数据库并授权账号。

切换至Web Terminal。

在ECS服务器上,执行以下命令,安装Apache服务及其扩展包。

yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

执行以下命令,启动Apache服务。

systemctl start httpd.service

打开浏览器输入ECS服务器的公网IP,如果显示测试页面表示Apache服务安装成功。

WordPress是使用PHP语言开发的博客平台。

安装PHP。

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

创建PHP测试页面。

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

重启Apache服务。

systemctl restart httpd

访问http://<ECS公网IP>/phpinfo.php,显示PHP info信息表示PHP安装成功。

安装WordPress以及连接到RDS数据库。

安装WordPress。

yum -y install wordpress

修改WordPress配置文件。

修改wp-config.php指向路径为绝对路径。

# 进入/usr/share/wordpress目录。 cd /usr/share/wordpress # 修改路径。 ln -snf /etc/wordpress/wp-config.php wp-config.php # 查看修改后的目录结构。 ll

移动WordPress到Apache根目录。

# 在Apache的根目录/var/www/html下,创建一个wp-blog文件夹。 mkdir /var/www/html/wp-blog mv * /var/www/html/wp-blog/

修改wp-config.php配置文件。

  • database_name_here为之前步骤中创建的数据库名称,本示例为wordpress。
  • username_here为之前步骤中创建的数据库用户名,本示例为test_user。
  • password_here为之前步骤中创建的数据库登录密码,本示例为Password1213。
  • 数据库地址为RDS的连接地址(在RDS管理控制台 实例详情 页查看或者开通资源后再左侧资源栏列表中查看RDS连接地址)。

sed -i 's/database_name_here/wordpress/' /var/www/html/wp-blog/wp-config.php sed -i 's/username_here/test_user/' /var/www/html/wp-blog/wp-config.php sed -i 's/password_here/Password1213/' /var/www/html/wp-blog/wp-config.php sed -i 's/localhost/数据库地址/' /var/www/html/wp-blog/wp-config.php

查看配置文件信息是否修改成功。

cat -n /var/www/html/wp-blog/wp-config.php

重启Apache服务。

systemctl restart httpd

初始化WordPress。

打开浏览器并访问http://<ECS公网IP>/wp-blog/wp-admin/install.php

您可以在左侧实验资源栏查看ECS的公网IP。

设置站点名称、管理员用户名和密码,然后单击Install WordPress完成WordPress初始化。

单击Log In,输入用户名和密码,然后再次单击Log In打开WordPress站点。

登录后,就可以根据需要创建内容进行发布了。至此完成WordPress的搭建。


直播代练

直播代练,手把手演示MySQL的SQL问题诊断与调优体验。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 关系型数据库 MySQL
|
1月前
|
SQL 存储 关系型数据库
【MySQL 数据库】11、学习 MySQL 中的【锁】
【MySQL 数据库】11、学习 MySQL 中的【锁】
75 0
|
存储 关系型数据库 MySQL
|
18天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
84 0
|
7天前
|
SQL 存储 关系型数据库
6本值得推荐的MySQL学习书籍
本文是关于MySQL学习书籍的推荐,作者在DotNetGuide技术社区和微信公众号收到读者请求后,精选了6本值得阅读的MySQL书籍,包括《SQL学习指南(第3版)》、《MySQL是怎样使用的:快速入门MySQL》、《MySQL是怎样运行的:从根儿上理解MySQL》、《深入浅出MySQL:数据库开发、优化与管理维护(第3版)》以及《高性能MySQL(第4版)》和《MySQL技术内幕InnoDB存储引擎(第2版)》。此外,还有12本免费书籍的赠送活动,涵盖《SQL学习指南》、《MySQL是怎样使用的》等,赠书活动有效期至2024年4月9日。
|
13天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
5天前
|
存储 SQL 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-02
【4月更文挑战第7天】数据库通过视图实现事务隔离,不同隔离级别如读未提交、读已提交、可重复读和串行化采用不同策略。以可重复读为例,MySQL使用多版本并发控制(MVCC),每个事务有其独立的视图。回滚日志在无更早视图时被删除。长事务可能导致大量存储占用,应避免。事务启动可显式用`begin`或设置`autocommit=0`,但后者可能意外开启长事务。建议使用`autocommit=1`并显式管理事务,若需减少交互,可使用`commit work and chain`。
25 5
|
8天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
14 1
|
18天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)
29 0
|
存储 SQL 关系型数据库

推荐镜像

更多