MySQL 数据库管理员:

    1.数据管理
    增删改查

    2.用户管理
    grant all on . to all@’%’ identified by ‘123’;

    1. 1.权限最小化
    2. 2.root,运维用户ops,程序连库用户(只读用户,读写用户)

    3.集群管理

    4.数据备份、恢复
    逻辑备份
    物理备份
    热备
    冷备
    温备
    全备
    增备
    差异备份

    5.监控
    进程,端口
    集群状态
    主从复制 延时情况
    SQL读写速率
    slowlog

    01 什么是数据?

    数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
    数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。
    在计算机系统中,数据以二进制信息单元0,1的形式表示。

    数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*

    数据库管理系统分类

    1.RDBMS 关系型数据库
    典型代表产品:MySQL,Oracle,Mariadb,MSSQL(SQLserver)

    2.NoSQL 非关系型数据库
    典型代表产品:Redis,memcache,MongoDB,elasticsearch

    MySQL版本选择的潜规则:

    5.6:GA 6-12个月 小版本是偶数版
    5.7:GA 6-12个月 小版本是偶数版 选择5.7.17版本以上的 (MGR:MySQL自带的高可用功能)

    MySQL安装方式

    1. rpm、yum安装
      安装方便、安装速度快,无法定制
    2. 二进制
      不需要安装,解压即可使用,不能定制功能
    3. 编译安装
      3.1 可定制,安装慢
      3.2 四个步骤:
      3.2.1 解压(tar)
      3.2.2 生成(./configure)cmake
      3.2.3 编译(make)
      3.2.4 安装(make install)
      3.3 5.5版本之前:tar ./configure make make install
      3.4 5.5版本之后:cmake gmake
    4. 先编译,然后定制rpm包,制作yum仓库,然后yum安装
      4.1 简单,速度快,可定制,比较复杂,制作时间极长
    5. 企业中选择的安装方式
      5.1 中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制
      5.2 大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装

    编译安装:
    1.解压 tar
    2.生成 ./configure cmake gmake
    3.编译 make
    4.安装 make install

    1. 1)下载epel
    2. [root@db01 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    3. 2)安装依赖
    4. [root@db01 ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc
    5. [root@mysql mysql-5.6.40]# useradd mysql -s /sbin/nologin -M
    6. 3)解压MySQL源码包
    7. [root@db01 ~]# tar xf mysql-5.6.40.tar.gz
    8. 4)进入源码包目录
    9. [root@db01 ~]# cd mysql-5.6.40/
    10. 5)创建目录
    11. [root@db01 ~]# mkdir /application
    12. 6)生成编译文件
    13. [root@db01 mysql-5.6.40]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40
    14. -DMYSQL_DATADIR=/application/mysql-5.6.40/data
    15. -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock
    16. -DDEFAULT_CHARSET=utf8
    17. -DDEFAULT_COLLATION=utf8_general_ci
    18. -DWITH_EXTRA_CHARSETS=all
    19. -DWITH_INNOBASE_STORAGE_ENGINE=1
    20. -DWITH_FEDERATED_STORAGE_ENGINE=1
    21. -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    22. -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
    23. -DWITH_ZLIB=bundled
    24. -DWITH_SSL=bundled
    25. -DENABLED_LOCAL_INFILE=1
    26. -DWITH_EMBEDDED_SERVER=1
    27. -DENABLE_DOWNLOADS=1
    28. -DWITH_DEBUG=0
    29. 7)编译
    30. [root@db01 mysql-5.6.40]# make
    31. 8)安装
    32. [root@db01 mysql-5.6.40]# make install
    33. 9)创建mysql用户
    34. [root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M
    35. 10)做软链接
    36. [root@db01 mysql-5.6.40]# ln -s /application/mysql-5.6.40 /application/mysql
    37. 11)进入其他文件目录
    38. [root@db01 mysql-5.6.40]# cd /application/mysql/support-files
    39. 12)拷贝MySQL配置文件
    40. [root@db01 support-files]# cp my-default.cnf /etc/my.cnf
    41. cp: overwrite ‘/etc/my.cnf’? y
    42. 13)拷贝启动脚本
    43. [root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
    44. 14)进入初始化目录
    45. [root@db01 support-files]# cd /application/mysql/scripts
    46. 15)初始化MySQL
    47. [root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
    48. 16)创建socket文件所在目录
    49. [root@db01 scripts]# mkdir /application/mysql-5.6.40/tmp
    50. 17)授权MySQL服务目录
    51. [root@db01 scripts]# chown -R mysql.mysql /application/mysql*
    52. 18)添加环境变量
    53. [root@db01 scripts]# vim /etc/profile.d/mysql.sh
    54. export PATH="/application/mysql/bin:$PATH"
    55. 19)加载环境变量
    56. [root@db01 scripts]# source /etc/profile
    57. 20)启动MySQL
    58. [root@db01 scripts]# /etc/init.d/mysqld start
    59. 21
    60. /etc/init.d/mysqld stop
    61. 21 systemctl启动
    62. [root@db01 ~]# vim /usr/lib/systemd/system/mysqld.service
    63. 加入
    64. [Unit]
    65. Description=MySQL Server
    66. Documentation=man:mysqld(8)
    67. Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
    68. After=network.target
    69. After=syslog.target
    70. [Install]
    71. WantedBy=multi-user.target
    72. [Service]
    73. User=mysql
    74. Group=mysql
    75. ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    76. LimitNOFILE = 5000

    MySQL二进制安装步骤:

    1. 1)解压二进制包
    2. [root@db02 ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
    3. 2)创建MySQL安装目录
    4. [root@db02 ~]# mkdir /application
    5. 3)移动MySQL程序到安装目录下
    6. [root@db02 ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /application/mysql-5.6.40
    7. 4)做软链接
    8. [root@db02 ~]# ln -s /application/mysql-5.6.40 /application/mysql
    9. 5)进入其他文件目录
    10. [root@db02 ~]# cd /application/mysql/support-files
    11. 6)拷贝配置文件
    12. [root@db02 support-files]# cp my-default.cnf /etc/my.cnf
    13. cp: overwrite ‘/etc/my.cnf’? y
    14. 7)拷贝启动脚本
    15. [root@db02 support-files]# cp mysql.server /etc/init.d/mysqld
    16. 8)进入初始化目录
    17. [root@db02 support-files]# cd ../scripts/
    18. 9)创建mysql用户
    19. [root@db02 scripts]# useradd mysql -s /sbin/nologin -M
    20. 10)安装初始化依赖
    21. [root@db02 scripts]# yum install -y autoconf libaio-devel
    22. 11)初始化
    23. [root@db02 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
    24. 12)启动MySQL
    25. [root@db02 scripts]# /etc/init.d/mysqld start
    26. [root@db02 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe
    27. 13)添加环境变量
    28. [root@db02 scripts]# vim /etc/profile.d/mysql.sh
    29. export PATH="/application/mysql/bin:$PATH"
    30. MySQLroot用户设置密码
    31. [root@db02 scripts]# mysqladmin -uroot -p password '123'
    32. 连接MySQL
    33. [root@db01 ~]# mysql -uroot -p123
    34. 查看MySQL中所有用户
    35. mysql> select user,host from mysql.user;
    36. 删除用户
    37. mysql> drop user root@'db01';
    38. mysql> drop user root@'::1';
    39. mysql> drop user ''@'db01';
    40. mysql> drop user ''@'localhost';
    41. mysql> drop user root@'localhost';
    42. mysql> drop user root@'127.0.0.1';