CentOS Python 安装MySQL-python

一。安装mysql

yum list | grep mysql

>>yum install -y mysql-server mysql mysql-devel

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件。须要去官网上下载

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

安装成功之后重新启动mysql服务

service mysqld restart

设置开机启动

chkconfig mysqld on

初次安装mysql是root账户是没有password的

设置password的方法

# mysql -uroot

mysql> set password for ‘root’@‘localhost’ = password(‘mypasswd‘);

mysql> exit

二,安装MySQL-python

要想使python能够操作mysql 就须要MySQL-python驱动,它是python 操作mysql不可缺少的模块。

wget
http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

tar
zxvf MySQL-python-1.2.3.tar.gz

cd
MySQL-python-1.2.3

$ python setup.py build

$ python setup.py install

三。測试

測试很easy,检查MySQLdb 模块能否够正常导入。

[email protected]:~/pyse$ python
Python 2.7.4 (default, Sep 26 2013, 03:20:56)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb

没有报错提示MySQLdb模块找不到,说明安装OK 。以下開始使用python 操作数据库之前。我们有必要来回想一下mysql的基本操作:

第一次设置rootpassword能够使用下面命令:

1 mysqladmin
-u root password NEWPASSWORD

假设你已经设置过password了。须要要下面命令:

1 mysqladmin
-u root -p
‘oldpassword‘ password
newpass

比方说,旧password是“12345”。新password是“nowamagic”。运行下面命令:

view
source

print?

1 mysqladmin
-u root -p
‘12345‘ password ‘nowamagic‘

四。mysql 的基本操作

$ mysql -u root -p  (有password时)

$ mysql -u root     (无password时)

mysql> show databases;  // 查看当前全部的数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| csvt               |
| csvt04             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.18 sec)

mysql> use test;   //作用与test数据库
Database changed
mysql> show tables;   //查看test库以下的表
Empty set (0.00 sec)

//创建user表,name 和password 两个字段
mysql> CREATE  TABLE  user (name VARCHAR(20),password VARCHAR(20));  Query OK, 0 rows affected (0.27 sec)

//向user表内插入若干条数据
mysql> insert into user values(‘Tom‘,‘1321‘);
Query OK, 1 row affected (0.05 sec)

mysql> insert into user values(‘Alen‘,‘7875‘);
Query OK, 1 row affected (0.08 sec)

mysql> insert into user values(‘Jack‘,‘7455‘);
Query OK, 1 row affected (0.04 sec)

//查看user表的数据
mysql> select * from user;
+------+----------+
| name | password |
+------+----------+
| Tom  | 1321     |
| Alen | 7875     |
| Jack | 7455     |
+------+----------+
3 rows in set (0.01 sec)

//删除name 等于Jack的数据
mysql> delete from user where name = ‘Jack‘;
Query OK, 1 rows affected (0.06 sec)

//改动name等于Alen 的password 为 1111
mysql> update user set password=‘1111‘ where name = ‘Alen‘;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

//查看表内容
mysql> select * from user;
+--------+----------+
| name   | password |
+--------+----------+
| Tom    | 1321     |
| Alen   | 1111     |
+--------+----------+
3 rows in set (0.00 sec)

五。python 操作mysql数据库基础

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
        host=‘localhost‘,
        port = 3306,
        user=‘root‘,
        passwd=‘123456‘,
        db =‘test‘,
        )
cur = conn.cursor()

#创建数据表
#cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#插入一条数据
#cur.execute("insert into student values(‘2‘,‘Tom‘,‘3 year 2 class‘,‘9‘)")

#改动查询条件的数据
#cur.execute("update student set class=‘3 year 1 class‘ where name = ‘Tom‘")

#删除查询条件的数据
#cur.execute("delete from student where age=‘9‘")

cur.close()
conn.commit()
conn.close()

>>> conn = MySQLdb.connect(host=‘localhost‘,port = 3306,user=‘root‘, passwd=‘123456‘,db =‘test‘,)

Connect() 方法用于创建数据库的连接,里面能够指定參数:username,password,主机等信息。

