关闭mysql权限管理_五、MySQL用户权限管理、连接管理、启动关闭流程、配置管理、内部快捷命令...

一、用户权限管理

1.授权的命令

grant all on *.* to root@'172.16.1.%' identified by '123';

grant all on *.* to root@'172.16.1.%' identified by '123' with grant option;

2.作用对象

grant all on *.* to root@'172.16.1.%' identified by '123';          #所有库下的所有表

grant all on mysql.* to root@'172.16.1.%' identified by '123';#mysql库下的所有表,单库授权

grant all on mysql.user to root@'172.16.1.%' identified by '123';#单表授权

#单列授权,企业称之为脱敏,脱敏:脱离敏感信息

1.普通用户只能查看用户名字

mysql> grant select(user) on mysql.user to diaosi@'172.16.1.%' identified by '123';

2.VIP用户可以查看用户用户较多的信息

mysql> grant select(user,host) on mysql.user to diaosi@'172.16.1.%' identified by '123';

3.超级VIP可以查看用户所有的信息

mysql> grant select on mysql.user to diaosi@'172.16.1.%' identified by '123';

3.在企业里一般我们怎么给权限

#开发要一个用户登录数据库

1.跟开发沟通:

1)你要操作的是哪个库哪个表

2)你要对这个表进行哪些操作

3)你从哪个IP连过来

4)你对用户名的要求

5)你对密码有什么要求

6)你的用户要用多久

7)发邮件

2.一般怎么授权

grant select,insert,update on mysql.* to dev@'172.16.1.51' identified by 'Dev@123456';

3.开发要root用户怎么办?

4.权限实践

1)准备数据库

#创建wordpress数据库

create database wordpress;

#使用wordpress库

use wordpress;

#创建t1、t2表

create table t1 (id int);

create table t2 (id int);

#创建blog库

create database blog;

#使用blog库

use blog;

#创建t1表

create table tb1 (id int);

2)授权

#授权wordpress@'10.0.0.5%'这个用户对所有库所有表有查询权限,密码是123

#授权wordpress可以通过10.0.0.5%这个网段连接数据库对所有库所有表有查询权限,密码是123

1.grant select on *.* to wordpress@'10.0.0.5%' identified by '123';

#授权wordpress@'10.0.0.5%'对wordpress库下的所有表有增删改的权限,密码是123

#授权wordpress可以通过10.0.0.5%这个网段连接数据库对wordpress库下的所有表有增删改的权限,密码是123

2.grant insert,delete,update on wordpress.* to wordpress@'10.0.0.5%' identified by '123';

#授权wordpress@'10.0.0.5%'对wordpress下面的t1表有所有权限,密码是123

3.grant all on wordpress.t1 to wordpress@'10.0.0.5%' identified by '123';

3)请问

一个客户端程序使用wordpress用户登陆到10.0.0.51的MySQL后,

1.对t1表的管理能力?#所有权限

2.对t2表的管理能力?#增删改查

3.对tb1表的管理能力?#只有查

4)授权总结

1.不同级别授权,权限是相加关系

2.不推荐在多级别定义重复的权限

3.常见的授权方式是单库授权

grant select,insert,update on mysql.* to dev@'172.16.1.51' identified by 'Dev@123456';

4.如果涉及到用户的敏感信息,可以使用脱敏,单列授权

5.查看用户的权限

mysql> show grants for root@'172.16.1.%';

二、MySQL连接管理

1.连接工具

1)MySQL自带的客户端命令

#自带的命令 mysql

-u:指定用户mysql -uroot

-p:指定密码mysql -uroot -p123

-h:指定主机mysql -uroot -p123 -h172.16.1.51

-P:指定端口mysql -uroot -p123 -P3307 -h172.16.1.51

-S:指定sockmysql -uroot -p123 -S /tmp/mysql.sock

-e:指定SQLmysql -uroot -p123 -e "show databases"

#--protocol=name:指定连接方式

2)第三方客户端工具

1.Navicat

2.SQLyog

2.连接方式

1)socket连接

mysql -uroot -p123

mysql -uroot -p123 -S /tmp/mysql.sock

2)TCP/IP连接

mysql -uroot -p123 -h172.16.1.51

三、MySQL启动关闭流程

d68b9ecdd8ef75fdb6f9920811f06a16.png

1.启动数据库

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

2.systemctl start mysqld  ---> mysqld_safe  ---> mysqld

