ubuntupythonmysql
Ⅰ ubuntu下配置django+apache+mysql+mod_python+Python
檢查apache python相關配置,再重啟一下試試。
Ⅱ python怎麼連wind資料庫
先建立一個資料庫。
qw@qw-Latitude-E4300:~$ 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的庫了。進入到python交互模式(現在這個實驗室做實驗)。
>>> 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。切記!
Ⅲ 如何在virtualenv虛擬環境中安裝mysql-python
接觸過virtualenv後,想在這個虛擬環境中安裝獨立的開發環境。在安裝MySQLdb時遇到錯誤
pc 09:09:30
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 17, in <mole>
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config
EnvironmentError: mysql_config not found
在國內的網上找了好長時間也沒有找到辦法,大多數是講如何安裝mysql-python的。先說一下解決過程吧
我是在ubuntu14上安裝有virtualenv,在全局環境中安裝了mysql-server,安裝命令
sudo apt-get install mysql-server
後續過程都是在虛擬環境中進行的。我的是py3
開始找到要想使用mysql需要安裝libmysqlclient-dev
安裝過後在安裝mysql-python還是出錯
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ pip install mysql-python
Downloading/unpacking mysql-python
Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded
Running setup.py (path:/home/pc/work/VENV/py3/build/mysql-python/setup.py) egg_info for package mysql-python
Installing collected packages: mysql-python
Running setup.py install for mysql-python
building '_mysql' extension
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Complete output from command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7:
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
ing _mysql_exceptions.py -> build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/__init__.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/converters.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/connections.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/cursors.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/release.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/times.py -> build/lib.linux-i686-2.7/MySQLdb
creating build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CR.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/ER.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.7/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.7
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7 failed with error code 1 in /home/pc/work/VENV/py3/build/mysql-python
Storing debug log for failure in /home/pc/.pip/pip.log
看到如果沒有安裝python-dev,需要安裝這個就開始安裝
sudo apt-get install python-dev
此時在安裝mysql-python就可以了,所以安裝步驟是
1 安裝python-dev
sudo apt-get install python-dev
2 安裝 libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
3 安裝mysql-python
pip install mysql-python
最後進行驗證
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import MySQLdb
>>>
如果導入沒有問題就說明導入成功了。
Ⅳ ubuntu學習python安裝哪個mysql
在用Django時,資料庫如果選擇MySQL,那麼需要安裝MySQL-Python,以下是簡明安裝教程:
1. 到下載安裝包,截至筆者發稿,MySQL-python的版本為:MySQL-python-1.2.4b4.tar.gz。
2. 解壓,筆者解壓到了~/temp目錄下:
[plain] view plain
$ tar -zxvf MySQL-python-1.2.4b4.tar.gz -C ~/temp/
3. 在終端裡面執行以下命令:
[plain] view plain
$ mysql_config
如果提示未找到命令,則安裝終端提示你的包,如下:
則安裝:
[plain] view plain
$ sudo apt-get install libmysqlclient-dev
4. 我們打開MySQL-python-1.2.4b4目錄(步驟2中解壓得到的目錄)中的site.cfg文件,看到有這樣的說明:
意思就是說,如果mysql_config腳本不在PATH中,我們就解注釋下面的代碼,並修改這行代碼後面的路徑,以告知mysql_config腳本的位置;如果mysql_config這個腳本在PATH中,就不要改了,否則會出現一些匪夷所思的現象。遵旨!
5. 為了知曉我們到底用不用改site.cfg,再次嘗試在終端執行:
[plain] view plain
$ mysql_config
如果出現以下結果:
則說明mysql_config腳本在PATH中(或者說在MySQL-python過程中我它能找到mysql_config腳本),那麼我們就不用修改site.cfg;
如果未出現,則就按著步驟4所述修改site.cfg,可以在終端執行如下命令,來尋找mysql_config這個腳本的路徑:
[plain] view plain
$ find / -name mysql_config
得到mysql_config的路徑(應該很快,find命令據推測應該會先在PATH變數中的路徑尋找,出來第一條結果後適時終止執行即可),修改site.cfg。
6. 若MySQL是通過apt-get安裝的,那麼我們還要安裝python-dev包,來提供安裝過程中必須的Python.h這個頭文件:
[plain] view plain
$ sudo apt-get install python-dev
7. 准備工作終於做完了!現在趕緊去解壓得到的文件夾MySQL-python-1.2.4b4下,運行:
[plain] view plain
$ sudo python setup.py build
$ sudo python setup.py install
8. 測試一下,在python命令行中執行:
[plain] view plain
import MySQLdb
如果沒出現錯誤,說明我們成功安裝了MySQL-python。
附:Django中驗證某一項目成功連接MySQL的方法:
樣例settings.DATABASES:
[python] view plain
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db_name', # Or path to database file if using sqlite3.
'USER': 'your_MySQL_uname', # Not used with sqlite3.
'PASSWORD': 'your_pwd', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
在項目目錄通過以下命令啟動Python Shell:
[plain] view plain
$ python manage.py shell
註:以上命令是以正確配置啟動Shell的一種方法。
接著在Shell中輸入下列命令測試MySQL連接:
[python] view plain
>>>from django.db import connection
>>>c = connection.cursor()
如果沒有顯示什麼錯誤信息,那麼你的資料庫配置是正確的。
Ⅳ Python 訪問 MySQL 資料庫可以使用哪些第三方實現
MySQLdbMySQLdb是 Python 連接 MySQL 最流行的一個驅動,很多框架都也是基於此庫進行開發,遺憾的是它只支持 Python2.x,它是基於C開發的庫,和Windows 平台的兼容性不友好,現在基本不推薦使用,取代的是它的衍生版本。mysqlclient由於 MySQLdb 年久失修,後來出現了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同時支持 Python3.x,是 Django ORM的依賴工具,如果你想使用原生 SQL 來操作資料庫,那麼推薦此驅動。PyMySQLPyMySQL是純 Python 實現的驅動,速度上比不上 MySQLdb,最大的特點可能就是它的安裝方式沒那麼繁瑣,同時也兼容 MySQLdb。SQLAlchemySQLAlchemy是一種既支持原生 SQL,又支持 ORM 的工具,它非常接近 Java 中的 Hibernate 框架。有關Python訪問MySQL資料庫全部內容的學習,我都是通過黑馬程序員的視頻學的。看完之後立馬決定去培訓了。你可以搜搜,都是免費資源。黑馬視頻庫裡面搜索一下,找不到的話官網彈出來的對話框問一下就不會迷路了。
Ⅵ cp:cannot stat no such file or directory怎麼解決
no such file or directory 意思是: 沒用這樣的文件和文件夾。
解決方法:
1.查一下 文件名 和 路徑的 拼寫 有無錯誤。
2.cp 是 的意思 (linux/unix 文件復制 命令)。
Ⅶ Python 操作 MySQL 的5種方式
1、MySQLdb
# 前置條件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安裝
pip install MySQL-python
Windows 直接通過下載 exe 文件安裝
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
host = "localhost", # 主機名
user = "root", # 用戶名
passwd = "pythontab.com", # 密碼
db = "testdb") # 資料庫名稱
# 查詢前,必須先獲取游標
cur = db.cursor()
# 執行的都是原生SQL語句
cur.execute("SELECT * FROM mytable")
for row in cur.fetchall():
print(row[0])
db.close()
2、mysqlclient
# Windows安裝
pip install some-package.whl
# linux 前置條件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
3、PyMySQL
pip install PyMySQL
# 為了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
import pymysql
conn = pymysql.connect(host = 飗.0.0.1', user = 'root', passwd = "pythontab.com", db = 'testdb')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
print(r)
cur.close()
conn.close()
4、peewee
pip install peewee
import peewee
from peewee import *
db = MySQLDatabase('testdb', user = 'root', passwd = 'pythontab.com')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author = "pythontab", title = 'pythontab is good website')
book.save()
for book in Book.filter(author = "pythontab"):
print(book.title)
5、SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
__tablename__ = 'address'
id = Column(Integer, primary_key = True)
street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name = 'new person')
session.add(new_person)
session.commit()