MySQL用户管理与字符集
用户管理与字符集
一、用户管理
用户名的概念
用户名是由两部分组成的
user和host
1.1 创建用户
create user 'yysue'@'192.168.5.38' identified by 'yysueyysue';
create user 'yysue'@'srv%.yysue.net' identified by 'yysueyysue';
flush privileges;
结合/etc/hosts使用,对域名授权
srv1.yysue.net 192.168.5.11
srv2.yysue.net 192.168.5.12
saltstack,ansible
查看系统账号
select user, host, password from mysql.user;
select user, host, authentication_string from mysql.user;
查看账号的权限
show grants for user@host
数据库加固命令,只在初始化数据库时执行一次
delete from mysql.user where user!='root' or host!='localhost';
truncate table mysql.db;
drop database test;
root@localhost与root@127.0.0.1区别
localhost只能通过unix_domain登录,socket
127.0.0.1只能通过tcp方式登录
mysql -h 127.0.0.1 -uroot --protocol=tcp
用户迁移时,密码怎么迁移
-- 验证用户密码
select password('yysueyysue');
create user 'a'@'ip' identified by password '加密后的hash串';
1.查看用户有什么权限
2.查一下hash串
删除账号
drop user aaa;
drop user aa1@'ip';
用什么工具连接mysql
mysql命令
SQLyog
workbench
查看当前用户
select user();
备一个mysql手册
https://dev.mysql.com/doc/refman/5.6/en/
chm手册
help create user
1.2 授权
移除权限
revoke select on db1.* from yysue@'ip';
授权
grant select on db1.* to 'yysue'@'ip';
grant select on db1.t1 to 'yysue'@'ip';
grant select,update,insert,delete on db1.t1 to 'yysue'@'ip';
flush privileges;
精确匹配原则
查询权限
show grants for root@ip;
回收权限
新建用户精确匹配,使用精确匹配的账户测试
1.3 一个账号连接不上mysql
连接的mysql是否运行,ip地址正确
端口正确
ss替代netstat命令,netstat统计的信息不准确
是否能ping通服务器
账号密码是否正确
是否flush privileges
1.4 应该创建哪些账号
1)读写账号
grant select,update,delete,insert on db1.* to yysue@ip;
2)管理账号
grant all privileges on *.* to root@localhost with grant option;
3)复制用的账号
grant relication slave on *.* to user1@ip identified by 'password';
replication slave > replication client
replication client可以认为用来监控复制的
1.5 注意问题
1)用户名的长度 小于16个字符
2)密码 复杂,可见字符
1.6 MySQL密码忘了
重启数据库
my.cnf [mysqld] 加 skip-grant-tables
不重启数据库
set password for user1@ip = password('password')
help set password
update mysql.user set password=password('new-password')
where user = '' and host = '';
flush privileges;
mysql.user存储引擎是MyISAM
show create table mysql.user;
复制出去改好密码再复制回来
cp user.* ../user1/
update user1.user set password=password('new-password')
where user='xxx' and host = 'xxx'
cp user.* dst/mysql
chown mysql:mysql
kill -l
重新加载配置
kill -HUP `pidof mysqld`
keypass来帮助记密码
二、字符集
不涉及中文的话,感觉不出来
一般在系统升级,数据迁移时容易出问题
2.1 理解字符集
1)什么是字符集
gbk,utf8,gb2312,latin1
一套符号编码规则
-字符串都必须有相应的字符集
二进制没有字符集
流式传输
校验字符集的概念,以字为单位进行比较
没有检验字符集的概念之前,以字节为单位进行比较
多字节,latin1是单字节,gbk是2字节,utf8是3字节
归类的方法,就是3类
以二进制形式存储,区分大小写, xxx_bin
show charset;

default collation都是以xxx_general_ci结尾
ci是case insensitive的意思,不区分大小写,是指比较的时候不区分大小写
还有一种是xxx_general_cs结尾
cs是case sensitive的意思,区分大小写的
2)好几层字符集
操作系统字符集
echo $LANG
locale -a
i18n
/etc/sysconfig/i18n
updatedb
locate i18n
数据库服务器和数据库MySQL字符集

client 终端字符集
database 数据库字符集
server 服务器的字符集
查看表字符集

查看列字符集

三码同一,服务器,终端,DB级别
db server ->dbname->table->column
物理属性的字符集
连接字符集
结果字符集

