1.下载安装包
打开mysql官网下载页面:http://dev.mysql.com/downloads/mysql/
1.选择相应的版本和平台
2.mysql配置
打开刚刚解压的文件夹F:mysql-5.7.25-winx64mysql-5.7.25-winx64
,发现里面有my-default.ini配置文件,这个是默认的配置文件,复制一个自己的改名字为my.ini
编辑my.ini配置以下基本信息:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=F:mysql-5.7.25-winx64mysql-5.7.25-winx64
#设置mysql数据库的数据的存放目录
datadir=F:mysql-5.7.25-winx64mysql-5.7.25-winx64data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3.安装启动mysql
用管理员身份打开cmd命令行工具,cd到解压文件的bin目录:C:wamp-allmysql-5.7.13in
输入mysqld install回车运行,出现安装成功就可以了。
输入net start mysql 启动mysql (或打开windows服务手动启动mysql)
在cmd里启动发现没法启动
5.7版本才有这个问题,要在bin所在目录下手动初始化data目录
cd到bin目录下先初始化
# 1. mysqld --initialize-insecure自动生成无密码的root用户,
# 2. mysqld --initialize自动生成带随机密码的root用户
这里选择1 mysqld --initialize-insecure
初始化后再运行net start mysql 成功启动mysql ..
4.进入mysql环境
- cmd到bin目录下执行mysql -uroot (无需密码) ,
- 给用户设置一个密码:mysqladmin -u root -p password ,设置密码时发现报错:Access denied for user 'root'@'localhost' (using password: YES)
是因为未给localhost root用户授权,这里新建一个用户,然后授权给他
create user 'test'@'localhost' identified by '你的密码';
grant all privileges on . to test@'localhost';
运行这两句sql语句,再次用test的身份输入密码进入 - 在命令行输入:mysql -utest -p 回车 , 再输入刚刚设置的密码即可进入。
如果要退出sql环境回到正常的cmd环境,输入exit回车即可。 再次进入mysql 执行第3条即可。
# 给root用户授权
mysql> grant all privileges on *.* to root@localhost;
# 给root用户授权及允许创建用户
grant all privileges on *.* to root@localhost with grant option;
5.执行sql语句
show databases; 可以看到默认的数据库
mysql>use mysql; 使用mysql数据库
mysql>show tables;查询数据库下面的表格
mysql>select * from user; 查询user表所有内容
6.配置环境变量
如果不想每次都要cd到mysql的bin目录下,可以配置环境变量, cmd命令执行mysql指令的时候会去环境变量里面找对应的路径。
右键我的电脑->属性->高级系统设置->环境变量->path->编辑,将下载解压的mysql的bin目录的全路径放里面:F:mysql-5.7.25-winx64mysql-5.7.25-winx64in;
多个用分号隔开。
7.测试python连接mysql数据库
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()