Python全栈•数据库(二)⁃MySQL库操作
2018-03-21 22:01
429 查看
MySQL数据库
二、库操作
1、系统库简介
①information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
②mysql:核心数据库,里面包含用户、权限、关键字等信息,不可以删除
③performance_schema:mysql 5.5版本后添加的新库,主要收集系统性能参数,记录处理查询请求时发生的各种事件、锁等现象
④sys:mysql 5.7版本新增加的库,通过这个库可以快速的了解系统的元数据信息,可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助
2、库操作
①增加
create database db_name charset utf8;
②查看
查询当前用户下所有数据库show databases ;
查看创建数据库信息
show create database db_name;
查询当前操作所在的数据库名称
select database();
③选择
use db_name;
④删除
drop database db_name;
3、库的命名规范
可以由字母、数字、下划线、@、#、$组成,最长128位且区分大小写命名需要保证唯一性
不能使用关键字、不能单独使用数字
4、用户权限
①用户管理
创建用户create user '用户名'@'IP地址' identified by '密码';
删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
②授权管理
查看权限show grants for '用户'@'IP地址';
授权
grant 权限 on 数据库.表 to '用户'@'IP地址';
取消权限
revoke 权限 on 数据库.表 from '用户'@'IP地址';
例:创建用户并给用户授权
#创建新用户
create user 'yang'@'localhost' identified '123';
#授权方式一:为yang授权db1数据库下的所有表的查询、更新、修改权限
grant select,update,delete on db1.* to 'yang'@'localhost';
#授权方式二:为yang授权所有库的所有权限(除grant权限外)
grant all privileges on *.* to 'yang'@'localhost';
#刷新用户权限
flush privileges;
5、修改密码、忘记密码
①修改密码
方式一: mysqladmin命令mysqladmin -u用户名 -p密码 password 新密码
方式二: 直接设置用户密码
set password for '用户名'@'IP' = password('新密码');
flush privileges;
方式三:修改mysql库下的user表
# 5.7版本修改密码方式: update mysql.user set authentication_string=password('新密码') where user= '用户名' flush privileges; # 5.6版本修改密码方式: update mysql.user set password = password('新密码') where user= '用户名' flush privileges;
②忘记密码
首先打开cmd窗口,关闭mysql服务net stop mysql
然后跳过权限检查,启动mysql,输入命令
mysqld --skip-grant-tables
重新打开一个新的cmd窗口,启动客户端(已跳过权限检查,可以直接登录)
mysql
直接进来,修改密码
update mysql.user set authentication_string=password('123456') where user='root';
刷新权限
flush privileges;
6、中文编码问题
①查询字符编码
SHOW VARIABLES LIKE 'char%';
②解决中文编码无法显示问题
创建my.ini文件,放在mysql根路径下在该文件中添加以下内容即可
添加此文件后需要重新启动服务,以保证此文件生效
# my.ini文件内容: [client] default-character-set=utf8 [mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 #允许最大连接数 max_connections=200 #服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #解决mysql在执行sql语句后出现1055错误,sql_mode = only_full_group_by不相容 sql_mode='NO_ENGINE_SUBSTITUTION'
相关文章推荐
- python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)
- python 安装操作 MySQL 数据库.
- python操作mysql(一)MySQLdb模块安装和数据库基本操作
- 用Python操纵数据库MySql的基本操作
- python+mysql 操作数据库出现的中文编码问题
- python django 增删改查操作 数据库Mysql
- python 试题:以mysql或者sqlite为例,请用代码给出简洁且完整的数据库操作示例。
- Python数据库操作(MySQL)
- mac安装mysql-python和采用MVC的方式操作数据库
- python 数据库操作 SQLite、MySQL 摘录
- Python3.x的mysqlclient的安装、Python操作mysql,python连接MySQL数据库,python创建数据库表,带有事务的操作,CRUD
- python 操作数据库(mysql)
- Python数据库操作——第一步:windows下搭建mysql环境
- python实战数据库MySQL---4操作MySQL
- python之数据库(mysql)操作
- python 操作数据库 OperationalError: (2006, 'MySQL server has gone away') 解决方法
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
- python数据库操作(1)--Mysql/Sqlite--DB-API
- Python教程:操作数据库,MySql的安装详解