DBA成长之路---mysql数据库服务基础(三)

mysql 密码恢复及设置

[[email protected] ~]# grep password /var/log/mysqld.log#mysql 启动后随机生成的初始密码

2017-12-20T02:36:18.623330Z 1 [Note] A temporary password is generated for [email protected]: 5h)>QAdqbI7t

#使用初始密码登录 并重置密码   初始密码不能对数据库进行操作 需要重置密码

[[email protected] ~]# mysql -hlocalhost -uroot -p'5h)>QAdqbI7t'

修改密码验证策略

mysql> set global validate_password_policy=0;

#策略 0 长度

1 (默认) 长度;数字,小写/大写,和特殊字符

2 长度;数字,小写/大写,和特殊字符;字典文件

修改密码长度6  默认值是8个字符

mysql> set global validate_password_length=6;

mysql> alter user [email protected]"localhost" identified by "123456";

mysql> show database;#测试

mysql> quit

Bye

[[email protected] ~]# mysql -hlocalhost -uroot -p'123456'

设置密码验证策略永久生效

[[email protected] ~]# vim /etc/my.cnf

...

[mysqld]

validate_password_policy=0

validate_password_length=6

...

[[email protected] ~]# systemctl restart mysqld

修改数据库管理员本机管理密码(操作系统管理员)

mysqladmin -hlocalhost -uroot -p旧密码 password '新密码'

[[email protected] ~]# mysqladmin -hlocalhost -uroot -p123456 password '123123'

当忘记密码时,密码恢复

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

skip-grant-tables#启动时不验证用户密码

[[email protected] ~]# systemctl restart mysqld

[[email protected] ~]# mysql

mysql> update mysql.user set authentication_string=password("abc123") where user="root";

mysql> flush privileges; #刷新MySQL的系统权限相关表

[[email protected] ~]# vim /etc/my.cnf

关闭启动时不验证用户密码

[[email protected] ~]# systemctl restart mysqld

[[email protected] ~]# mysql -uroot -pabc123

数据管理

数据导入:把系统文件的内容存储到数据库的表里

/etc/passwdstudb.user

用户名 密码占位符 UID GID  描述信息  家目录   shell

create database studb;

create table studb.user(

name char(50),

password char(1),

UID int(2),

GID int(2),

comment varchar(100),

homedir char(100),

shell char(25)

)engine=innodb;

select * from studb.user;

load data infile '目录/文件名' into table '库.表名' fields terminated by "字段间隔符号" lines terminated by "行间隔符号"

查看默认使用目录及目录是否存在

mysql> show variables like "secure_file_priv";

+------------------------------+-------------------------------------------+

| Variable_name            | Value                                          |

+-------------------------------+-----------------------------------------+

| secure_file_priv           | /var/lib/mysql-files/                    |

+-------------------------------+------------------------------------------+

[[email protected] ~]# cp /etc/passwd /var/lib/mysql-files/

[[email protected] ~]# setenforce 0

mysql> load data infile '/var/lib/mysql-files/passwd' into table user fields terminated by ":" lines terminated by "\n";

Query OK, 44 rows affected (0.04 sec)

Records: 44  Deleted: 0  Skipped: 0  Warnings: 0

修改默认使用目录

[[email protected] ~]# mkdir /myfile

[[email protected] ~]# chown mysql /myfile/

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

secure_file_priv="/myfile"

[[email protected] ~]# systemctl restart mysqld

mysql> show variables like "secure_file_priv";

+-------------------------------+-------------------+

| Variable_name    | Value    |

+-------------------------------+------------------+

| secure_file_priv | /myfile/ |

+--------------------------------+-----------------+

1 row in set (0.00 sec)

数据导出:把表记录存储到系统

sql 查询 into outfile "目录/文件名";

sql 查询 into outfile "目录/文件名" fields terminated by "字段间隔符号" lines terminated by "行间隔符号";

mysql> select name,UID from user limit 5 into outfile "/myfile/user1.txt";

[[email protected] ~]# ls /myfile/

user1.txt

[[email protected] ~]# cat /myfile/user1.txt #默认字段间隔符号为<tab>  默认行间隔符号"\n"

root0

bin1

daemon2

adm3

lp4

mysql> select name,UID from user limit 5 into outfile "/myfile/user2.txt" fields terminated by "#" lines terminated by ":";

[[email protected] ~]# ls /myfile/

user1.txt  user2.txt

[[email protected] ~]# cat /myfile/user2.txt