3.mysqld_safe --defaults-file=/etc/my.cnf &  ---> mysqld_safe  ---> mysqld

2.关闭数据库

#推荐的方式:

1./etc/init.d/mysqld stop

2.systemctl stop mysqld

3.mysqladmin shutdown

4.service mysql stop

#不推荐的方式:

1.kill -9 mysqlpid

2.pkill mysqld

3.killall mysqld

#错误关闭会导致:

1.数据丢失

2.数据库启动故障

四、MySQL配置管理

1.配置mysql的方法

1.编译的时候

#程序存放位置

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \

#数据存放位置

-DMYSQL_DATADIR=/application/mysql-5.6.38/data \

#socket文件存放位置

-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \

... ...

2.初始化

/mysql_install_db --defaults-file=/service/3309/my.cnf --user=mysql --basedir=/service/mysql --datadir=/service/3309/data

--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/mysql/my.cnf

$basedir/my.cnf

~/my.cnf

#defaults-extra-file (类似include)

2.数据库配置文件

1)配置文件都有哪些

/etc/my.cnf

/etc/mysql/my.cnf

$basedir/my.cnf

~/.my.cnf

2)配置文件的读取顺序

/etc/my.cnf

/etc/mysql/my.cnf

$basedir/my.cnf

~/.my.cnf

3)配置文件生效顺序

~/.my.cnf

$basedir/my.cnf

/etc/mysql/my.cnf

/etc/my.cnf

4)测试配置文件生效顺序

#1.配置/etc/my.cnf

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

server_id=1

#2.配置/etc/mysql/my.cnf

[root@db02 ~]# vim /etc/mysql/my.cnf

[mysqld]

server_id=2

#3.配置$basedir/my.cnf

[root@db02 ~]# vim /service/mysql/my.cnf

[mysqld]

server_id=3

#4.配置~/my.cnf

[root@db02 ~]# vim ~/.my.cnf

[mysqld]

server_id=4

#5.重启数据库

[root@db02 ~]# systemctl stop mysqld

[root@db02 ~]# /etc/init.d/mysqld start

Starting MySQL. SUCCESS!

#6.查看server_id

[root@db02 ~]# mysql -uroot -p123456 -e "show variables like 'server_id'"

Warning: Using a password on the command line interface can be insecure.

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

| Variable_name | Value |

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

| server_id     | 4     |

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

#7.删除生效的配置重启,再次查看id

[root@db02 ~]# rm -rf ~/.my.cnf

[root@db02 ~]# /etc/init.d/mysqld restart

[root@db02 ~]# mysql -uroot -p123456 -e "show variables like 'server_id'"

Warning: Using a password on the command line interface can be insecure.

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

| Variable_name | Value |

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

| server_id     | 3     |

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

#8.删除生效的配置重启,再次查看id

[root@db02 ~]# rm -rf /service/mysql/my.cnf

[root@db02 ~]# /etc/init.d/mysqld restart

[root@db02 ~]# mysql -uroot -p123456 -e "show variables like 'server_id'"

Warning: Using a password on the command line interface can be insecure.

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

| Variable_name | Value |

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

| server_id     | 2     |

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

#9.删除生效的配置重启,再次查看id

[root@db02 ~]# rm -rf /etc/mysql/my.cnf

[root@db02 ~]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL.. SUCCESS!

[root@db02 ~]# mysql -uroot -p123456 -e "show variables like 'server_id'"

Warning: Using a password on the command line interface can be insecure.

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

| Variable_name | Value |

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

| server_id     | 1     |

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

3.执行参数优先级

1)socket文件指定位置

#cmake:

socket=/application/mysql/tmp/mysql.sock

#命令行:

--socket=/tmp/mysql.sock

#配置文件:

/etc/my.cnf 中[mysqld]标签下:socket=/opt/mysql.sock

#default参数:

--defaults-file=/tmp/a.txt 配置文件中[mysqld]标签下:socket=/tmp/test.sock

2)测试优先级

#1.启动MySQL,查看sock文件位置

[root@db02 ~]# mysqld_safe --defaults-file=/tmp/a.txt --socket=/tmp/mysql.sock &

[root@db02 ~]# ll /tmp/

srwxrwxrwx 1 mysql mysql         0 Oct 22 18:58 mysql.sock

#2.启动MySQL,查看sock文件位置

[root@db02 ~]# mysqld_safe --defaults-file=/tmp/a.txt &

[root@db02 ~]# ll /tmp/

