0755mx 发表于 2018-10-7 06:27:02

MySQL数据库管理4-hj

  修改数据库管理员本机登录密码
  # mysqladmin -hlocalhost-uroot-p
  password"新密码"
  恢复数据管理员本机登录的密码
  vim /etc/my.cnf
  
  #validate_password_policy=0
  #validate_password_length=6
  skip-grant-tables
  :wq
  #systemctl   restart mysqld
  #mysql
  mysql> updatemysql.user
  -> set
  -> authentication_string=password("123123")
  -> where
  -> user="root" and host="localhost";
  mysql> flush privileges;
  mysql>quit
  vim /etc/my.cnf
  
  validate_password_policy=0
  validate_password_length=6
  #skip-grant-tables
  :wq
  #systemctl   restart mysqld
  #mysql-uroot-p123123
  mysql>
  +++++++++++++++++++++++++
  用户授权
  *默认只允许数据库管理员从本机登录。
  *默认只有数据库管理员在本机登录才有授权权限。
  给谁授权: 管理者(运维工作人员)   使用者(网站服务器)
  授权命令
  mysql> grant   权限列表 on数据库名    to用户名;
  mysql> grant   权限列表 on数据库名    to用户名@"客户地
  址"identified by "密码"withgrantoption;
  权限列表
  all所有权限
  select,insert,update(name,age)
  数据库名的表示方式:
  *.*所有库所有表
  库名.*   某个库
  库名.表   某张表
  用户名:授权时自定义的
  客户地址表示方式
  %所有主机
  192.168.4.%   网段
  192.168.4.7    ip地址
  主机名    pc101.tedu.cn
  域名       %.tedu.cn
  identified by "密码" 登录密码 (可选项)
  withgrantoption   有授权权限 (可选项)
  添加yaya用户可以在本机登录,对所有库表有完全权限但不能授
  权,登录密码654321
  mysql> grant all on *.* to yaya@"localhost"

  ->>  mysql> selectuser(); 显示当前登录的用户和客户端地址
  mysql> show grants; 显示当前登录用户的访问权限
  添加plj用户可以在x.x.x.254登录,对所有库表有完全权限并有
  授权权限,登录密码654321
  mysql> grant all on *.*to plj@"192.168.4.254"
  identified by "654321" withgrant option;
  MySQL [(none)]> grantall onbbsdb.*tostudent
  identified by "654321";
  授权user1用户可以在网络中的任意主机连接数据库服务器,连
  接后仅对userdb库下user表有查询 插入 更新权限 更新时只能
  更新name字段的值,登录密码123456;
  grant   select ,insert ,update(name)onuserdb.userto

  user1@"%">  授权信息储存在mysql库下的表里
  user存储已有的授权用户
  db   记录授权用户对库访问权限
  tables_priv   记录授权用户对表访问权限
  columns_priv记录授权用户对表中字段的访问权限
  查看一样的授权用户和登录客户端地址
  selectuser,hostfrommysql.user;
  管理用户查看授权用户的访问权限
  mysql> show grants for 用户名@"客户端地址";
  权限撤销
  mysql> revoke   权限列表on库名   from   用户名@"客户
  端地址";
  撤销plj用户在x.x.x.254登录的授权权限
  revokegrantoptionon*.*from
  plj@"192.168.4.254";
  撤销plj用户在x.x.x.254登录后删除表记录的权限
  revokedelete on *.*fromplj@"192.168.4.254";
  撤销plj用户在x.x.x.254登录后所有的权限
  revokeallon *.*from plj@"192.168.4.254";
  删除授权用户
  mysql> deletefrom mysql.userwhere user="plj" and
  host="192.168.4.254";flush privileges;
  mysql> dropuserplj@"192.168.4.254";
  授权用户修自己的登录密码
  SET PASSWORD=PASSWORD('新密码');
  数据库管理重置授权用户的登录密码
  SET PASSWORDfor   用户@"客户端地址"=PASSWORD('
  新密码');
  练习
  1 删除以上所有的授权用户。
  2 允许254 主机可以使用数据库管理员连接数据库服务器,并拥
  有管理员的权限。
  grant allon*.*   toroot@"192.168.4.254"identified
  by"123123"with grant option;
  3 不允许数据库管理员在数据库服务器本机登录。
  delete from mysql.user where
  -> user="root" and host="localhost"; flush privileges;
  4 授权webadmin用户对webdb有完全权限,并有授权权限,
  在网络中所有主机都可以连接数据库服务登录密码123456
  grantall onwebdb.*to webadmin@"%"

  ->>  grantinsertonmysql.*towebadmin@"%";
  5 测试以上授权
  6 删除以上授权并只允许数据库管理员从服务器本机登录。

  grant all on*.*toroot@"localhost">  "123123" withgrant option;
  delete from mysql.user where
  -> host!="localhost";
  mysql> flush privileges;
  +++++++++++++++++++++++++++++++++
  安装mysql服务图形管理工具 phpmyadmin
  137rpm -q httpdphp
  138rpm -q php-mysql
  139yum -yinstall httpdphpphp-mysql
  140rpm -q httpdphpphp-mysql
  141systemctlstart httpd
  142systemctlstatus httpd
  143systemctlenable httpd
  144systemctlis-enabled httpd
  145echo 123> /var/www/html/test.html
  147yum -yinstall elinks
  148elinks--dump http://localhost/test.html
  149vim /var/www/html/test.php
  
  :wq
  150elinks--dump http://localhost/test.php
  154tar -zxvf phpMyAdmin-2.11.11-all-
  languages.tar.gz
  167mv phpMyAdmin-2.11.11-all-languages
  /var/www/html/phpmyadmin
  168cd /var/www/html/
  171chown -R apache:apachephpmyadmin/
  172cd phpmyadmin/
  174cp config.sample.inc.php config.inc.php
  # vim config.inc.php
  17 $cfg['blowfish_secret'] = 'plj123';
  31 $cfg['Servers'][$i]['host'] = 'localhost';
  :wq
  mysql -uroot-p123123
  mysql> create database gamedb;
  mysql> grant all ongamedb.* to

  gameuser@"localhost">  mysql-hlocalhost-uroot-p123123
  firefoxhttp://192.168.4.12/phpmyadmin
  gameuser
  123456
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  数据备份与恢复
  1 为什么对数据做备份?使用备份文件恢复数据。
  2 数据备份方式?
  物理备份:拷贝库或表对应的系统文件
  193tar -zcvf/opt/mysql.tar.gz
  /var/lib/mysql/mysql/*
  180cp -r /var/lib/mysql/mysql/opt/mysql.bak
  181ls /opt/
  182ls /opt/mysql.bak/
  183rm -rf /var/lib/mysql/mysql
  184systemctlstatus mysqld
  185quit
  186cp -r /opt/mysql.bak/ /var/lib/mysql/mysql
  187cd /var/lib/mysql
  188ll
  189chown-R mysql:mysql /var/lib/mysql/mysql
  190systemctlrestart mysqld
  191mysql -uroot -p123123
  逻辑备份:执行备份时,根据已有的库、表、记录,生成对应的
  sql 命令,把SQL保持到指定的文件里。
  3 数据备份策略
  完全备份:备份所有数据
  一台数据库服务器的所有数据
  一个库的所有数据
  一张表的所有数据
  差异备份:备份自完全备份后,所有新产生的数据
  增量备份:备份自上次备份后,所有新产生的数据
  完全
  差异
  增量
  单独使用完全备份
  完全备份+差异备份
  完全备份+增量备份
  方式   策略
  完全备份+差异备份
  周期               时间       regtab      备份文件名
  1         完全    18            10             1.sql   10
  2         差异    18             2             2.sql    2
  3               18             5             3.sql7
  4               18             3             4.sql   10
  5                              4             5.sql   14
  6                              7             6.sql   21
  7      差异                  1             7.sql   22
  方式   策略
  完全备份+差异备份
  周期               时间       regtab      备份文件名
  1         完全    18            10             1.sql                10
  2         增量    18            2               2.sql         2
  3                  18         5                3.sql5
  4                     18          3                  4.sql                     3
  5                                    4                   5.sql               4
  6                                    7                  6.sql                7
  7       增量                      1                     7.sql               1
  完全备份
  周期               时间       regtab      备份文件名
  1         完全    18            10             1.sql                10
  2
  delete from t1;
  2                  18            2               2.sql         2
  3                  18         5                3.sql5
  4                     18          3                  4.sql                     3
  5                                    4                   5.sql               4
  6                                    7                  6.sql                7
  7      完全                     1                     7.sql               1
  生产环境中 使用
  周期性计划任务         备份脚本
  30   18    *    *    1    /shell/allbak.sh
  ++++++++++++++++++++++++++++++++
  完全备份数据
  mysqldump   -hlocalhost-uroot-p123123数据库名   >
  目录名/名.sql
  数据库名的表示方式:
  --all-databases   一台数据库服务器的所有数据
  库名                      一个库的所有数据
  库名表名            一张表的所有数据
  -B库名1库名2一起备份多个库的所有数据
  #mysqldump-hlocalhost -uroot -p123123userdb t2 >
  /opt/t2.sql
  完全数据恢复
  mysql -uroot -p123123数据库名< 备份文件
  #mysql -uroot -p123123userdb < /opt/t2.sql
  编写脚本allbakt2.sh 功能:
  把服务器上userdb库t2表的所有记录备份到本机/mybak文件夹里。使用系统日期做备份文件名例如 2017-05-25-t2.sql
  #! /bin/bash
  day=$(date +%F)
  if[ ! –e /mydbbak] ; then
  mkdir/mydbbak
  fi
  mysqldump-uroot-pabc123userdb> /mydbbak/$day-userdb.sql

页: [1]
查看完整版本: MySQL数据库管理4-hj