root#0:bin#1:daemon#2:adm#3:lp#4:

用户授权 grant

就是在数据库服务器添加新的连接用户

grant 权限列表 on 库名 to 用户@"客户端地址" identified by '密码'  [ with grant option ];

mysql> grant all on *.* to [email protected] identified by '123456' with grant option;

权限的表示方式: all(所以权限),  usage(没有权限),  select,update(name,age),delete

库名的表示方式: 库名.表名 库名.*  *.*

用户名 自定义

客户端地址表示方式: 192.168.4.117(一台机器) 192.168.2.%(一个网段)

identified by '密码'  #登录密码

with grant option #可以有授权权限  可选项

客户端测试授权

which mysql

mysql -h数据库服务器ip -u用户名 -p密码

[[email protected] ~]# mysql -h192.168.4.1 -uroot -p123456

select @@hostname;

mysql> select @@hostname;

+---------------------+

| @@hostname |

+---------------------+

| mysql4-1           |

+---------------------+

1 row in set (0.00 sec)

select user();

mysql> select user();

+--------------------------------+

| user()                               |

+--------------------------------+

| [email protected]         |

+--------------------------------+

1 row in set (0.00 sec)

show grants;

mysql> show grants;

+-------------------------------------------------------------------------------------------------------------------------------+

| Grants for [email protected]                                                                                                              |

+-------------------------------------------------------------------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.4.2' WITH GRANT OPTION               |

+-------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

允许从网站服务器上使bbsuser用户连接 密码时123456 只对bbsdb小的所以表有完全权限

mysql> grant all on bbsdb.* to [email protected] identified by '123456';

MySQL [(none)]> show grants;

+---------------------------------------------------------------------------------------------------------------+

| Grants for [email protected]                                                                                  |

+---------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'bbsuser'@'192.168.4.3'                                                 |

| GRANT ALL PRIVILEGES ON `bbsdb`.* TO 'bbsuser'@'192.168.4.3'                   |

+---------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

MySQL [(none)]> create database bbsdb;

Query OK, 1 row affected (0.00 sec)

运行admin用户在数据库服务器本机登录 密码123456 只有查询记录权限

mysql> grant select on *.* to [email protected] identified by '123456';

授权信息存储子授权库mysql下的表里

mysql> use mysql;

mysql> show tables;

user 已有的授权用户信息

db授权用户对库的访问权限

tables_priv授权用户对表的访问权限

columns_priv 授权用户对表中字段的访问权限

查看服务器上有哪些授权用户

mysql> select user,host from mysql.user;

+-------------------+-----------------------+

| user                 | host                      |

+-------------------+-----------------------+

| root                  | 192.168.4.2        |

| bbsuser          | 192.168.4.3         |

| admin              | localhost             |

| mysql.sys       | localhost              |

| root                  | localhost              |

+-------------------+-----------------------+

5 rows in set (0.00 sec)

mysql> show grants for [email protected];

+---------------------------------------------------------------------------------------------------------------+

| Grants for [email protected]                                                                                  |

+---------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'bbsuser'@'192.168.4.3'                                                |

| GRANT ALL PRIVILEGES ON `bbsdb`.* TO 'bbsuser'@'192.168.4.3'                  |

+---------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

查看以有的授权用户对服务器上库的权限

mysql> select user,host,db from mysql.db;

+-------------------+-----------------------+------------+

| user                 | host                     | db           |

+-------------------+-----------------------+------------+

| bbsuser          | 192.168.4.3        | bbsdb     |

| mysql.sys       | localhost             | sys          |

+-------------------+-----------------------+------------+

2 rows in set (0.01 sec)

查看以有的授权用户对服务器上库中的表的权限

mysql> select host,user,db,table_name from mysql.tables_priv;

+-------------------+-------------------+----------+---------------------+

| host                 | user               | db         | table_name    |

+-------------------+-------------------+----------+--------------------+

| localhost        | mysql.sys       | sys       | sys_config     |

+-------------------+--------------------+----------+-------------------+

授权用户登录服务器后,修改登录密码

set password=password("123456");

管理员重置授权用户登录密码

set password for 用户名@客户端地址

mysql> set password for [email protected]=password('abc123');

权限撤销 revokel

revokel 权限列表 on 库名 for 用户名@'客户端地址';

删除授权用户

drop user 用户名@"客户端地址"

查看授权用户权限

show grants for 用户名@"客户端地址"

mysql> show grants for [email protected];

