python 学习笔记 【mysql 数据库 一 】

一、安装

你的电脑或许不会天生就有 MySQL(是不是有的操作系统,在安装的时候就内置了呢?的确有,所以特别推荐 Linux 的某发行版),它本质上也是一个程序,若有必要,须安装。

我用 ubuntu 操作系统演示,因为我相信读者将来在真正的工程项目中,多数情况下是要操作 Linux 系统的服务器,并且,我酷爱用 ubuntu。还有,本教程的目标是 from beginner to master,不管是不是真的 master,总要装得像,Linux 能够给你撑门面。

第一步,在 shell 端运行如下命令:

sudo apt-get install mysql-server

运行完毕,就安装好了这个数据库。是不是很简单呢?当然,当然,还要进行配置。

第二步,配置 MySQL

安装之后,运行:

service mysqld start

启动 mysql 数据库。然后进行下面的操作,对其进行配置。

默认的 MySQL 安装之后根用户是没有密码的,注意,这里有一个名词“根用户”,其用户名是:root。运行:

$mysql -u root

在这里之所以用 -u root 是因为我现在是一般用户(firehare),如果不加 -u root 的话,mysql 会以为是 firehare 在登录。

进入 mysql 之后,会看到>符号开头,这就是 mysql 的命令操作界面了。

下面设置 Mysql 中的 root 用户密码了,否则,Mysql 服务无安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

用 123456 做为 root 用户的密码,应该是非常愚蠢的,如果在真正的项目中,最好别这样做,要用大小写字母与数字混合的密码,且不少于 8 位。

以后如果在登录数据库,就可以用刚才设置的密码了。

运行

安装之后,就要运行它,并操作这个数据库。

$ mysql -u root -p
Enter password: 

输入数据库的密码,之后出现:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 373
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

看到这个界面内容,就说明你已经进入到数据里面了。接下来就可以对这个数据进行操作。例如:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| carstore           |
| cutvideo           |
| itdiffer           |
| mysql              |
| performance_schema |
| test               |
+--------------------+

用这个命令,就列出了当前已经有的数据库。

对数据库的操作,除了用命令之外,还可以使用一些可视化工具。比如 phpmyadmin 就是不错的。

更多数据库操作的知识,这里就不介绍了,读者可以参考有关书籍。

MySQL 数据库已经安装好,但是 Python 还不能操作它,还要继续安装 Python 操作数据库的模块——Python-MySQLdb

二、安装 Python-MySQLdb

Python-MySQLdb 是一个接口程序,Python 通过它对 mysql 数据实现各种操作。

在编程中,会遇到很多类似的接口程序,通过接口程序对另外一个对象进行操作。接口程序就好比钥匙,如果要开锁,人直接用手指去捅,肯定是不行的,那么必须借助工具,插入到锁孔中,把锁打开,之后,门开了,就可以操作门里面的东西了。那么打开锁的工具就是接口程序。谁都知道,用对应的钥匙开锁是最好的,如果用别的工具(比如锤子),或许不便利(其实还分人,也就是人开锁的水平,如果是江洋大盗或者小毛贼什么的,擅长开锁,用别的工具也便利了),也就是接口程序不同,编码水平不同,都是考虑因素。

啰嗦这么多,一言蔽之,Python-MySQLdb 就是打开 MySQL 数据库的钥匙。

如果要源码安装,可以这里下载 Python-mysqldb:https://pypi.Python.org/pypi/MySQL-Python/

下载之后就可以安装了。

ubuntu 下可以这么做:

sudo apt-get install build-essential Python-dev libmysqlclient-dev
sudo apt-get install Python-MySQLdb

也可以用 pip 来安装:

pip install mysql-Python

安装之后,在 python 交互模式下:

>>> import MySQLdb 

如果不报错,恭喜你,已经安装好了。如果报错,恭喜你,可以借着错误信息提高自己的计算机水平了,请求助于 google 大神。

三、连接数据库

要先找到老婆,才能谈如何养育自己的孩子,同理连接数据库之先要建立数据库。

$ mysql -u root -p
Enter password:                             

进入到数据库操作界面:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 373
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

输入如下命令,建立一个数据库:

mysql> create database qiwsirtest character set utf8;
Query OK, 1 row affected (0.00 sec)

注意上面的指令,如果仅仅输入:create database qiwsirtest,也可以,但是,我在后面增加了 character set utf8,意思是所建立的数据库 qiwsirtest,编码是 utf-8 的,这样存入汉字就不是乱码了。

看到那一行提示:Query OK, 1 row affected (0.00 sec),就说明这个数据库已经建立好了,名字叫做:qiwsirtest

数据库建立之后,就可以用 Python 通过已经安装的 mysqldb 来连接这个名字叫做 qiwsirtest 的库了。

>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",port=3306,charset="utf8")

逐个解释上述命令的含义:

  • host:等号的后面应该填写 mysql 数据库的地址,因为就数据库就在本机上(也称作本地),所以使用 localhost,注意引号。如果在其它的服务器上,这里应该填写 ip 地址。一般中小型的网站,数据库和程序都是在同一台服务器(计算机)上,就使用 localhost 了。
  • user:登录数据库的用户名,这里一般填写"root",还是要注意引号。当然,如果读者命名了别的用户名,数据库管理者提供了专有用户名,就更改为相应用户。但是,不同用户的权限可能不同,所以,在程序中,如果要操作数据库,还要注意所拥有的权限。在这里用 root,就放心了,什么权限都有啦。不过,这样做,在大型系统中是应该避免的。
  • passwd:上述 user 账户对应的登录 mysql 的密码。我在上面的例子中用的密码是"123123"。不要忘记引号。
  • db:就是刚刚通 create 命令建立的数据库,我建立的数据库名字是"qiwsirtest",还是要注意引号。看官如果建立的数据库名字不是这个,就写自己所建数据库名字。
  • port:一般情况,mysql 的默认端口是 3306,当 mysql 被安装到服务器之后,为了能够允许网络访问,服务器(计算机)要提供一个访问端口给它。
  • charset:这个设置,在很多教程中都不写,结果在真正进行数据存储的时候,发现有乱码。这里我将 qiwsirtest 这个数据库的编码设置为 utf-8 格式,这样就允许存入汉字而无乱码了。注意,在 mysql 设置中,utf-8 写成 utf8,没有中间的横线。但是在 Python 文件开头和其它地方设置编码格式的时候,要写成 utf-8。切记!

注:connect 中的 host、user、passwd 等可以不写,只有在写的时候按照 host、user、passwd、db (可以不写)、port 顺序写就可以,端口号 port=3306 还是不要省略的为好,如果没有 db 在 port 前面,直接写 3306 会报错.

其实,关于 connect 的参数还不少,下面摘抄来自mysqldb 官方文档的内容,把所有的参数都列出来,还有相关说明,请看官认真阅读。不过,上面几个是常用的,其它的看情况使用。

猜你喜欢

转载自blog.csdn.net/weixin_37805635/article/details/86216554