【Python】连接MySQL数据库



1. MySQL安装(mac)

1.1 下载安装包

  • 1.1.1 进入官网下载:Download MySQL Community Server,dmg格式的文件,地址:

https://dev.mysql.com/downloads/mysql/

  • download.jpg
  • 1.1.2 进入上图的页面后,选择不登录,直接下载dmg格式的安装包:
  • download_page.jpg

1.2 MySQL安装与登录

  • 2.2.1 双击dmg格式的安装包,跟着提示一步一步的做就可以了,过程中需要设置root帐号的密码,设置好后并记住即可;

  • 2.2.2 在命令上中输入mysql -u root -p,会提示输入密码,输入之前设置的密码即可登录到MySQL系统上;

  • mysql_login.jpg

2 创造数据

2.1 创建一个数据库

  • 使用命令:CREATE DATABASE 数据库名; 创建一个数据库;

2.2 创建表并添加数据

  • 创建一个表:
CREATE TABLE table_name (column_name column_type);
  • 往表中插入测试数据:
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

3. python连接MySQL

3.1 实现

# ^_^coding: utf-8 ^_^
import pymysql

try:
    # 获取一个数据库连接
    conn = pymysql.connect(host="localhost",user="root",password="123465",db="my_test_datebase",port=3306)
    # 获取一个游标
    cur = conn.cursor()
    cur.execute("SELECT * FROM my_test_datebase.a_table")
    data = cur.fetchall()

    for d in data:
        # int类型需要使用stra函数转义
        print("a_id: " + str(d[0]) + " | " + "a_name: " + str(d[1]) + " | " + "a_part: " + str(d[2]))
    cur.close() # 关闭游标
    conn.close() # 关闭连接
except Exception : print("查询失败")

上述代码直接运行时,可能会遇到如下提示错误:

pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)

3.2 解决

  • 确定用户名和密码都没有错,网上查了下,最简单的解决办法是“更换root密码的验证方式”;
  • 新版本的MySQL使用的是caching_sha2_password认证方式,换成mysql_native_password就可以了;
  • 修改密码验证方式的步骤是:在终端上连接MySQL,然后输入如下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

3.3 运行结果

  • run_result.jpg

4. 遇到的问题(windows)

Access denied for user root
解决方式如下:

4.1 关闭mysql服务

  • 以管理员身份运行cmd,使用net stop mysql停止mysql服务;

4.2 跳过权限验证

  • 在cmd窗口中,输入如下命令:
mysqld --console --skip-grant-tables --shared-memory

4.3 无密登录mysql

  • 另打开一个cmd窗口,输入如下命令,直接回车,即可登录到mysql中:
mysql -u root -p

4.4 更改mysql的root密码

  • 登录到mysql上后,进入user表下,运行如下命令:
update user set authentication_string=password("123456") where user="root";

4.5 新密码登录mysql

  • 密码更改好后,启动mysql服务;
  • 输入刚修改的密码,登录成功;

4.6 启动、停止mysql

  • 启动: net start mysql
  • 停止: net stop mysql

软件测试QA的碎碎念.jpg

你可能感兴趣的:(【Python】连接MySQL数据库)