开源数据库Mysql_DBA运维实战 (部署服务篇)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 开源数据库Mysql_DBA运维实战 (部署服务篇)

前言



1.数据库能做什么


a.不论是淘宝,吃鸡,爱奇艺,抖音,快手,知乎,百度贴吧等,众所周知的服务程序

b.存储的数据,包含用户的账号,密码,级别,存款,余额,等级,购物记录,头像本地路径,视频文件路径

c.只要是信息,就一定在数据库里


2.数据库的由来


1.人工管理阶段相当于过去的账本

2.文件系统阶段相当于前段时间的excel

3.数据库系统管理阶段------MySQl


数据库的系统结构❀



1.数据库系统DBS


a.数据库管理系统(DataBase Management System, DBMS):

SQL     (RDS关系型数据库)

ORACLE

Oracle MySQL

DB2(IBM)

SQL-server(MS)

Mysql

MariaDB

Percona server(taobao)


b.DBA:工程师  administrator


2.SQL语言(结构化查询语言)


SQL(Structured Query Language 即结构化查询语言)


a.DDL语句   数据库定义语言: 数据库,表,视图,索引,存储过程,函数,创建删除ALTER(CREATE DROP ALTER)

b.DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

c.DQL语句   数据库查询语言:查询数据SELECT

d.DCL语句 数据库控制语言:  例如控制用户的访问权限GRANT,REVOKE


3.数据访问技术


a.   ODBC PHP <.php>

b.   JDBC   JAVA <.jsp>

c.   ASP.NET  <c#>

版本:Mysql5.7


部署Mysql❀



Mysql官网:www.mysql.com

                    www.oracle.com


1.通过rpm安装部署Mysql

硬件:内存不能少于2G


a.首先关闭防火墙和selinux

systemctl stop  firewalld      立刻停止防火墙
systemctl disable  firewalld   开机禁用防火墙
setenforce 0                   立刻停止selinux 
开机禁用selinux
    # vim    /etc/selinux/config
        SELINUX=disabled


b.从官网下载软件包

参考:中国科学技术大学开源软件镜像

%XC8]J8KS]@Z}GA37%)%TUA.png


yum install -y lrzsz #上传


rz上传到服务器上


c.安装相关的软件

[root@server-1 ~]# yum install -y net-tools.x86_64 libaio.x86_64 perl.x86_64


d.安装Mysql服务器

[root@server-1 ~]# yum install -y mysql-community*


e.启动Mysql服务器

829e6a8469084b6cb5c4336c16e59da5.png

systemctl start mysqld   //启动mysql
systemctl enable mysqld  //启用MySQL
systemctl status mysqld  //查看mysql状态

f.查询Mysql服务器默认密码

ff48522f17cf40cfbfd5ac616829eb87.png

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

g.修改Mysql服务器密码

f47841da0e084a7a9626dd6507f802d9.png

 mysqladmin -uroot -p'9M8ghQiW7Y-k' password 'QianFeng@123'

h.登录Mysql系统

fc67dfb0e7634ff08cba4f84bc051394.png


 mysql -uroot -p'QianFeng@123'

i.查到默认数据库

78c79eca6eab44e7a98883ef0b795244.png

show   databases;   #默认查询数据库

j.MySQL配置完成关机快照

95a79afcc0b24335b534e5c764f3a8e0.png


2.通过源码包安装部署Mysql

源码安装特点:


源码安装
与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL

所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:


a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;

d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。


在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:


a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;

c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;


准备编译环境:

a.准备不小于2G内存的服务器

b.编译软件


# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake

# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz


c.安装Mysql


准备源码包:

# groupadd mysql

# useradd -r -g mysql -s /bin/false mysql

# tar xvf mysql-5.7.19.tar.gz

# cd mysql-5.7.19

# pwd

/root/mysql-5.7.19

# mv ../boost_1_59_0.tar.gz  .

[root@mysql3 mysql-5.7.19]# tar xf  boost_1_59_0.tar.gz       注意包的位置


配置:

[root@mysql-5.7.17 ~]# cmake . \

-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键


编译安装:

#   make && make install


d.初始化

# cd /usr/local/mysql    进入安装位置

# mkdir mysql-files  

# chown -R mysql.mysql  /usr/local/mysql     注意目录名称     赋予权限

#  /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

   会生产临时密码,在屏幕上。 保存临时密码。

#  /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

建立Mysql配置文件my.cnf:

备份原有的配置文件

# mv /etc/my.cnf  ~

修改配置文件

# vim /etc/my.cnf  

[root@mysql-server ~]# vim /etc/my.cnf  --如果打开文件有内容将文件中所有内容注释掉,在添加如下内容
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql  #指定安装目录
datadir = /usr/local/mysql/data  #指定数据存放目录
socket = /tmp/mysql.sock
character_set_server = utf8
[client]
# 默认连接端口
port = 3306
# 用于本地连接的socket套接字
socket = /tmp/mysql.sock
# 编码
default-character-set = utf8
[mysqld]
# 服务端口号,默认3306
port = 3306
# mysql启动用户
user = mysql
# mysql安装根目录
basedir = /usr/local/mysql
# mysql数据文件所在位置
datadir = /usr/local/mysql/data
# 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
socket = /tmp/mysql.sock
# 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character_set_server = utf8


e.开机启动Mysql

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


# chkconfig --add mysqld     添加mysql服务

# 启动mysql   systemctl enable mysqld


chkconfig mysqld on   开机自动启动MySQL服务

service mysqld start

ps aux | grep mysqld


 修改数据库密码并登录

45c0c7006b484ed89cbc50a69736ee45.png

show databases;         查看默认数据库即可

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
2月前
|
运维 Prometheus 监控
别再盲选了!开源运维工具选型这事儿,咱得说人话
别再盲选了!开源运维工具选型这事儿,咱得说人话
118 7
|
3月前
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
5月前
|
人工智能 运维 关系型数据库
|
4月前
|
canal 关系型数据库 MySQL
MySQL 自动同步开源工具
本文介绍了几种开源工具用于实现 MySQL 数据库的自动同步。
|
4月前
|
运维 监控 数据可视化
斩获6.1 star,再见Crontab!这款开源定时任务管理系统让运维更高效
Gocron是一款基于Go语言的轻量级定时任务调度系统,替代传统Linux Crontab。它提供可视化Web界面管理,支持秒级调度、任务依赖配置与多节点执行。核心功能包括:1) 可视化管理;2) 精确调度规则;3) 全链路任务控制;4) 多类型任务支持;5) 完善监控通知。适用于自动化运维、系统监控、数据处理及业务自动化等场景。通过三步快速上手:一键部署、添加任务节点、创建定时任务。相比Crontab和Celery,Gocron更直观高效,适合个人与企业使用。项目地址:https://github.com/ouqiang/gocron。
494 8
|
6月前
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
195 1
|
6月前
|
运维 安全 关系型数据库
Websoft9 运维面板,全网真正的一键部署应用
Websoft9运维面板实现应用真·一键部署,通过智能环境适配、安全架构与容器化技术,将传统数小时部署缩短至分钟级,显著提升效率与安全性。
144 5

推荐镜像

更多