MySQL运维—用户权限及管理

一、mysql创建用户

1、创建用户

mysql> create user test@'%' identified by '123456';                    创建了用户,但是没有任何权限
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@'localhost' identified by '123456';    没有用户,则创建用户,用户存在,就赋予权限
Query OK, 0 rows affected (0.00 sec)

2、删除用户

mysql> drop user test;                                              
Query OK, 0 rows affected (0.00 sec)

3、用户的定义

1) username@’主机域’

2)主机域:可以理解为是MySQL登陆的白名单

3)主机域格式:

’10.0.0.51’

’10.0.0.5%’

’10.0.0.%’

’10.0.%.%’

’10.%.%.%’

‘%’

‘db01’

’10.0.0.51/255.255.255.0’

4、修改用户密码

[root@controller ~]# mysqladmin -uroot -p123456 password '123';                                 mysqladmin修改密码
mysql> grant all on *.* to root@'localhost' identified by '123456';                             grant修改密码
mysql> update mysql.user set password=PASSWORD('123') where user='root' and host='localhost';   update修改密码
mysql> set password= PASSWORD('123456');                                                        set修改当前登录用户密码

 二、企业中权限开通方法

1、all和all privileges结果一样

图片[1]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

2、用户权限介绍

MySQL的权限定义:

作用对象:库、表

权限

INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,  PROCESS, FILE, REFERENCES, INDEX, ALTER,
SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, 
CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

图片[2]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

图片[3]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

图片[4]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

归属

grant     all privileges    on     *.*    to   oldboy@’10.0.0.%’  identified by    ‘123’;
                权限               作用对象          归属               密码

作用对象分解

*.* [当前MySQL实例中所有库下的所有表]

wordpress.* [当前MySQL实例中wordpress库中所有表(单库级别)]           

        wordpress.user [当前MySQL实例中wordpress库中的user表(单表级别)]

3、企业中权限的设定

#一般给开发创建用户权限
grant select,update,delete,insert on *.* to oldboy@’10.0.0.%’ identified by ‘123’;

4、结论

1、如果在不同级别都包含某个表的管理能力时,权限是相加关系。

2、但是我们不推荐在多级别定义重复权限。

3、最常用的权限设定方式是单库级别授权,即:wordpress.*

三、MySQL连接管理

1、连接工具

1)MySQL自带的连接工具:mysql

常见的特定于客户机的连接选项:
-u:指定用户          
-p:指定密码
-h:指定主机
-P:指定端口
-S:指定sock
-e:指定SQL
--protocol=name:指定连接方式

2)第三方的连接工具:sqlyog、navicat

应用程序连接MySQL:需要加载对应语言程序的API
2、连接方式

1)scoket连接:

mysql -uroot -poldboy123 -S/application/mysql/tmp/mysql.sock
mysql -uroot -poldboy123

2)TCP/IP连接

mysql -uroot -poldboy123 -h10.0.0.51 -P3306

3、当数据库服务器没有公网IP时,可用第三方工具跳转连接

1)填写mysql所在主机内网IP

图片[5]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

2)填写可连接至数据库服务器的跳板机公网IP

图片[6]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹图片[7]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

四、MySQL启动关闭流程

1、关闭流程图

图片[8]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

启动mysql:

/etc/init.d/mysqld start ------> mysqld_safe ------> mysqld

关闭mysql:

/etc/init.d/mysqld stop 
mysqladmin -uroot -poldboy123 shutdown
kill -9 pid ?
killall mysqld ?
pkill mysqld ?

kill杀死mysql容易出现的问题:

1)如果在业务繁忙的情况下,数据库不会释放pid和sock文件

2)号称可以达到和Oracle一样的安全性,但是并不能100%达到

3)在业务繁忙的情况下,丢数据(补救措施,高可用)

五、MySQL实例初始化配置

1、初始化实例拓扑图

图片[9]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

1)预编译:cmake去指定,硬编码到程序当中去

2)在命令行设定启动初始化配置

--skip-grant-tables 
--skip-networking
--datadir=/application/mysql/data
--basedir=/application/mysql
--defaults-file=/etc/my,cnf
--pid-file=/application/mysql/data/db01.pid
--socket=/application/mysql/data/mysql.sock
--user=mysql
--port=3306
--log-error=/application/mysql/data/db01.err

3)初始化配置文件(/etc/my.cnf)

配置文件读取顺序:

/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
defaults-extra-file (类似include)
~/my.cnf

图片[10]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹图片[11]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维-用户权限及管理 - 众客华禹众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

注意:–defaults-file:默认配置文件,如果使用./bin/mysqld_safe 守护进程启动mysql数据库时,使用了 –defaults-file=<配置文件的绝对路径>参数,这时只会使用这个参数指定的配置文件。

优先级结论:

  1)、命令行
  2)、defaults-file
  3)、配置文件(最后一个生效)
  4)、预编译

2、初始化配置文件的使用

初始化配置文件功能:

1)影响实例的启动(mysqld)

2)影响到客户端(mysql、mysqldump、mysqladmin)

如何配置初始化配置文件:

1)配置标签分类

[client]所有客户端程序
mysql
mysqldump

[server]所有服务器程序
mysqld
mysqld_safe
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容