撤销root用户在192.168.4.2主机登录的授权权限

mysql> revoke grant option on *.* from [email protected]

撤销root用户在192.168.4.2主机登录的删除记录和修改记录的权限

mysql> revoke update,delete on *.* from roo

撤销root用户剩于所以的权限

mysql> revoke all  on *.* from [email protected];

也可以通过修改表记录的方式撤销用户的权限

mysql> select * from mysql.db where db='bbsdb' and user='bbsuser' and host='192.168.4.3'\G;

修改在对应表中的记录信息

mysql> update  mysql.db set delete_priv="N",Drop_priv="N" where db='bbsdb' and user='bbsuser' and host='192.168.4.3';

mysql> flush privileges;

原文地址:http://blog.51cto.com/13558754/2057476

时间: 2024-10-11 03:59:06

DBA成长之路---mysql数据库服务基础(三)的相关文章

DBA成长之路---mysql数据库服务(二)

管理表记录  增加 insert into 库.表 values(字段值列表); insert into 库.表(字段值列表) values(字段值列表); insert into 库.表 values(字段值列表),(字段值列表); 查询 单表查询 select 字段名列表 from 库.表 where 条件: 条件匹配的表示方法 数值比较 字段名 符号 值 符号:>  >=  <  <=  =  != 字符比较 字段名 符号 "值"   符号: =  !=

DBA成长之路---mysql数据备份与恢复

数据备份与恢复 备份方式: 物理备份:直接拷贝备份库和表对应的文件 cp -r /var/lib/mysql/mysql  /mysql.bak tar -zcvf /mysql.tar.gz  /varlib/mysql/mysql/* 逻辑备份:执行备份时,根据已有的库和表生成对应的sql命令,把生成的sql命令存储到指定的备份文件里 备份策略: 完全备份: 备份所有数据(表,库,服务器) 差异备份:备份自完全备份后所新产生(备份新产生的数据) 增量备份:备份自上一次备份后,所有新产生(备份

DBA成长之路---mysql主从同步,读写分离

主从同步 什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据. 1 添加授权用户 mysql> grant replication slave on *.* to [email protected]"192.168.4.4" identified by '123456'; 2启用binlog日志 [[email protected] ~]# vim /etc/my.cnf [mysqld] server_id=3 log-bin=master11

Android成长之路-实现监听器的三种方法

第一种:  在Test类中  定义一个类接口OnClickListener 第二种:直接在Test类上写一个接口 其中的this相当于new OnClickListener()对象, 即class test 中的一个对象, 而如果要用这种方式的话,public void onClick 方法必须写在该test类中, 且在开头使用implements OnClickListener, 即this对象可以直接调用该方法 第三种:  匿名内部类 Android成长之路-实现监听器的三种方法

单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例

本范例主要由(main.c ,delay.h,delay.c,makefile)4个文件组成,sdcc的编译环境搭建参照:单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境,废话不多,进入主题: main.c(主函数) 1 #include "8051.h" 2 #include "delay.h" 3 #define uint unsigned int 4 #define uchar unsigned char 5 uchar t

DBA成长之路---MySQL-MMM集群部署

MySQL-MMM集群部署 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的). mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动.此脚本需要在监管机上运行. mmm_agentd:运行在每个mysql服务器上的代理

DBA成长之路数据库设计之软件开发周期

软件开发周期介绍 大家要想学好sql语句,我们必须知道这些表怎么来的.怎么设计出来的,所以大家想学好数据库就必须先学数据库设计.本篇文章主要是引导学习数据库设计,描述大概的开发周期 软件开发周期介绍1:需求分析阶段...该阶段主要是分析客户的业务和数据处理需求此阶段尤其重要,如果需求分析没搞好到了开发阶段就麻烦了甚至推到整个项目从新分析需求. 软件开发周期介绍2:概要设计阶段:这里就开始数据库设计-E-R模型图,确认需求信息的正确完整: 软件开发周期介绍3: 详细设计阶段:将E-R图转为多张表,

我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)

shelve模块 shelve模块是pickle模块的扩展,可以通过key,value的方式访问pickle持久化保存的数据 持久化保存: 1 2 3 4 5 6 7 8 9 10 11 12 13 import shelve sw = shelve.open('shelve_test.pkl') # 创建shelve对象 name = ['13', '14', '145', 6] # 创建一个列表 dist_test = {"k1":"v1", "k2&

我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)

一.面向对象基础 面向对象名词解释: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写. 实例变量:定义在方法中的变量,只作