srwxrwxrwx 1 mysql mysql         0 Oct 22 19:01 test.sock

#如果设置--defaults-file,那么MySQL启动时只读取指定的配置文件

#3.启动MySQL,查看sock文件位置

[root@db02 ~]# mysqld_safe &

[root@db02 ~]# ll /opt/

srwxrwxrwx 1 mysql mysql 0 Oct 22 19:03 mysql.sock

4.优先级总结

#优先级排序

命令行 >  --defaults-file参数指定配置 > ~/.my.cnf >  $basedir/my.cnf > /etc/mysql/my.cnf > /etc/my.cnf > 初始化配置   > cmake

5.配置文件作用

1)作用

1.影响客户端的连接

2.影响服务端的启动

2)影响客户端的连接

[root@db02 ~]# vim /etc/my.cnf

#配置文件添加连接数据库信息的配置

[mysql]

user=root

password=123456

3)影响服务端的启动

#修改server_id

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

server_id=2

#查看配置没有生效

[root@db02 ~]# mysql -e "show variables like 'server_id'"

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

| Variable_name | Value |

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

| server_id     | 1     |

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

#重启数据库后,修改的服务端配置才会生效

[root@db02 ~]# systemctl restart mysqld

[root@db02 ~]# mysql -e "show variables like 'server_id'"

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

| Variable_name | Value |

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

| server_id     | 2     |

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

4)总结

1.客户端配置受配置文件影响

2.客户端配置修改后不需要重启服务[mysql] 或者 [client]

3.服务端配置修改后需要重启服务后生效[mysqld] 或者 [server]

4.常见配置

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

server_id=2

socket=/tmp/mysql.sock

[mysql]

socket=/tmp/mysql.sock

五、MySQL的命令

1.mysql内部快捷命令

\c:终止正在输入的命令

\r:重新连接数据库

\d:修改sql语句结束符

\e:输出输入的内容

\G:以key:values形式展示数据

\q:退出数据库

\g:结束语句

\h: 查看帮助

\T:输出一个文件记录操作

\t:终止记录操作的文件

\p:打印输入的命令

\R:临时修改命令提示符

\.导入sql语句,等于 source 命令

\s:查看数据库连接状态

\!:在数据库里执行命令行命令

\u切换数据库,等于 use 命令

2.help命令

#查看数据库内命令语法

mysql> help

mysql> help create database

mysql> help create table

mysql> help select

2.客户端mysqladmin命令

1)设置密码

#1.设置密码

[root@db02 ~]# mysqladmin -uroot password

New password:

Confirm new password:

#2.修改密码

[root@db02 ~]# mysqladmin -uroot -p password

Enter password:

New password:

Confirm new password:

2)关闭服务

[root@db02 ~]# mysqladmin -uroot -p shutdown

Enter password: 123

3)库外建库

[root@db02 ~]# mysqladmin -uroot -p123 create database222222

4)库外删库

[root@db02 ~]# mysqladmin -uroot -p123 drop database222222

Warning: Using a password on the command line interface can be insecure.

Dropping the database is potentially a very bad thing to do.

Any data stored in the database will be destroyed.

Do you really want to drop the 'database222222' database [y/N] y

Database "database222222" dropped

5)查看数据库配置

[root@db02 ~]# mysqladmin -uroot -p123 variables | grep -w server_id

6)检测数据库是否启动

[root@db02 ~]# mysqladmin -uroot -p ping

Enter password:

mysqld is alive

7)查看数据库信息

[root@db02 ~]# mysqladmin -uroot -p123 status

Warning: Using a password on the command line interface can be insecure.

Uptime: 130 Threads: 1 Questions: 94 Slow queries: 0 Opens: 70 Flush tables: 1 Open tables: 63 Queries per second avg: 0.723

Slow queries: 0

Queries per second avg: 0.723

8)刷新授权表

[root@db02 ~]# mysqladmin -uroot -p123 reload

9)刷新binlog

[root@db02 ~]# mysql -uroot -p123 -e "show master status"

Warning: Using a password on the command line interface can be insecure.

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000001 |      120 |             |                 |                   |

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

#刷新binlog

[root@db02 ~]# mysqladmin -uroot -p123 flush-logs

Warning: Using a password on the command line interface can be insecure.

#再次查看binlog

[root@db02 ~]# mysql -uroot -p123 -e "show master status"

Warning: Using a password on the command line interface can be insecure.

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000002 |      120 |             |                 |                   |

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值