库操作
一:系统数据库
- information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
- mysql:核心数据库,里面包含用户、权限、关键字等信息。不可以删除
- performance_schema:mysql 5.5版本后添加的新库,主要收集系统性能参数,记录处理查询请求时发生的各种事件、锁等现象
- sys : mysql5.7版本新增加的库,通过这个库可以快速的了解系统的元数据信息,可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助
二:数据库操作
1.创建数据库
1 create database db_name charset utf8;
//创建一个名为da_name的数据库,并指定当前库的编码集为utf8
2.查看数据库
1 //查询当前用户下所有数据库 2 show database; 3 4 //查看名为db_name的数据库的创建信息 5 show create database db_name; 6 7 //查询当前操作所在的数据库名称 8 select database();
3.选择数据库
1 use db_name
4删除数据库
1 drop database db_name
三:命名规范
1 //1.区分大小写 2 //2.可以由字母,数字,下划线,@,#,$ 3 //3.命名要有唯一性 4 //4.不能使用sql关键字作为名称 5 //5.不能单独使用数字 6 //6.最长128位
四:用户权限
1.用户管理
1 //创建用户,用户名为root,ip地址为127.0.0.1,密码为000000 2 create user ‘root‘@‘127.0.0.1‘ identified by ‘000000‘; 3 4 //删除刚才创建的用户 5 drop user ‘root‘@‘127.0.0.1‘; 6 7 //修改用户名为newroot 8 rename user ‘root‘@‘127.0.0.1‘ to ‘newroot‘@‘127.0.0.1‘
2.授权管理
1 //查看权限 root用户权限 2 show grants for ‘root‘@‘127.0.0.1‘ 3 4 //授权给用户‘darkfitch ‘@‘127.0.0.1‘ 5 grant 权限 on 数据库.表 to ‘darkfitch ‘@‘127.0.0.1‘ 6 7 //取消授权 8 revoke 权限 on 数据库.表 from ‘darkfitch ‘@‘127.0.0.1‘
权限列表 | |
all privileges | 除grant外的所有权限 |
select | 仅查权限 |
select,insert | 查和插入权限 |
usage | 无访问权限 |
alter | 使用alter table |
alter routine | 使用alter procedure和drop procedure |
create | 使用create table |
create routine | 使用create procedure |
create temporary tables | 使用create temporary tables |
create user | 使用create user、drop user、rename user和revoke all privileges |
create view | 使用create view |
delete | 使用delete |
drop | 使用drop table |
execute | 使用call和存储过程 |
file | 使用select into outfile 和 load data infile |
grant option | 使用grant 和 revoke |
index | 使用index |
insert | 使用insert |
lock tables | 使用lock table |
process | 使用show full processlist |
select | 使用select |
show databases | 使用show databases |
show view | 使用show view |
update | 使用update |
reload | 使用flush |
shutdown | 使用mysqladmin shutdown(关闭MySQL) |
super | 使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆 |
replication client | 服务器位置的访问 |
replication slave | 由复制从属使用 |
五:修改密码
1.mysqladmin命令
mysqladmin -u用户名 -p密码 password 新密码
2.直接设置用户名密码
1 set password for ‘用户名‘@‘ip地址‘ = password(‘新密码‘); 2 3 4 //刷新 5 flush privileges;
3.修改mysql库下的user表
1 //5.7版本修改密码方式: 2 update mysql.user set authentication_string = password(‘新密码‘) where user = ‘用户名‘ 3 4 //刷新权限 5 flush privileges; 6 7 //5.6版本 8 update mysql.user set password = password(‘新密码‘) where user = ‘用户名‘; 9 10 flush privileges;
六:忘记密码
在忘记root密码的时候,可以这样: #1.首先打开cmd 窗口,关闭mysql服务 net stop mysql #2.然后跳过权限检查,启动mysql,输入命令 mysqld --skip-grant-tables #3.重新打开一个新的cmd窗口,启动客户端(已跳过权限检查,可以直接登录) mysql #4.直接进来,修改密码 update mysql.user set authentication_string=password(‘123456‘) where user=‘root‘; #5. 刷新权限 flush privileges;
七:中文乱码问题
1.查询字符编码
show variables like ‘char%‘;
2.解决乱码问题
1 1 #修改方法: 2 2 #1. 创建my.ini文件,放在mysql根路径下 3 3 #2. 在该文件中添加以下内容即可: 4 4 #3.添加此文件后需要重新启动服务,以保证此文件生效 5 5 ------------------------------------------------------------ 6 6 [client] 7 7 8 8 default-character-set=utf8 9 9 10 10 [mysql] 11 11 12 12 #设置mysql客户端默认字符集 13 13 14 14 default-character-set=utf8 15 15 16 16 [mysqld] 17 17 18 18 #设置3306端口 19 19 20 20 port = 3306 21 21 22 22 #允许最大连接数 23 23 24 24 max_connections=200 25 25 26 26 #服务端使用的字符集默认为8比特编码的latin1字符集 27 27 28 28 character-set-server=utf8 29 29 30 30 #创建新表时将使用的默认存储引擎 31 31 32 32 default-storage-engine=INNODB 33 33 34 34 #解决mysql在执行sql语句后出现1055错误,sql_mode = only_full_group_by不相容 35 35 36 36 sql_mode=‘NO_ENGINE_SUBSTITUTION‘