官方定义MySQL DBA工作内容
(1)运维DBA 初级:各版本、各平台安装升级 中级:系统结构原理、基础管理(启动关闭、初始配置文件管理、多实例管理、用户权限管理、基础管理SQL(增删改查), 日志管理、备份和恢复,主要从复制(构建和状态监控) 高级:高可用性(MGR、InnoDB Cluster)、高性能(优化) (2)开发DBA 至少懂一门语言开发 :JAVA、Python 基本SQL深入学习句子(增删改查),数据库结构设计(建模) 高级SQL:存储过程、函数、
触发器、视图、事件
2、DBA职业素养
2.1.什么是数据?
数据:文本、图片、视频。。。人类认知的数据表达 计算机:二进制和16进制机器语言 根据数据的重要性和复杂性,我们可能有不同的管理方法。 哪些数据适合存储在数据库中? 重要性高的 复杂的数据
2.2.什么是数据库管理系统?(DBMS)?
RDBMS: 关系数据库管理系统 比较适合于,安全级别要求高、关系复杂的数据 NoSQL:非关系数据库管理系统 适用于高性能存取数据,一般是配合RDBMS进行使用的 大数据处理分析,更擅长分布式架构
2.3.数据库管理系统的类型
RDBMS : MySQL 、Oracle、MSSQL(SQL Server)、PG NoSQL:Not Only SQL 键-值(key-value):Redis, memcached 文档(document):Mongodb
3、MySQL简介及产品线
3.1 MySQL行业主流版:
5.6 5.7 8.0(现在开始研究新特性)
3.2 选择企业版(MySQL分支版),笔试题
Oracle: MySQL官方版 红帽 : MariaDB Percona: PerconaDB
3.3 版本选择建议更新环境
1.官方主流版一般选择:5.6,5.7 2.GA(稳定发布版) 3.6-12月产品版本 4.4 课程版本: 5.7.20 二进制安装,其他安装方式自行扩展 4.5 如何获取MySQL软件 企业版:Enterprise , 互联网行业一般不选择. 社区版:选择 源码包:source code .tar.gz 通用二进制 常用版本号 5.6.20 5.6.34 5.6.36 5.6.38 5.6.40 5.7.18 5.7.20 5.7.22
4、MySQL二进制安装
4.1.创建软件目录:
[root@db01 ~]# mkdir -p /app/
将软件上传到此目录
4.2. 解压并改名mysql
[root@db01 app]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql [root@db01 app]# 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 [root@db01 bin] # source /etc/profile
4.3. 建立mysql用户和组(如果已有可忽略)
useradd mysql
4.4. 创建相关目录并修改权限
mkdir /data/mysql -p
chown -R mysql.mysql /app/*
chown -R mysql.mysql /data/*
4.5 初始化数据(建库)
方法一:
初始化数据,初始化管理员的临时密码
mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql
2019-04-18T03:21:53.381108Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-18T03:21:54.583415Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-18T03:21:54.697859Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-18T03:21:54.760821Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1daa0c57-6189-11e9-bc80-000c294234c8.
2019-04-18T03:21:54.770856Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-18T03:21:54.772016Z 1 [Note] A temporary password is generated for root@localhost: 9LN.fh_Ea#uU
报错原因: Linux系统中缺少libaio-devel 软件包 解决:
yum install -y libaio-devel
报错原因: 在/data/mysql 存在文件 解决:
\rm -rf /data/mysql/*
方法二: 初始化数据,初始化管理员的密码为空
\rm -rf /data/mysql/*
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql
2019-04-18T03:37:43.146018Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-18T03:37:43.892132Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-18T03:37:43.970412Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-18T03:37:44.029490Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5378f3b3-618b-11e9-9164-000c294234c8.
2019-04-18T03:37:44.041469Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-18T03:37:44.042348Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@db01 ~]#
[root@db01 ~]# cd /data/mysql/
[root@db01 mysql]# ll
total 110628
-rw-r----- 1 mysql mysql 56 Apr 18 11:37 auto.cnf
-rw-r----- 1 mysql mysql 419 Apr 18 11:37 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Apr 18 11:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 Apr 18 11:37 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Apr 18 11:37 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 Apr 18 11:37 mysql
drwxr-x--- 2 mysql mysql 8192 Apr 18 11:37 performance_schema
drwxr-x--- 2 mysql mysql 8192 Apr 18 11:37 sys
/application/mysql/scripts/mysql_install_db --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>
[root@db01 mysql]# cd /app/mysql/support-files
[root@db01 support-files]# ./mysql.server start
Starting MySQL.Logging to '/data/mysql/db01.err'.
SUCCESS!
cp mysql.server /etc/init.d/mysqld
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
注意:将原来模式启动mysqld先关闭,然后再用systemd管理。
systemctl start/stop/restart/status mysqld
6. 安装后的简单管理
[root@db01 ~]# mysqladmin -uroot -p password 123
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
5.6版本:
select user,password,host from mysql.user;
5.7 中用户基本信息
select user,authentication_string,host from mysql.user;
desc mysql.user;
1.版本 (主流版本的GA时间了解一下)
5.6 5.7
5.6.38 5.7.20
20170913
(1) 初始化方式变了
mysql_install_db
mysqld --initialize-insecure
(2) 用户安全
12位
180
4种复杂度
(3)密码字段
authentication_strings
2.安装方法:
二进制
源码
yum
3.建库(初始化数据库)
mysqld --intialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql
4.简易的配制文件/etc/my.cnf
user
basedir
datadir
server_id
port
socket
5.管路员密码
mysqladmin -uroot -p password xx