MySQL创建用户
MySQL数据库中root用户本身就存在就不需要创建,所有对于root只需要修改密码授权这些操作
创建其他用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
#主机选项有localhost,IP地址、网段、域名、%所有远程连接
#
MySQL修改用户密码
set password for 用户名@'主机' = password('密码');
修改用户名
rename user '用户名'@'主机' to '新用户名'@'主机';
MySQL创建库
示例一
create database 库名 charset=字符集;
#charset=字符集 //创建时指定字符集
示例二
create database 库名
#如果不指定就是默认字符集
MySQL修改库的字符集
alter database 库名 character set 字符集;
查看MySQL库的字符集
show create database 库名;
查看MySQL本身相关所有的默认字符集
show variables like 'char%';
#character_set_client:客户端请求数据的字符集
#character_set_connection:客户机与服务器连接的字符集
#character_set_database:默认数据库的字符集
#character_set_filesystem:默认为binary, 不做任何转换
#character_set_results:返回给客户端的字符集
#character_set_server:数据库服务器的默认字符集
#character_set_system:系统字符集,默认utf8
#character_sets_dir:mysql字符集文件的保存路径
修改MySQL本身相关的默认字符集
示例
set character_set_results=字符集;
MySQL用户授权
给root用户授所有权,包括远程连接
grant all privileges on 库.表 to '用户'@'主机' identified by '密码' with grant option;
#这条命令代表的是允许授予root用户所有权限包括远程连接
#grant //授予
#all privileges //所有权
#on 库.表 //在 *.* '*'号代表所有
#to //给
#'root'@'%' //'用户名'@'主机' 这里的主机可以是localhost,IP地址,域名,网段,%代表所有都可以,也代表可远程连接
#identified by '密码' //识别后边跟密码
#with grant option //权限传递 就是可以给别的用户授权
给其他用户授权,包括远程连接
#这里注意给其他用户授权权限控制要精准,不能让其他用户访问所有库
示例一
grant create,select,insert,delete,update,alter,drop on 库.表 to 用户名@'主机';
示例二
GRANT ALL PRIVILEGES ON 库.表 TO '用户@'主机';
#grant //授予
#create,select,insert,delete,update,alter,drop //代表需要授予的什么权限以','号分割开
#on 库.表 //在 bn_coresys.* '*'号代表所有,这里是指bn_coresys库下的所有表
#to //给
#对于其他用户的授权需要精准,所有这里我们就不授予all privileges所有权,后面跟的是具体的权限
#因为我们授权的其他用户是已经存在的用户在授权时identified by '密码',可跟可不跟
#with grant option,这里我们是不需要给其他用户授权的,所有不加这个
刷新权限
flush privileges;
#在授权完成后要执行此命令刷新一下权限
查看授予用户授予的权限
示例一
show grants for '用户'@'主机'; //查看简要授权内容
示例二
select * from mysql.user\G //查看所有用户详细授权内容
示例三
SELECT * FROM mysql.user WHERE user='用户名'\G //查看某个用户授权详解内容
查看所有用户可在哪些主机登录MySQL
use mysql;
select user,host from user;
回收用户的授权
示例一
revoke select on to 库.表 from "用户名"@"主机";
示例二
revoke all on 库.表 from "用户名"@"密码";
删除授权用户
drop user "用户"@"主机"; // 删除方法1
delete from mysql.user where user="用户名"; //删除方法2
相关链接
http://c.biancheng.net/view/7490.html //创建用户
http://c.biancheng.net/view/2615.html //用户授权
https://www.php.cn/mysql-tutorials-441823.html //添加删除用户授权
https://blog.csdn.net/qq_36564503/article/details/123085831 //用户管理
https://blog.csdn.net/weixin_42109012/article/details/102684153 //查看用户权限及权限管理
MySQL数据备份和数据导入
数据备份
mysqldump -u 用户名 -p 库名 > 库名.sql
#这是备份某个库的也称为全量备份
数据导入
#在导入前要现创建一个空库,注意创建库的字符集要和备份数据的库的字符集一样
mysql -u 用户名 -p 库名 < 库名.sql
查询某个库中某个表里面有多少条数据
在mysql中,可以使用“select”语句和count()函数来统计表中有多少条数据,该函数可以统计数据表中包含的记录行的总数,语法“select count (*) from 数据表名;”。
#查询intelligent_gas库中dm_dev610_node_analog_value表中有多少条数据
mysql> SELECT COUNT(*) FROM intelligent_gas.dm_dev610_node_analog_value;
+----------+
| COUNT(*) |
+----------+
| 1278598 |
+----------+
1 row in set (6.38 sec)
删除一个库中某个表中从某个时间到某个时间的数据
按时间段进行删除操作,sql如下:
使用BETWEEN关键字根据时间字段删除一定时间内的记录
DELETE FROM 表名 WHERE 时间字段 BETWEEN 开始时间 AND 结束时间
#示例
DELETE FROM 库名.表名 WHERE create_time BETWEEN '2021-07-01 00:00:00' AND '2021-07-01 23:59:59'
mysql> DELETE FROM intelligent_gas.dm_dev610_node_analog_value WHERE create_time BETWEEN '2021-07-01 00:00:00' AND '2021-07-01 23:59:59'