MySQL数据库详解 五:用户管理

1. 数据库的用户管理

1.1 新建用户

create user '用户名'@'来源地址' [identified by [passwd] '密码'];

'用户名':指定将创建的用户名
'来源地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
'密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
        若使用加密密码,需要先使用SELECT PASSWORD('密码'); 获取密文,再在语句中添加 PASSWORD '密文';
        若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)
select user();
#查看当前登录用户

在这里插入图片描述

use mysql
select user,host,authentication_string from user;

select user,host,authentication_string from mysql.user;
#查看当前所有用户信息

在这里插入图片描述

create user 'aaa'@'%' identified by '123456';
#创建名为aaa的用户并可以使用任意地址登录

create user 'aaa'@'192.168.67.101' identified by '123456';
#创建名为aaa的用户并只能使用192.168.67.101地址登录

create user 'aaa'@'192.168.67.0/24' identified by '123456';
#创建名为aaa的用户并只能使用192.168.67.0网段地址登录

create user 'aaa'@'localhost' identified by '123456';
#创建名为aaa的用户并只能使用本机地址登录

1.2 重命名用户

rename user '旧用户名'@'源地址' to '新用户名'@'源地址';

#示例
rename user 'aaa'@'192.168.67.101' to 'bbb'@'192.168.67.0/24';

在这里插入图片描述

1.3 删除用户

drop user '用户名'@'源地址';

#示例
drop user 'bbb'@'192.168.67.0/24';

在这里插入图片描述

1.4 修改用户密码

set password = password('密码');                
#修改当前用户密码

set password for '用户名'@'源地址' = password('密码');alter user '用户名'@'源地址' identified by '密码';
#修改目标用户密码

1.5 忘记用户密码的解决方法

#方式一
1. 修改mysql配置文件,在 [mysqld] 下面添加 skip-grant-tables 配置项
2. 重启mysqld服务,使用 mysql 密码直接登录 mysql
3. 执行 update user set authentication_string=password('密码') where user='root'; 命令修改 root 用户的密码
4. 还原mysql配置文件,重启mysqld服务,使用 mysql -u 用户名 -p密码 [-h mysql地址 -P mysql端口] 命令来验证登录
#方式二
#使用 update 修改 root 密码,刷新数据库
update mysql.user set authentication_string = passwd('abc123') where user='root';

FLUSH PRIVILEGES;
quit

mysql -u root -pabc123

注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

1.6 数据库用户授权

grant语句:专门用来设置数据库用户的访问权限。

当指定的用户名不存在时,grant语句将会创建新的用户;
当指定的用户名存在时, grant 语句用于修改用户信息。

1.6.1 授权用户权限类别

all privilege 权限如下

权限名作用
insert(插入数据)select (查询数据)
update(更新表的数据)
delete(删除表中数据)
create(创建库,表)
drop(删除表)
refernces(外键关联)
index(建立索引)alter(更改表属性)
create temp orary tableslock tables(锁表)
execute()
create view(创建视图(显示视图)show viewcreate routine (创建存储过程alter routine(修改存储过程)event (事件)
trigger on(创建触发器

1.6.2 添加权限

grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];
#示例
grant insert,update,select on scj.* to 'aaa'@'192.168.67.101';
#为用户aaa添加为scj库下所有表插入数据、更新表数据、查看表数据的权限
flush privileges;
#刷新权限使其立即生效

show grants for 用户名@来源地址;        #查看用户权限

show grants for 'aaa'@'192.168.67.101';
#查看aaa用户所有的权限

在这里插入图片描述

1.6.2 撤销权限

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#示例
revoke all on *.* from 'aaa'@'192.168.67.101';
#撤销aaa用户所有的权限

revoke select on *.* from 'aaa'@'192.168.67.101';
#撤销aaa用户的查看权限

flush privileges;
#刷新权限使其立即生效

2. mysql命令

mysql [OPTIONS] [database]
命令格式

-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd= 用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库
-C, --compress 启用压缩
-e   "SQL" 执行SQL命令
-V, --version 显示版本
-v  --verbose 显示详细信息
--print-defaults 获取程序默认使用的配置
mysql>use mysql           #切换数据库
mysql> select database(); #查看当前数据库
mysql>select user();      #查看当前用户
mysql>system clear        #清屏
mysql> ^DBye              #ctrl+d 退出
#mysqladmin命令

mysqladmin [OPTIONS] command command...

#查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -u用户 -p密码   ping
mysqladmin -uroot -p123123  ping

#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin -uroot -pcentos shutdown

#创建数据库testdb
mysqladmin -uroot -pcentos   create testdb 

#删除数据库testdb
mysqladmin -uroot -pcentos   drop testdb

#修改root密码
mysqladmin -uroot -pAdmin@123 password ‘123'

#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -pcentos flush-logs
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着微信小程序的不断发展,微信小程序云函数也逐渐成为了开发者们的首选。在小程序云函数中,使用MySQL数据库是个常见的需求。下面就给大家详细介绍在微信小程序云函数中如何使用MySQL数据库。 首先,我们需要在小程序开发者工具中初始化云函数,并在云函数中安装mysql模块。安装完成后,我们需要在云函数的入口文件中引入mysql模块和配置数据库连接。 const mysql = require(‘mysql’); const connection = mysql.createConnection({ host : ‘xxx.xxx.xxx.xxx’, user : ‘root’, password : ‘root’, database : ‘test’ }); 以上是配置数据库连接的示例代码,其中host字段填写你的mysql数据库地址,user和password字段填写数据库用户名和密码,database字段填写使用的数据库名称。 接下来就可以在云函数中编写mysql相关的增删改查操作了。下面是示例代码: //查询 connection.query(‘SELECT * FROM users’, function (err, result) { if (err) throw err; console.log(result); }); //插入 let user = {name: ‘张三’, age: 18}; connection.query(‘INSERT INTO users set ?’, user, function(err, result) { if (err) throw err; console.log(result); }); //更新 let updateUser = {age: 20}; connection.query(‘UPDATE users set ? where name = ?’, [updateUser, ‘张三’], function(err, result) { if (err) throw err; console.log(result); }); //删除 connection.query(‘DELETE from users where age = 20’, function(err, result) { if (err) throw err; console.log(result); }); 以上代码中,我们分别实现了数据库的查询、插入、更新和删除操作。其中插入和更新操作的数据需要我们传入一个对象,表示要插入或更新的数据。实际应用中,需要根据情况自行调整。 最后需要注意的一点是,由于云函数每次内存释放后,连接都会断开,所以在进行数据库操作时需要每次建立连接并且操作完成后及时断开连接,避免数据库连接过多导致性能下降。示例代码如下: module.exports = { getUserList: async (event) => { let userList = []; let connection = mysql.createConnection({ host : ‘xxx.xxx.xxx.xxx’, user : ‘root’, password : ‘root’, database : ‘test’ }); connection.connect(); userList = await new Promise((resolve, reject) => { connection.query(‘SELECT * FROM user’, function (error, result) { if (error) throw error; resolve(result); }); }); connection.end(); return { userList: userList }; } } 以上代码中,在getUserList方法中,我们在每次使用之前创建一个新的数据库连接,然后进行查询操作,最后断开连接。 总结:在微信小程序云函数中使用MySQL数据库,需要先在云函数中安装mysql模块,并配置好数据库连接,然后就可以在云函数中编写相关的MySQL操作代码。注意每次操作完成后及时断开连接,避免连接过多影响性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值