Używam Python 3.4 z dystrybucji Anaconda. W ramach tej dystrybucji znalazłem bibliotekę pymysql
, aby połączyć się z istniejącą bazą danych MySQL, która znajduje się na innym komputerze.Makiety baza danych MySQL w Pythonie
import pymysql
config = {
'user': 'my_user',
'passwd': 'my_passwd',
'host': 'my_host',
'port': my_port
}
try:
cnx = pymysql.connect(**config)
except pymysql.err.OperationalError :
sys.exit("Invalid Input: Wrong username/database or password")
Teraz chcę napisać kod testowy dla mojej aplikacji, w której chcesz utworzyć niewielką bazę danych na setUp
każdego przypadku testowego, najlepiej w pamięci. Jednak, gdy spróbuję tego spoza niebieskiego z pymysql
, nie może nawiązać połączenia.
def setUp(self):
config = {
'user': 'test_user',
'passwd': 'test_passwd',
'host': 'localhost'
}
cnx = pymysql.connect(**config)
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)")
I zostały googling wokół, i znaleźć kilka rzeczy o SQLite
i MySQLdb
. Mam następujące pytania:
- Is
sqlite3
lubMySQLdb
nadaje się do tworzenia szybko bazy danych w pamięci? - Jak zainstalować
MySQLdb
w pakiecie Anaconda? - Czy istnieje przykład testowej bazy danych utworzonej w
setUp
? Czy to nawet dobry pomysł?
Nie mam serwera MySQL działającego lokalnie na moim komputerze.
odpowiedź może okazać się dostać * * db mysql działa lokalnie. SQLite ma wiele różnic w stosunku do mysql, więc nie byłoby dobrym testem na zastąpienie mysql przez SQLite. –