MySQL(五)

文章目录

  • 数据库备份和用户管理
        • 数据表的复制
        • 数据备份
        • 用户权限管理
  • python操作MySQL
        • 安装pymysql
        • pymysql基础使用

MySQL基础操作请见 enginelong的博客

数据库备份和用户管理

数据表的复制

  • 表可以根据实际需求复制数据
  • 复制表时不会把KEY属性一起复制
create table 表名 select 查询;

数据备份

  • 备份命令格式
mysqldump -u 用户名 -p 源库名 > (数据备份存储路径)/备份数据库名.sql
  • 恢复命令格式
mysql -u root -p 目标库名 < (备份数据存储路径)/备份数据库名.sql

用户权限管理

  • 开启MySQL远成连接
更改配置文件,重启服务!
1.cd /etc/mysql/mysql.conf.d
2.sudo vi mysqld.cnf  找到43行左右,加 # 注释
   # bind-address = 127.0.0.1
   
3.保存退出
4.sudo service mysql restart
5.进入mysql修改用户表host值 
  use mysql;
  update user set host='%' where user='root';
6.刷新权限
  flush privileges;
  • 添加权限用户
1. 用root用户登录mysql
   mysql -u root -p
2. 添加用户 % 表示自动选择可用IP
   CREATE USER 'username'@'host' IDENTIFIED BY 'password';
3. 权限管理

   # 增加权限
   grant 权限列表 on 库.表 to "用户名"@"%" identified by "密码" with grant option;
   
   # 删除权限
   revoke insert,update,select on 库.表 from 'user'@'%';
   
4. 刷新权限
   flush privileges;
5. 删除用户
   drop user "用户名"@"%"
  • 权限列表
all privileges 、select 、insert ,update,delete,alter等。
库.表 : *.* 代表所有库的所有表

python操作MySQL

python可以通过第三方库pymysql操作MySQL数据库

安装pymysql

sudo pip3 install pymysql

pymysql基础使用

  • 建立数据库连接
db = pymysql.connect(参数列表)
功能: 链接数据库

host :主机地址,本地 localhost
port :端口号,MySQL默认3306端口
user :用户名
password :密码
database :库
charset :编码方式,推荐使用 utf8
  • 创建数据库游标对象
cur = db.cursor() 
功能: 创建游标
返回值:返回游标对象,用于执行具体SQL命令
  • 游标方法
cur.execute(sql,list_) 
功能: 执行SQL命令
参数: sql sql语句
      list_  列表,用于给sql语句传递参量
      
cur.executemany(sql命令,list_)
功能: 多次执行SQL命令,执行次数由列表中元组数量决定
参数: sql sql语句
      list_  列表中包含元组 每个元组用于给sql语句传递参量,一般用于写操作。
  • 从数据库获取执行SQL语句后的结果
cur.fetchone() 获取查询结果集的第一条数据,查找到返回一个元组否则返回None
cur.fetchmany(n) 获取前n条查找到的记录,返回结果为元组嵌套元组, ((记录1),(记录2)),查询不到内容返回空元组。
cur.fetchall() 获取所有查找到的记录,返回结果形式同上。
  • 将数据提交到数据库
db.commit() 提交到数据库执行
  • 回滚操作
db.rollback() 回滚,用于当commit()出错是回复到原来的数据形态
  • 关闭游标对象然后关闭数据库连接
cur.close() 关闭游标对象
db.close() 关闭数据库连接

OK,MySQL暂时复习到这里吧!!!

你可能感兴趣的:(数据库,mysql,sql)