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

    前言❀

         1.数据库能做什么

2.数据库的由来

数据库的系统结构❀

1.数据库系统DBS

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

3.数据访问技术

部署Mysql❀

1.通过rpm安装部署Mysql

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


前言

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/configSELINUX=disabled

b.从官网下载软件包

参考:中国科学技术大学开源软件镜像USTC Open Source Software Mirrorhttp://mirrors.ustc.edu.cn/

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服务器

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

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

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

g.修改Mysql服务器密码

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

h.登录Mysql系统

 mysql -uroot -p'QianFeng@123'

i.查到默认数据库

show   databases;   #默认查询数据库

j.MySQL配置完成关机快照

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

 修改数据库密码并登录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/33187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不知什么原因,背调没过?

前两天写了一篇文章《电话背调&#xff0c;我给他打了8分》&#xff0c;跟大家聊了职场中沟通的一些基本原则和经验。背调时&#xff0c;同事没给打招呼&#xff0c;几乎也没什么私交&#xff0c;但出于“不坏别人好事”的原则&#xff0c;给了8分的评价。 在稍微大一些的公司…

Nginx+Tomcat的动静分离

首先准备好5台机子&#xff1a;2台装有tomcat&#xff0c;3台装有nginx 1.关闭5台机子的防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 Nginx1 vim /usr/local/nginx/conf/nginx.conf#在--#pid-- 下做四层代理 stream {upstream test {server …

IMU惯性测量单元相关技术(概念版)

重要说明&#xff1a;本文从网上资料整理而来&#xff0c;仅记录博主学习相关知识点的过程&#xff0c;侵删。 一、参考资料 新手入门系列3——Allan方差分析方法的直观理解 惯性测量单元Allan方差分析详解 IMU误差&测量模型 IMU标定之—Allan方差 IMU误差模型简介及VINS…

微信小程序中键盘弹起输入框自动跳到键盘上方处理

效果展示 键盘未弹起时 键盘弹起后&#xff1a; 实现方式 话就不多说了 我直接贴代码了 原理就是用你点击的输入框的底部 距离顶部的位置 减去屏幕高度除以2&#xff0c;然后设成负值&#xff0c;再将这个值给到最外层相对定位的盒子的top属性&#xff0c;这样就不会出现顶…

打靶练习:WestWild 1.1(一个简单但不失优雅的Ubuntu靶机)

文章目录 主机发现和nmap信息收集samba渗透web渗透用户横向移动sudo提权到root总结 主机发现和nmap信息收集 //主机发现 sudo nmap -sn 192.168.226.0/24 //扫描整个C段//端口扫描//初步扫描 sudo nmap -sT --min-rate 10000 -p- 192.168.226.131 -oA nmapscan/ports //用…

每日后端面试5题 第六天

1. Java中有几种类型的流 字符流、字节流 输入流、输出流 节点流、处理流 2 .Spring支持的几种bean的作用域 五种&#xff1a; 1.singleton bean在每个ioc容器中只有一个实例 2.prototype 可以有多个实例 3-5在web环境中才生效 3.request 每次请求才创建bean 4.se…

git上传代码后,如何清空历史日志以及文件操作,重新上传?以及上传代码

【Git教程】如何清除git仓库的所有提交记录&#xff0c;成为一个新的干净仓库  马三也算Github的忠实用户了&#xff0c;经常会把一些练手的项目传到Github上面进行备份。其中有一个名为ColaFramework的Unity框架项目&#xff0c;马三开发了一年多了&#xff0c;期间提交代码的…

NetFlow 笔记

目录 1. NetFlow 笔记1.1. 模拟器1.2. 什么是 NetFlow?1.3. Cisco NetFlow 版本1.4. NetFlow 是如何工作的?1.4.1. IP 流量1.4.2. NetFlow 缓存1.4.3. NetFlow 收集器 1.5. 为什么使用 NetFlow?1.6. SNMP 与 NetFlow1.7. sFlow、NetFlow、SNMP 三者之间有什么不同?1.7.1. s…

记录一个正则表达式

