1.用户管理
1.1 作用
Linux :登录系统、管理操纵系统对象(文件)
MySQl:登录数据库、管理数据库对象(表)
1.2 用户的定义方式
Linux :
用户名:字母、数字、特殊符号等组合
MySQL:
用户名@‘白名单’
白名单?
一个或多个IP的列表,作用是,在列表中存在的IP才能连接数据库
1.3用户的管理
1.3.1查询:
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
**查看表结构(如果记不住单次,可以执行下面命令)
mysql> desc mysql.user;
1.3.2创建用户
需求:通过oldben 用户,密码123 ,从10网段任意地址登录MySQL
mysql> create user oldben@'10.0.0.%' identified by '123';
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| oldben | 10.0.0.% |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
1.3.3修改用户
需求:给没有密码的root用户添加密码为123
mysql> alter user root@'localhost' identified by '123';
需求:将oldben用户的初始密码123改为123456
mysql> alter user oldben@'10.0.0.%' identified by '123456';
1.3.4删除用户
需求:将oldben用户删除
mysql> drop user oldben@'10.0.0.%';
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| oldboy | 10.0.0.% |
| test | 10.0.0.% |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
5 rows in set (0.00 sec)
2.权限管理
2.1 作用
控制用户,能够对数据库对象,做哪些操作。
2.2 定义方式
linux 权限: r w x
MySQL 权限:命令即权限
#查看MySQL中的权限列表
mysql> show privileges;
![](https://img.haomeiwen.com/i23451783/b5b24cd63fdd0762.png)
说明:
特殊的权限ALL:代表了以上所有权限结合,除了Grant option(给别人授权的功能)。
一般管理员用户会具备ALL,其他普通用户按需提供相应权限,一般DROP种类的权限不会给普通用户。
2.3权限的管理
2.3.1权限查询
Linux中权限是属于文件的属性
MySQL中权限是属于用户的属性
mysql> show grants for root@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
2.3.2 授权
GRANT 权限 ON 作用范围 To 用户 IDENTIFIED BY '密码';
作用范围 ?
. : 全局范围 chmod -R /
wordpress.* : 单库范围 chmod -R /wordpress
wordpress.t1:单表范围 chmod -R /wordpress/a.txt
管理员用户授权:
#创建oldboy用户并授所有权限
mysql> grant all on *.* to oldboy@'10.0.0.%' identified by '123';
普通用户授权:
#创建test用户对test库有增删改查的权限
mysql> grant select,update,delete,insert on test.* to test@'10.0.0.%' identified by '123';
2.3.3 回收
注意: 不能通过重复授权修改权限,因为授权都是相加的关系。
#回收test用户对test库的删除权限
mysql> revoke delete on test.* from 'test'@'10.0.0.%';
2.3.4 彩蛋8.0版本之后在 用户、权限管理方面的变化
<1 必须先建好用户,在授权,grant 命令不再支持自动创建用户,不支持设置密码
<2 建用户,密码加密插件发生变化,改为sha2
有很多场景要修改为mysql_native_password
比如 :第三方工具、主从、高可用、备份软件等。。
<3 8.0加入了role的概念。就是添加了权限的组合 ,(几个权限)= name 授权的时候直接授权name就OK了
- MySQL 连接管理
3.1 自带客户端命令
mysql 命令的使用
-u 用户名
-p 密码
-s Socket文件
-h IP地址
-P 端口号
-e 免交互执行命令
< 导入SQL脚本
¥IP地址连接串(tcpip连接方法)
mysql -u用户 -p密码 -h地址 -P端口
前提:
1>IP和端口正确的
2>提前创建好可以远程登录的用户
#连接模板
[root@db01 ~ 17:54:53]# mysql -uoldboy -p123 -h10.0.0.51 -P3306
#默认端口是3306
[root@db01 ~ 17:54:53]# mysql -uoldboy -p123 -h10.0.0.51
¥本地Socket文件(脱敏)
前提:
1>设置真确的Socket文件位置
2>提前创建好localhost相关用户
[root@db01 ~ 18:02:23]# mysql -uroot -p -S /tmp/mysql.sock
4.初始化配置文件
4.1作用
1>影响到数据库的启动、工作
2>影响到客户端连接(本地服务器上发起的)
4.2文件格式
[root@db01 ~ 08:33:13]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
#[标签项]:用来表示不同的程序
①服务端:[mysqld] [mysqld_safe] [server]
②客户端:[mysql] [mysqldump] [client]
配置项=xxx:设置的参数键值对
user=mysql #数据库管理用户
basedir=/data/app/mysql #程序路径
datadir=/data/3306/data #数据路径
socket=/tmp/mysql.sock #socket文件位置
4.3配置文件的读取顺序
默认配置文件读取顺序
[root@db01 ~ 09:07:06]# mysql --help --verbose |grep my.cnf
/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf
建议:每个数据库保留一个配置文件
彩蛋:
如果有多个配置文件,例如
/etc/my.cnf -->port=3306
~/.my.cnf -->port=3308
数据库启动时,port是3308
手工定义配置文件读取路径
mysqld --defaults-file=/opt/myl.cnf &
mysqld-safe --defaults-file=/opt/my2.cnf &
4.4root本地管理员的密码忘记?
1>停数据库
[root@db01 ~ 09:20:17]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
2>启动数据库到'安全模式'
mysqld_safe --skip-grant-tables --skip-networking &
参数作用
--skip-grant-tables #跳过授权表、不开启验证功能
--skip-networking #阻止所有TCP/IP网络连接
3>改密码
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
4>重启至正常模式
[root@db01 ~ 09:47:27]# /etc/init.d/mysqld restart
4.5MySQL的启动关闭
![](https://img.haomeiwen.com/i23451783/a64942a9c6796d3d.png)
网友评论