权限 数据库备份与还原 以及没MySQL与Python的交互

权限

在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud 

目的:创建一个用户并且给用户设置权限和密码。

grant 权限 on 数据库.表名 to '用户名'@'主机ip' identified by '密码'

grant select on class1804.usersinfo to 'zhangsan'@'%' identified by '123456'

grant select,delete,alter,... on class1804.usersinfo to 'zhangsan'@'%' identified by '123456'

超出权限报错:

ERROR 1142 (42000): UPDATE command denied to user 'zhangsan'@'localhost' for table 'usersinfo'

用户拥有某个表的所有权限

grant all privileges on class1804.usersinfo to '用户名'@'主机ip' identified by '密码'

用户拥有某个数据库下所有表的所有权限

grant all privileges on class1804.* to '用户名'@'主机ip' identified by '密码'

用户拥有某个数据库下所有表的可读(查找)

grant select on class1804.* to '用户名'@'主机ip' identified by '密码'

在哪里查看创建的用户

客户端登录后在mysql这个数据库下有一个user表

select user,host,auth....._string from user;

第二中方式创建用户给用户设置权限

1.先创建用户,在设置权限

create user '用户名'@'ip' identified by '密码'

再高版本下mysql的版本为8.0.10以上密码是有安全要求的(必须是8位,由大写字母,小写字母、

数字、特殊字符)

2.再设置权限

grant 权限 on 数据库.表 to '用户名'@'%';

mysql -h127.0.0.1  -u ldd -p

先创建一个用户

CREATE USER 'ldd'@'127.0.0.1' identified by 'Abcd123*';

设置权限

GRANT ALL PRIVILEGES on *.* to 'ldd'@'127.0.0.1';

刷新权限

 flush privileges;

查看权限

 SHOW GRANTS for 'ldd'@'127.0.0.1';

精确到某个表:on 数据库.表名

精确到某个数据库:on 数据库.*

拥有所用mysql下所有数据库的所有表:on *.*

要设置所有权限:grant all privileges on *.* to 'user'@'ip' identified by 'mima'

删除某一个用户

drop user 'ldd'@'127.0.0.1';

重新给用户命名

RENAME user 'zhangsan'@'%' to 'zhangsanfeng'@'%';

撤销权限

REVOKE SELECT ON class1804.usersinfo from 'zhangsanfeng'@'%';

MySQL所拥有的权限

INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE

在操作结束之后需要刷新权限

flush privileges

数据库的备份与还原

数据库的备份

mysqldump -u 用户名 -p 数据库 表 > 备份路径

此命令会执行一系列的行为:

先删除 ->  在创建 ->  然后上锁 ->  然后解锁

恢复数据

mysql -u 用户名 -p 数据库 (不需要指定表名) < 备份路径

备份整个数据库(会把数据库中的所有的表以及数据都备份)

mysqldump -u root -p 数据库名 > 指定备份数据的路径

恢复(注意:如果要备份的是数据库,这个时候先创建数据库,然后才能完成备份)

mysql -u root -p 数据库名 < 备份路径

一次备份多个数据库

mysqldump -u root -p 数据库名 数据库名 ... >备份路径

#备份所有的数据库

mysqldump -u 用户名 -p --all-databases --lock-all-tables > 备份路径

--all-databases :导出所有数据库

--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改

~/桌面/master_db.sql :导出的备份数据(sql文件)位置,可自己指定

假如要恢复所有的数据库,这个时候不需要自己在一个一个创建数据库,我们在恢复的时候,会自动创建

mysql -u 用户名 -p < 备份路径

只备份结构不备份数据 -d

mysqldump -u root -p -d 数据库名 > 备份路径

mysql 如何与python交互

使用pymysql模块,实现Python与MySQL的交互。

:param host: (连接数据库的时候设置的ip)

:param user: (登录的用户名)

:param password: (登录的密码)

 :param database: (设置你要操作的数据库)

:param port:  3306 (设置端口号)

:param charset: Charset you want to use.(设置你想使用的字符集)

以上内容可以写在一行并且前三个位置默认为IP、用户名、密码,可以写成如下模式。

mysqlconn=pymysql.connect('localhost','root','123',database='class1804',charset='utf8')

然后我们需要创建一个游标:

#cursor_handler = mysqlconn.cursor()

之后我们就可以通过input来验证输入的内容的真实性。

然后通过字符串赋值变量,将字符串的内容去验证输入的内容:

sql = """ INSERT INTO teachers(id,name) VALUES ('%s','%s') """ % (id,name)

这里有两个问题:

1.使用占位符的时候只有%s,并不像Python的占位符一样有%d、%s之类的。

2.sql注入:

以上的写法会使账号不安全,别人可以通过sql注入来登录你的账号,盗取你的信息。

要写成如下

sql = """INSERT INTO teachers(id,name) VALUES(%s,%s)"""

然后在执行语句的时候再赋值

cursor.execute(sql,(id,teacher_name))

然后提交数据即可

mysqlconn.commit()

设置pymysql.cursors.DictCursor将对应的行的数据以字典的形式返回,如果是多个直接放在一个列表中

conn.cursor(cursor=pymysql.cursors.DictCursor)

cursor_handler.lastrowid 返回最后插入数据的id

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容