这仅仅是连接到了数据库,要想操作数据库须要创建游标。

>>> cur = conn.cursor()

通过获取到的数据库连接conn下的cursor()方法来创建游标。

>>> cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

通过游标cur 操作execute()方法能够写入纯sql语句。

通过execute()方法中写如sql语句来对数据进行操作。

>>>cur.close()

cur.close() 关闭游标

>>>conn.commit()

conn.commit()方法在提交事物,在向数据库插入一条数据时必需要有这种方法,否则数据不会被真正的插入。

>>>conn.close()

Conn.close()关闭数据库连接

六,插入数据

通过上面execute()方法中写入纯的sql语句来插入数据并不方便。如:

>>>cur.execute("insert into student values(‘2‘,‘Tom‘,‘3 year 2 class‘,‘9‘)")

我要想插入新的数据,必需要对这条语句中的值做改动。

我们能够做例如以下改动:

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
        host=‘localhost‘,
        port = 3306,
        user=‘root‘,
        passwd=‘123456‘,
        db =‘test‘,
        )
cur = conn.cursor()

#插入一条数据
sqli="insert into student values(%s,%s,%s,%s)"
cur.execute(sqli,(‘3‘,‘Huhu‘,‘2 year 1 class‘,‘7‘))

cur.close()
conn.commit()
conn.close()

假如要一次向数据表中插入多条值呢?

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
        host=‘localhost‘,
        port = 3306,
        user=‘root‘,
        passwd=‘123456‘,
        db =‘test‘,
        )
cur = conn.cursor()

#一次插入多条记录
sqli="insert into student values(%s,%s,%s,%s)"
cur.executemany(sqli,[
    (‘3‘,‘Tom‘,‘1 year 1 class‘,‘6‘),
    (‘3‘,‘Jack‘,‘2 year 1 class‘,‘7‘),
    (‘3‘,‘Yaheng‘,‘2 year 2 class‘,‘7‘),
    ])

cur.close()
conn.commit()
conn.close()

executemany()方法能够一次插入多条值,运行单挑sql语句,可是反复运行參数列表里的參数,返回值为受影响的行数。

七。查询数据

或许你已经尝试了在python中通过

>>>cur.execute("select * from student")

来查询数据表中的数据。但它并没有把表中的数据打印出来,有些失望。

来看看这条语句获得的是什么

>>>aa=cur.execute("select * from student")

>>>print aa

5

它获得的仅仅是我们的表中有多少条数据。

那如何才干获得表中的数据呢?进入python shell

>>> import MySQLdb
>>> conn = MySQLdb.connect(host=‘localhost‘,port = 3306,user=‘root‘,    passwd=‘123456‘,db =‘test‘,)
>>> cur = conn.cursor()
>>> cur.execute("select * from student")
5L
>>> cur.fetchone()
(1L, ‘Alen‘, ‘1 year 2 class‘, ‘6‘)
>>> cur.fetchone()
(3L, ‘Huhu‘, ‘2 year 1 class‘, ‘7‘)
>>> cur.fetchone()
(3L, ‘Tom‘, ‘1 year 1 class‘, ‘6‘)
...
>>>cur.scroll(0,‘absolute‘) 

  fetchone()方法能够帮助我们获得表中的数据。但是每次运行cur.fetchone() 获得的数据都不一样。换句话说我没运行一次,游标会从表中的第一条数据移动到下一条数据的位置,所以。我再次运行的时候得到的是第二条数据。

  scroll(0,‘absolute‘) 方法能够将游标定位到表中的第一条数据。

还是没解决我们想要的结果,怎样获得表中的多条数据并打印出来呢?

#coding=utf-8
import MySQLdb

conn= MySQLdb.connect(
        host=‘localhost‘,
        port = 3306,
        user=‘root‘,
        passwd=‘123456‘,
        db =‘test‘,
        )
cur = conn.cursor()

#获得表中有多少条数据
aa=cur.execute("select * from student")
print aa

#打印表中的多少数据
info = cur.fetchmany(aa)
for ii in info:
    print ii
