Linux系统运维之Mysql简单介绍与安装

一、数据库以及DBA介绍

1、主流的数据库产品

首先了解一下:
RDBMS:

关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序(数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。
当下主流的产品有:
Oracle,Mysql,Microsoft SQL Server ,PG

NoSQL:

最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。NoSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

当下主流产品有:
Redis,MangoDB,ES,Cassandra等

NewSQL:

是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。
当下主要的产品:
TiDB、Spanner、AliSQL、OB、PolarDB

未来数据发展的趋势:
RDBMS===》NOSQL+RDBMS === 》NOSQL(RDBMS)+RDBMS(NOSQL)===》NEWSQL(spanner,TiDB,PDB)

想要了解更多主流数据库的趋势可以浏览:主流数据产品趋势

2、DBA

  数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
企业对于Mysql的选择:
以下列出的版本都比较稳定的Mysql版本,所以才会被企业青睐
版本及发布时间:

5.6 : 5.6.34(2016-9-30),5.6.36 (2017-3-18),5.6.38(2017-9-13), 5.6.40 (2018-2-26)
5.7 : 5.7.18(2018-3-18),5.7.20(2017-9-13) ,5.7.24(2018-10-4) ,5.7.26(2019-4-13)
8.0 : 8.0.14(2019-12-20), 8.0.15(2019-1-26) ,8.0.16(2019-4-13)

3、Mysql介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

二、Mysql安装(5.7.26版本)

我用的系统是CentOS 7 。
步骤一:
从Mysql官网https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-linux-glibc2.12-x86_64.tar下载二进制软件安装包到本的然后上传(命令:rz)到Linux系统当中,或者也可以直接在Linux当中下载:wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-linux-glibc2.12-x86_64.tar(这个可能会比较慢,建议先下载到电脑本地然后上传),我这里是下载到了/server/tools(这是我个人的软件包目录,可根据自己需要上传到指定目录)目录下
在这里插入图片描述

#注意:本地要是有Mariadb的要先卸载,已经的卸载略过
#查看
rpm -qa mariadb
#卸载(不考虑依赖包)
rpm -e mariadb --nodeps

#环境准备安装依赖包:
 yum install -y libaio-devel

步骤二:
下载好安装包之后,解压:

#解压命令
tar xf mysql-5.7.26-linux-glibc2.12-x86_64_2.tar

解压后会发现有两个包如下圈出所示,有个test包,这个肯能是个测试的包,可以不用理会。
在这里插入图片描述
然后再解压一次:

#解压
tar xf mysql-5.7.26-linux-glibc2.12-x86_64_2.tar.gz
#移动到/appication/目录下(我个人的软件安装目录,可以根据自己跟人而定自己需要的目录)
mv mysql-5.7.26-linux-glibc2.12-x86_64 /application

#或者直接解压指定目录:
tar xf mysql-5.7.26-linux-glibc2.12-x86_64_2.tar.gz -C /application

#创建一个软链接:
ln -s /application/mysql-5.7.26-linux-glibc2.12-x86_64/ /application/mysql

#创建一个mysql用户
useradd -s /sbin/nologin mysql -M

#配置一下环境变量
echo 'PATH=/application/mysql/bin:$PATH' >>/etc/profile
. /etc/profile	

#创建一个存放数据的目录:/data/mysql/data
mkdir -p /data/mysql/data
#授权
chown -R mysql.mydql /data/mysql/data

步骤三:

#查看一下数据库
mysql -V

在这里插入图片描述
初始化数据库带有随机密码(一般不用此初始化):

#注意:初始化数据库,此命令是初始化有随机密码的数据库(一般初始化的时候不带有密码,此仅作介绍使用)
mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data 
#说明:
--initialize 参数:
		1. 对于密码复杂度进行定制:12位,42. 密码过期时间:180
		3. 给root@localhost用户设置临时密码

在这里插入图片描述
初始化数据库不带随机密码(常规用法):

#   --initialize-insecure :无限制,无临时密码
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

在这里插入图片描述

步骤四:
添加简单的配置文件

cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
log_error = /application/mysql/data/oldboy_mysql.err
socket=/tmp/mysql.sock
server_id=6
port=3306

[mysql]
socket=/tmp/mysql.sock
EOF

启动数据库

#直接启动命令:
/application/mysql/support-files/mysql.server start

在这里插入图片描述

#启动数据库:sys-v
#把启动脚本给系统service命令管理:
cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld 
service mysqld restart




#启动数据库:systemctl
#把启动脚本给systemctl命令管理(自启动管理)
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
#启动脚本
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

#更新启动文件
systemctl daemon-reload
#启动
systemctl start mysql

在这里插入图片描述
错误排查:
有类似:without updating PID 的错误
查看日志文件,在/data/mysql/data目录下的以.err结尾的文件,找到[ERROR]的上下位置

一般可能情况:
1、配置文件:/etc/my.cnf 路径不对或者参数不对等
2、/tmp/mysql.sock文件修改过 或 删除过
解决:重新初始化,启动
3、数据目录(/data/mysql/data)权限不是mysql
解决:chown 更改目录的用户为mysql

三、数据库的密码

切记:数据库管理员的密码可谓重中之重,不可轻易与他人看到,否则后果不堪设想!!!

1、管理员密码的设定:

# (root@localhost)注意:实际生产当中不要如此配置密码,会让别人看到,不安全
mysqladmin -uroot -p password any123

在这里插入图片描述

2、登录修改密码

#进入数据库之后执行,会提示有error错误
alter user root@'localhost' identtified by '密码';
#看到error错误后,然后刷新
flush privileges;
#再执行,就ok了
alter user root@'localhost' identtified by '密码';

在这里插入图片描述

3、管理员忘记密码找回

1、先关闭数据库
systemctl stop mysql
2、命令行输入,启动数据库到维护模式
mysqld_safe --skip-grant-tables --skip-networking &

在这里插入图片描述
文章到此结束!!!谢谢!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值