数据库MySQL数据库MySQL安装部署
王先森MySQL 大纲介绍
官方定义的MySQL DBA工作内容
(1)运维DBA
初级:各版本、各平台安装搭建、升级
中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、
日志管理、备份与恢复、主从复制(构建、状态监控)
高级:高可用(MGR、InnoDB Cluster)、高性能(优化)
(2)开发DBA
懂至少一门开发语言 :JAVA、Python
基本SQL语句深入学习(增删改查)、数据库结构设计(建模)
高级SQL:存储过程、函数、触发器、视图、事件
MySQL 介绍和安装
什么是数据?
1 2 3 4 5 6 7
| 数据:文字、图片、视频。。。人类认知的数据表现方式 计算机:二进制、16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。
哪些数据是适合存储到数据库的呢? 重要性比较高的 关系较复杂的数据
|
什么是数据库管理系统(DBMS)?
RDBMS: 关系型数据库管理系统
比较适合于,安全级别要求高的数据以及关系较复杂的数据
NoSQL:非关系型数据库管理系统
适合于高性能存取数据,一般是配合RDBMS进行使用的
针对大数据处理分析,分布式架构更加擅长
数据库管理系统种类
1 2 3 4 5 6
| RDBMS : MySQL 、Oracle、MSSQL(SQL Server)、PG NoSQL:Not Only SQL 键-值(key-value):Redis, memcached 文档(document):Mongodb
|
MYSQL二进制安装方法
MySQL二进制安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| # 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 # 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
# # mkdir /data/mysql -p chown -R mysql.mysql /app/* chown -R mysql.mysql /data/*
|
初始化数据(建库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # # 初始化数据,初始化管理员的临时密码 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初始化的区别
1
| /app/mysql/scripts/mysql_install_db --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql
|
书写默认配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| vim /etc/my.cnf # [mysqld] # user=mysql # basedir=/app/mysql # datadir=/data/mysql # server_id=6 # port=3306 # log-error=/app/mysql/logs/error.log # log-bin=/app/mysql/mysql-bin/mysql-bin # 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
1 2 3 4
| cd /app/mysql/support-files ./mysql.server start cp mysql.server /etc/init.d/mysqld chkconfig --add mysqld
|
systemd管理MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
|
简单管理
1 2 3 4 5 6 7 8
| # mysqladmin -uroot -p password 123 # select user,password,host from mysql.user;
# select user,authentication_string,host from mysql.user; desc mysql.user;
|
小结
版本 (主流版本的GA时间了解一下)5.6 5.7
(1) 初始化方式变了
mysql_install_db
mysqld –initialize-insecure
(2) 用户安全
12位
180
4种复杂度
(3)密码字段
authentication_strings
建库(初始化数据库)mysqld –intialize-insecure –user=mysql –basedir=/app/mysql –datadir=/data/mysql
简易的配制文件/etc/my.cnf
user
basedir
datadir
server_id
port
socket
管理员密码mysqladmin -uroot -p password xx