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暂时复习到这里吧!!!