【数据库开发】MySQL绿色版的下载和安装

1、简介

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在这里插入图片描述

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,目前隶属于 Oracle 旗下产品。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、- [ ] C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 对 PHP 有很好的支持,PHP 是很适合用于 Web 程序开发。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

2、下载

在这里插入图片描述

下载地址:
https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

2.1 MySQL 8.0

在这里插入图片描述
搜狐的MYSQL镜像的下载地址:
http://mirrors.sohu.com/mysql/MySQL-8.0/
阿里云开源镜像:
http://mirrors.aliyun.com/mysql/MySQL-8.0
在这里插入图片描述

2.2 MySQL 5.7

在这里插入图片描述

搜狐的MYSQL镜像的下载地址:
http://mirrors.sohu.com/mysql/MySQL-5.7/
阿里云开源镜像:
https://mirrors.aliyun.com/mysql/MySQL-5.7/
在这里插入图片描述

3、安装

在这里插入图片描述

3.1 MySQL 8.0

下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\mysql-8.0.26-winx64 下。
在这里插入图片描述
新建my.ini如下:

[mysqld]
# 设置3306端口
port=3306

# 设置mysql的安装目录
basedir=D:\mysql-8.0.26-winx64

# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.26-winx64\Data  

# 允许最大连接数
max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

以管理员身份打开命令行,切换到安装MySQL的目录下,再切换到bin目录下

cd D:\mysql-8.0.26-winx64\bin

执行MySQL初始化命令:

mysqld --initialize --console

记录初始化完成后生成的临时密码,后面登陆要用到。
安装MySQL的服务mysqld,mysqld --install 服务名(不写的话默认服务名是mysql)

mysqld --install
# or
mysqld --install mysql80

启动MySQL服务:

net start mysql
停止服务:net stop mysql
卸载服务:sc delete mysql

登录MySQL:

mysql -u root -p

更改密码:

alter user root@'localhost' identified by '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

3.2 MySQL 5.7

下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\mysql-5.7.35-winx64 下。
在这里插入图片描述
解压后的mysql根目录下没有my.ini文件,.ini文件会在初始化mysql中用到。
新建my.ini如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = D:\mysql-5.7.35-winx64
datadir = D:\mysql-5.7.35-winx64\data
port = 3306

# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 16M
# read_rnd_buffer_size = 16M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

另一个例子:

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录   ----------是你的文件路径-------------
basedir=D:\mysql-5.7.35-winx64
# 设置mysql数据库的数据的存放目录  ---------是你的文件路径data文件夹自行创建
datadir=D:\mysql-5.7.35-winx64\data

# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password

打开命令提示符以管理员的身份打开,打开以后进入到你的MySQL的bin目录下:
在这里插入图片描述
安装mysql服务:

mysqld --install

在这里插入图片描述
初始化mysql数据库,记下你的数据库初始密码后面登录更改密码所用。

mysqld --initialize --console

在这里插入图片描述
mysqld根目录下会自动新增data文件夹:
在这里插入图片描述

启动mysql服务:

# 启动服务
net start mysql

# 停止服务
net stop mysql
mysqld --remove 

在这里插入图片描述
在任务管理器里面也可以看见mysql的服务在运行了。
在这里插入图片描述
登录mysql服务:

mysql -u root -p

在这里插入图片描述
登录成功后进行密码修改,这里将管理员用户root的新密码修改为123456。

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

在这里插入图片描述
最后需要配置MySQL的环境变量,不然在其他目录下,命令行无法访问mysql命令,进行相关操作。
在这里插入图片描述
新建变量MYSQL_HOME:

MYSQL_HOME=D:\mysql-5.7.35-winx64

修改变量PATH,在它的值的最后面添加mysql的安装目录,如下:

PATH=*****;%MYSQL_HOME%\bin

查看数据库:

show databases;

在这里插入图片描述

实践证明:MySQL5和MySQL8的安装方式基本相同。

4、开发(Python)

在这里插入图片描述

4.1 安装pymysql库

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

安装PyMySQL库:

pip install pymysql

在这里插入图片描述

4.2 连接数据库

使用数据库的第一步就是连接数据库,接下来我们看看如何使用PyMysql连接数据库。

  1. 连接数据库
  2. 创建游标对象
  3. 对数据库进行增删改查
  4. 关闭游标
  5. 关闭连接
#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306)
    print('连接成功!')
except:
    print('连接失败!!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)

# 关闭数据库连接
db.close()

4.3 创建数据表

#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
    print('连接成功!')
except:
    print('连接失败!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)
print('建表成功!')

# 关闭数据库连接
db.close()

在这里插入图片描述

4.4 插入数据

使用INSERT语句向表 EMPLOYEE 插入数据。

#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
    print('连接成功!')
except:
    print('连接失败!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Tom', 'Kiki', 22, 'M', 1990)"""
try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    print('数据插入成功!')
except:
    # 如果发生错误则回滚
    db.rollback()
    print('数据插入错误!')

# 关闭数据库连接
db.close()

在这里插入图片描述

4.5 查询数据

查询EMPLOYEE表中INCOME字段大于1000的所有数据:

#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
    print('连接成功!')
except:
    print('连接失败!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > %s" % (1000)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        fname = row[0]
        lname = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        # 打印结果
        print('数据查询成功!')
        print("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
              (fname, lname, age, sex, income))
except:
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()

在这里插入图片描述

4.6 更新数据

将 TESTDB 表中 SEX 为 ‘M’ 的 INCOME 字段增加500.

#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
    print('连接成功!')
except:
    print('连接失败!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET INCOME = INCOME + 500 WHERE SEX = '%c'" % ('M')
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    print('数据更新成功!')
except:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

在这里插入图片描述

4.7 删除数据

删除数据表 EMPLOYEE 中 AGE 大于 20 的所有数据。

#!/usr/bin/python3
import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
    print('连接成功!')
except:
    print('连接失败!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交修改
    db.commit()
    print('数据删除成功')
except:
    # 发生错误时回滚
    db.rollback()

# 关闭连接
db.close()

在这里插入图片描述

5、测试

在这里插入图片描述

MySQL官方自带的测试数据集。
下载地址:https://github.com/datacharmer/test_db
下载后解压文件夹如下:
在这里插入图片描述
该测试数据主要通过employees.sql来完成数据录入。employees.sql中包含建表、构建视图、导入资源文件(*.dump文件)等操作。

输入命令,将数据文件夹设置为当前目录:

cd C:\Users\tomcat\Desktop\test_db-master

输入命令 mysql -t -uroot -p <employees.sql 回车后输入密码,等待即可完成。

mysql -t -uroot -p <employees.sql

在这里插入图片描述
查看数据表employees的数据如下:
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值