2012-03-09 4 views
-2

그래서 Sams를 설치하기위한 스크립트를 작성하기로 결정했습니다. 메인 애플리케이션 설치의 첫 번째 부분이 작성되었지만 데이터베이스 연결에 문제가있었습니다. 설치 지침에 MySQL이 있습니다. 다음 코드 :어떻게 mysql에 연결할 수 있습니까

1. mysql -u root -p (need pass MySQL) 
2. GRANT ALL ON squidctrl.* TO [email protected] IDENTIFIED BY "yourpassword"; 
3. GRANT ALL ON squidlog.* TO [email protected] IDENTIFIED BY "yourpassword"; (yourpassword – any wish pass) 

사용자가 스크립트 작성을 마친 후 누가 도움이 될 수 있는지 알아내는 데 도움이되었습니다. 이 문제

+0

시작 프로그램과의 상호 작용이 필요한 경우 하위 프로세스 모듈을 사용하십시오. 그러나이 경우 더 나은 것은 데이터베이스 라이브러리 중 일부만 사용하는 것입니다. – Adam

답변

0

해결에 도움이 모든 사람에게

#connect to the database mysql 
user=raw_input('Mysql username -> ') 
password=raw_input('Mysql password -> ') 
db=MySQLdb.Connect(host="localhost", user=user, passwd=password) 
cursor=db.cursor() 
pass_sams=raw_input("chose password for sams user -> ") 
cursor.execute('GRANT ALL ON squidctrl.* TO [email protected] IDENTIFIED BY "%s";' % pass_sams) 
cursor.execute('GRANT ALL ON squidlog.* TO [email protected] IDENTIFIED BY "%s";' % pass_sams) 
cursor.close() 

감사는 웹 사이트의 무리가이 라이브러리를 배울 수있는 온라인있다 this link here

읽어 보시기 바랍니다. 또한 this은 (는) 프로젝트의 공식 저장소입니다. 문서화 된 좋은 인터페이스가 있으면 파이썬으로 모든 것을 할 수있는 시스템 명령어를 호출 할 필요가 없다.

1

파이썬에서 MySQL에 액세스하려면 os.system을 사용해서는 안된다.

사실, os.system으로 서브 프로세스를 호출하면 안됩니다. subprocess 모듈이 설계된 것입니다. (그리고 당신 그러면 하위 프로세스와 통신 할 수 있습니다.)

실제로 수행해야 할 작업은 MySQLdb 모듈을 사용하는 것입니다 (apt를 사용하여 python-mysqldb 패킷을 통해 설치할 수 있어야합니다). 여기 당신이 그것을 사용하는 거라고 방법은 다음과 같습니다

import MySQLdb 
db = MySQLdb.connect(username='sams', password='yourpassword', db='mydb') 
cursor = db.cusor() 
cursor.execute('YOUR SQL GOES HERE') 
data = cursor.fetchall() #Or cursor.fetchone() for a single row. 

을 지금, 당신은 대체 OurSQL를 사용하거나 심지어 SQL Alchemy 등의 ORM 사용을 고려할 수 있습니다.

+0

위의 나열된 명령이 터미널에 입력되었지만 내가 모르는 스크립팅 언어로 옮겨 감에 따라 함수를 자세하게 작성할 수 있습니까? – nosensus

+0

미안하지만, 나는 당신이 의미하는 것을 정말로 얻지 못합니다. MySQLdb는 꽤 직설적입니다. 데이터베이스에 연결하고 잡아서 커서를 켠 다음 SQL을 실행하십시오. –

+0

나는 나의 목적을 설명하려고 노력할 것이다 – nosensus

0

어쩌면 당신이보고 싶어 : http://docs.sqlalchemy.org/en/latest/dialects/mysql.html

SQLAlchemy의는 ORM이며, 그것은 아주 간단합니다, 또한 만약 당신이 PostgreSQL의 엔진 MySQL에서 변경할 미래에, 데이터베이스와 많은에게 작업을 단순화, 코드를 다시 작성할 필요가 없습니다.

관련 문제