(1)运维DBA 初级:各版本、各平台安装搭建、升级 中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、 日志管理、备份与恢复、主从复制(构建、状态监控) 高级:高可用(MGR、InnoDB Cluster)、高性能(优化) (2)开发DBA 懂至少一门开发语言 :JAVA、Python 基本SQL语句深入学习(增删改查)、数据库结构设计(建模) 高级SQL:存储过程、函数、触发器、视图、事件
什么是数据?
数据:文字、图片、视频。。。人类认知的数据表现方式
计算机:二进制、16进制的机器语言
基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。
哪些数据是适合存储到数据库的呢?
重要性比较高的
关系较复杂的数据RDBMS: 关系型数据库管理系统 比较适合于,安全级别要求高的数据以及关系较复杂的数据
NoSQL:非关系型数据库管理系统 适合于高性能存取数据,一般是配合RDBMS进行使用的 针对大数据处理分析,分布式架构更加擅长
RDBMS :
MySQL 、Oracle、MSSQL(SQL Server)、PG
NoSQL:Not Only SQL
键-值(key-value):Redis, memcached
文档(document):Mongodb### 上传软件到此目录
mkdir -p /server/tools/
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
### 创建软件目录
mkdir /app
### 解压并改名为mysql
mv mysql-5.7.33-linux-glibc2.12-x86_64 /app/mysql
ls -l /app/mysql/
total 36
drwxr-xr-x 2 root root 4096 Mar 4 14:55 bin
-rw-r--r-- 1 7161 31415 17987 Sep 13 2017 COPYING
drwxr-xr-x 2 root root 55 Mar 4 14:55 docs
drwxr-xr-x 3 root root 4096 Mar 4 14:55 include
drwxr-xr-x 5 root root 229 Mar 4 14:55 lib
drwxr-xr-x 4 root root 30 Mar 4 14:55 man
-rw-r--r-- 1 7161 31415 2478 Sep 13 2017 README
drwxr-xr-x 28 root root 4096 Mar 4 14:55 share
drwxr-xr-x 2 root root 90 Mar 4 14:55 support-files
### 修改环境变量
vim /etc/profile
export PATH=/app/mysql/bin:$PATH
source /etc/profile
### 建立mysql用户和组(如果已有可忽略) useradd mysql
### 创建相关目录并修改权限
mkdir /data/mysql -p
chown -R mysql.mysql /app/*
chown -R mysql.mysql /data/*### 方法一
# 初始化数据,初始化管理员的临时密码
yum -y install libaio-devel
mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql
新特性重要说明:
5.7版本开始,MySQL加入了全新的 密码的安全机制:
1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合
3.密码过期时间180天
### 方法二
\rm -rf /data/mysql/*
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql注释:5.6初始化的区别
/app/mysql/scripts/mysql_install_db --user=mysql --datadir=/application/mysql/data --basedir=/application/mysqlvim /etc/my.cnf
## 服务器端配置
[mysqld]
##用户
user=mysql
## 软件安装路径
basedir=/app/mysql
## 数据存放路径
datadir=/data/mysql
## 服务器id号
server_id=6
## 端口号
port=3306
## 错误日志存放
log-error=/app/mysql/logs/error.log
## binlog日志 开启MySQL主从和恢复使用
log-bin=/app/mysql/mysql-bin/mysql-bin
## socket文件路径
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
## 数据库提示信息
prompt=3306 [\\d]>启动MySQL默认会加载配置文件:
etc/my.cnf—>/etc/mysql/my.cnf—>/usr/etc/my.cnf—> ~/.my.cnf 如果冲突,以最后一个读取的为准。 [mysqld]组中包括了mysqld服务启动时的初始化参数 [client]组中包含着客户端工具程序可以读取的参数,此外还有其他针对各个客户端软件的特定参数组等
SysVinit管理MySQL
cd /app/mysql/support-files
./mysql.server start
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqldsystemd管理MySQL
vim /etc/systemd/system/mysqld.service
[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=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000### 设置root用户登录密码
mysqladmin -uroot -p password 123
### 5.6版本:
select user,password,host from mysql.user;
### 5.7 中用户基本信息
select user,authentication_string,host from mysql.user;
desc mysql.user;