cur.close()
conn.commit()
conn.close()

  通过之前的print aa 我们知道当前的表中有5条数据,fetchmany()方法能够获得多条数据。但须要指定数据的条数,通过一个for循环就能够把多条数据打印出啦!运行结果例如以下:

5
(1L, ‘Alen‘, ‘1 year 2 class‘, ‘6‘)
(3L, ‘Huhu‘, ‘2 year 1 class‘, ‘7‘)
(3L, ‘Tom‘, ‘1 year 1 class‘, ‘6‘)
(3L, ‘Jack‘, ‘2 year 1 class‘, ‘7‘)
(3L, ‘Yaheng‘, ‘2 year 2 class‘, ‘7‘)
[Finished in 0.1s]

时间: 2024-10-07 00:52:43

CentOS Python 安装MySQL-python的相关文章

python 安装mysql驱动

python 安装mysql驱动遇到的问题: cmd运行pip install mysqlclient 报 module 'pip' has no attribute 'pep425tags'错误: 即无法cmd通过pip install mysqlclient安装,可能原因是与python版本不符合,即可通过 查看pip支持的哪些符号,运行如下命令: amd64:cpu是x64的,(注意并不是指操作系统是64位的) import pip._internal print(pip._interna

CentOS 7 安装MySQL 5.6遇到问题及解决方案

centos下安装mysql真的没有想象中那么容易,在这里我总结一下遇到的问题 1. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 出现这种问题一般是MySQL-server没有安装成功,可以通过yum install MySQL-server-5.6.25-1.el7.x86_64.rpm重新安装 2. Fatal error: Can

在centOS 7安装mysql 5.7。

参考官方文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 首先创建一个repo文件 vim /etc/yum.repos.d/mysql-community.repo 然后根据官方文档写入: 比如在centOS 7安装mysql 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-

在Linux(CentOS)上安装MySql详细记录

前记:  毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+Tomcat(或其他容器)+Mysql这套之前没用用过.所以利用这周末的我在阿里云上49元搞了个linux(centos 64位)的服务器. 刚开始先装了JDK1.6,安装了Tomcat6.0.这过程中没有遇到太大的问题, 小问题也google一下就解决了.而周六晚上开始安装Mysql,于是到今天下午为

CentOS 7 安装 MySQL Database

CentOS 7 安装 MySQL Database 1. 现在安装包,MySQL的安装包被分成了社区版和企业版,而本文将记录社区版本MySQL安装过程,下载MySQL版本如下: mysql-5.7.16-linux-glibc2.5-x86_64.tar 解压该压缩包后会得到如下两个压缩包(好麻烦...) mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz mysql-test-5.7.16-linux-glibc2.5-x86_64.tar.gz 这里我们只需

centos 编译安装mysql

centos 编译安装mysql,请看附件

Centos 7 安装mysql后出现 ERROR 2002 (HY000)解决方案

Centos 7 安装mysql后出现 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 切换成root, systemctl start mariadb.service systemctl enable mariadb.service

Centos下安装mysql 总结

一.MySQL安装 Centos下安装mysql 请点开:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html 二.MySQL的几个重要目录 MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习. 下面就介绍一下这几个目录.

CentOS 6 安装MySQL后的root密码

在CentOS 6 安装MySQL 很简单 yum install mysql-server 安装完成后尝试登录MySQL 却不成功,用空密码和系统root密码都不成 mysql -u root -p 原来,在安装完成后,还需要使用mysql_secure_installation 设置root密码和其他安全设置 shell> mysql_secure_installation

CentOS 7 安装 MySQL 5.7.23

阿里云服务器 CentOS 7 安装 MySQL 5.7.23 . 一.准备工作 1.MySQL 官网下载 MySQL 5.7.23 :mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 2.检查是否已经安装过 MySQL : $> rpm -qa | grep mysql 如果已经安装过其他版本的 MySQL,使用以下命令卸载:$> rpm -e 已经存在的MySQL全名 3.添加用户组,用专门管理mysql,提高安全 (非必须,可以跳过 ) $> g