在mac上装mysql
- 下载mysql for mac: https://dev.mysql.com/downloads/mysql/
- 解压dmg文件,点击pkg文件进行安装
- Continue -> Continue, Agree -> Install -> 输入管理员密码 ->设置root用户密码
- 进入系统偏好设置, 找到mysql, 启动服务,设置为开机自启
- 将mysql的命令添加到系统中
- 进入/usr/local/mysql/bin,查看此目录下是否有mysql
- 执行vim ~/.bash_profile
- 在该文件中添加mysql/bin的目录:
PATH=$PATH:/usr/local/mysql/bin
添加完成后,按esc,然后输入:x保存退出。
- 返回命令行输入source ~/.bash_profile
- 改密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
- 登录:mysql -uroot -p 回车,输入密码,也可以直接输入密码,不过密码就是可见的
- 关于mysql的内容,后续补
python操作mysql的步骤
import pymysql
import MySQLdb
- 'localhost’相当于本地的‘127.0.0.1’
- 创建connection链接
conn = pymysql.connect(host='localhost',port=xxxx, user='root',password='xxxx', database='xxxxxx', charset='utf8')
- 获取游标对象 cursor
cs1=conn.cursor()
- 用它执行sql语句
- 查
cs1.execute("select * from goods;")
如果成功会返回生效的行数 - 查到的数据取出来
cs1.fetchone()
一次取一个取出来的是元组,可以用一个变量接收,然后用角标取出每一个元素
cs1.fetchall()
全取出来
cs1.fetchmany(x)
你输入几就取出几组,不写取一个
- 记得关闭游标对象,断开连接
cs1.close()
conn.close()
解析
- 上叙的
conn
负责链接(connect)、提交(commit)、回滚(rollback)、断开链接(close) - 游标
cs1
execute
负责执行sql语句,包括增删改查,会返回生效的行数fetchone/fetchmany/fetchall
负责取出匹配到的元素,取出来的是元组fetchone
可以放到content_line
里面,然后遍历content_line
就可以打印出来了
sql注入
什么是sql注入?
- 让用户查商品,你的表达式是:
select * from goods where name = '%s'
- 用户的输入是:
- 拼成的表达式是:
select * from goods where name = ''or 1=1 or '1'
- 结果是:
把goods里面的所有内容都选出来了!
怎么防止?
- 用python自带的execute在一定程度上能够防止sql语句参数化