正则表达式要求如下: 至少 8 个字符&#xff1b; 至少包含一个小写英文字母&#xff1b; 至少包含一个大写英文字母&#xff1b; 至少包含一个数字&#xff1b; 至少包含一个特殊字符&#xff0c;特殊字符为&#xff1a;“!#$%^&*()-” 中的一个&#xff1b; 不包含2个连续…

每日一题 154寻找旋转排序数组中的最小值||(二分)

题目 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到&#xff1a; 若旋转 4 次&#xff0c;则可以得到 [4,5,6,7,0,1,4]若旋转 7 次&…

Kotlin~Mediator中介者模式

概念 创建一个中介来降低对象之间的耦合度&#xff0c;关系”多对多“变为“一对多”。 角色介绍 Mediator&#xff1a;抽象中介者&#xff0c;接口或者抽象类。ConcreteMediator&#xff1a;中介者具体实现&#xff0c;实现中介者接口&#xff0c;定义一个List管理Colleagu…

【CSH 入门基础 5 番外篇 -- zsh和bash区别及其使用介绍】

文章目录 1.1 zsh 和 bash 的区别1.1.1 oh-my-zsh 介绍1.1.2 zsh 插件 zsh-autosuggestions.zsh 1.1 zsh 和 bash 的区别 在Linux环境下&#xff0c;Bash和Zsh都是非常常见的Shell环境&#xff0c;它们都可以用来执行命令行指令&#xff0c;运行脚本等&#xff0c;但是它们之间…

若依部署前后端

打包项目 前端打包 npm run build:prod将代码上传到指定目录 配置nginx转发 server{listen 8090;server_name localhost;location / {root /home/cc_library/dist;index index.html index.htm;# 配置 history模式&#xff0c;刷新页面会404&#xff0c;&#xff0c;因为服…

基于k8s job设计与实现CI/CD系统

方案一&#xff1a;Jenkinsk8sCICD 方案二&#xff1a;kanikok8s jobCICD CICD 基于K8s Job设计流水线 CI方案 工具镜像 云原生镜像打包工具 kaniko的使用 与Jenkins对比 可用性与易用性

Flutter参考资料

Flutter 官网 : https://flutter.dev/ Flutter 插件下载地址 : https://pub.dev/packages Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 ) 官方 GitHub 地址 : https://github.com/flutter Flutter 中文社区 : https://flutter.cn/ Flutter 实用教程 : https://flut…

SAP MM学习笔记18- SQVI 工具

Tr-cd SQVI 是一个SAP数据库工具。 使用这个工具&#xff0c;可以自己构建查询界面中的条件&#xff0c;查询对象&#xff0c;从而自由查询数据&#xff0c;实现标准没有的功能。 1&#xff0c;SQVI 和 SQ1&#xff0c;SQ2&#xff0c;SQ3 的不同 SQ1&#xff0c;2&#xff0…

DevOps在项目管理中的魔法:简化与深化

什么是DevOps&#xff1f; 定义与核心思想 DevOps, 这个名词&#xff0c;在技术领域中饱受瞩目。但它到底是什么&#xff1f;首先&#xff0c;DevOps并不仅仅是一个技术或者工具&#xff0c;它首先是一种文化&#xff0c;一种思想。DevOps是Development&#xff08;开发&#…

数据库管理-第九十八期 统计信息是多么重要(20230812)

数据库管理-第九十八期 统计信息是多么重要&#xff08;20230812&#xff09; 每天通过EM可视化巡视数据库执行情况&#xff0c;发现那些执行比较长的语句要么是索引没用上、要么是索引没建。但更多的是发现执行计划中“估计的行数”与“行数”&#xff08;执行的&#xff09;…

图解java.util.concurrent并发包源码系列——Condition条件等待队列深入详解

图解java.util.concurrent并发包源码系列——Condition条件等待队列深入详解 Condition的作用Condition的原理Condition源码Condition的定义和Condition对象的获取await方法addConditionWaiter方法unlinkCancelledWaiters方法 fullyRelease方法isOnSyncQueue方法checkInterrupt…