3)修改字符集
# 更改客户端字符集
set names utf8;
set global names utf8;
查看
show variables like '%char%';
show global variables like '%char%';
带global全局,不带global是session级别
4)5.5及之前
早期版本的MySQL默认字符集都是latin1
配置文件配置字符集
[mysqld]
character-set-server = utf8
5)常见字符集
gbk/gb2312双字节字符集
gb2312包含于gbk
gbk是gb18030的子集
gbk中日韩
utf8三字节的字符集,万国码,可变长度
ascii 8bit,实际占用7bit
latin1是8bit
2.2 不同字符集进行转换
gbk->unicode->utf8
utf8->unicode->gbk
iconv命令
file 命令
latin1字符集环境:LANG=en_US.ISO_8859_1, CRT:default
gbk字符集环境:LANG=en_US.GBK/zh_CN.GBK, CRT:default
utf8字符集环境:LANG=en_US.UTF-8, CRT:utf-8
mysqldump --where 1=1 limit 10000
screen
time mysql < xxx.sql && mutt xxx
2.3 怎么避免乱码
1)三码统一
服务器端,终端的,DB级的,程序级的
2)真的遇到乱码
想想 我们做过什么
环境发生了什么变换
2.3 gbk&utf8
使用gbk可以省空间,省网络流量
输入为主的网站大多数用utf8,utf8mb4
信息类,新闻站一般用gbk,gb2312
nginx,apache一定要开压缩
压测工具httpwatch
http://wubx.net/mysql-running-change-owner/
三、实验
3.1 验证char能存储多少个字符
drop table if exists t1;
create table t1(name char(30)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into t1(name) values (repeat('汉', 10));
insert into t1(name) values (repeat('汉', 20));
insert into t1(name) values (repeat('汉', 30));
insert into t1(name) values (repeat('汉', 31));
MySQL用户管理与字符集的更多相关文章
- MySQL用户管理及SQL语句详解
1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...
- 【转】MySQL用户管理及SQL语句详解
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
- MySQL(十六)之MySQL用户管理
一.MySQL用户管理概述 MySQL是一个多用户的数据库,MYSQL的用户可以分为两大类: 超级管理员用户(root),拥有全部权限 普通用户,由root创建,普通用户只拥有root所分配的权限 二 ...
- 库增删该查,表增删该查,记录增删该查,表与表关系(多对多,多对一,一对一),mysql用户管理
库增删该查 增加库 create database db1 create database db1 charset="gbk 查看库 show databases 查看所有库 show cr ...
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
- MySQL 用户管理与权限管理
MySQL 用户管理与权限管理 -- 操作环境mysql> show variables like 'version'; +---------------+--------+| Variabl ...
- Python 42 mysql用户管理 、pymysql模块
一:mysql用户管理 什么是mysql用户管理 mysql是一个tcp服务器,应用于操作服务器上的文件数据,接收用户端发送的指令,接收指令时需要考虑到安全问题, ATM购物车中的用户认证和mysql ...
- Mysql用户管理及权限分配
早上到公司,在服务器上Mysql的数据库里新建了个database,然后本地的系统里用原来连接Mysql账号admin连这个数据库.结果报错了,大概是这样子的: Access denied for u ...
- MySQL用户管理及权限设置
mysql 用户管理和权限设置 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mysql ...
随机推荐
- 常用缓存(cache)淘汰算法(LFU、LRU、ARC、FIFO、MRU)
缓存算法是指令的一个明细表,用于决定缓存系统中哪些数据应该被删去. 常见类型包括LFU.LRU.ARC.FIFO.MRU. 最不经常使用算法(LFU): 这个缓存算法使用一个计数器来记录条目被访问的频 ...
- JS:数组中push对象,覆盖问题
发现将对象push进数组,后面的值会覆盖前面的值,最后输出的都是最后一次的值.其实这一切都是引用数据类型惹的祸.如果你也有类似问题,可以继续看下去哦.下面代码模拟:将json对象的每个键值对,单独搞成 ...
- 基于vue-cli搭了一个多页面应用的空脚手架
vue2.* (多页面跳转) @[vue2.3.3|webpack2.6.1|less|axios] 之前看过有相关朋友share了空的多页面脚手架. 不过down了几个都是webpack1.0或者v ...
- Amaze UI 模版中心上线丨十几款高质量优秀模版免费提供!
Amaze UI模版中心终于上线了,目前汇聚了包含企业门户.新闻资讯.管理后台等多个领域的模版,全都可以免费下载. Amaze UI模版中心后续还会增加更多的模版以及领域,请各位持续关注. 模版中心的 ...
- .net大作业
登录页面: 源代码:当下较忙,后续会传至github上
- mysql各个集群方案的优劣
集群的好处 高可用性:故障检测及迁移,多节点备份. 可伸缩性:新增数据库节点便利,方便扩容. 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力. 集群要考虑的风险 网络分裂:群集还可能由于网络 ...
- flex布局控制最后一个元素右浮动
可以在最后一个元素添加css属性 margin-left: auto; 例如我一排排列的元素 ,子元素并没有完全排列撑开父元素的宽度,这时候要使最后一个元素想最右 可以让最后一个元素的 margin- ...
- VUE-SSR原理和使用
开篇N问 SSR解决了什么问题?SSR存在那些问题?SSR优点缺点是什么如何使用以及原理 自我总结了有如下优势 - SSR利于seo优化,因为实现了在node中解析vue,将实例渲染成一个字符串直接 ...
- 详解防抖函数(debounce)和节流函数(throttle)
本文转自:https://www.jianshu.com/p/f9f6b637fd6c 闭包的典型应用就是函数防抖和节流,本文详细介绍函数防抖和节流的应用场景和实现. 函数防抖(debounce) 函 ...
- 时间篇之centos7修复ntpq: read: Connection refused
关于ntp同步时间, 由于是解决问题,所以理论性内容不多. 关于UTC NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间吗?答案是否定的. 因为格林尼治时间是以地球自转为基础的时间 ...