Python操作遠端資料庫

來源:互聯網
上載者:User

標籤:otto   ann   串連資料庫   color   margin   now()   second   set   分析   

我的項目要往資料庫中插入create_time和update_time,那就勢必要引用現在的系統時間,經過大量的尋找,終於發現往python是沒有對應時間datetime的相關萬用字元的,那麼我們要怎麼實現呢。

其實很簡單,我們只需要把datetime轉換成字串類型的就行

    def insertIntoChannel(self, user):              conn = JDBCUtils.getConnection()              cursor = conn.cursor()              dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")              cursor.execute("insert into user(id,age,name,create_time,update_time) \                            values(‘%d‘,‘%d‘,‘%s‘,‘%s‘,‘%s‘)" % \                             (user.getId(),user.getAge(), user.getName(),dt,dt))              cursor.close()              conn.commit()              conn.close()  

時間間隔

import timedef sleeptime(hour,min,sec):    return hour*3600 + min*60 + sec;second = sleeptime(0,0,20);while 1==1:    time.sleep(second);    print ‘do action‘#這是隔20秒執行一次;

另外操作遠端資料庫需要遠端資料庫對本地進行授權:

若沒有授權會出現以下提示

ERROR 1130: Host 192.168.3.100 is not allowed to connect to this MySQL server 

在本機登入mysql後,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從”localhost”改稱‘%‘。

mysql -u root -pmysql>use mysql;mysql>select ‘host‘ from user where user=‘root‘;mysql>update user set host = ‘%‘ where user =‘root‘;mysql>flush privileges;mysql>select ‘host‘   from user where user=‘root‘; 

第一句是以許可權使用者root登入

第二句:選擇mysql庫

第三句:查看mysql庫中的user表的host值(即可進行串連訪問的主機/IP名稱)

第四句:修改host值(以萬用字元%的內容增加主機/IP地址),當然也可以直接增加IP地址

第五句:重新整理MySQL的系統許可權相關表

第六句:再重新查看user表時,有修改。。

記得Mysql服務需要重新啟動(確保修改有效),否則可能修改的結果無法體現。

注意:修改過後本地root賬戶無法串連資料庫

phpMyAdmin 嘗試串連到 MySQL 伺服器,但伺服器拒絕串連。您應該檢查設定檔中的主機、使用者名稱和密碼,並確認這些資訊與 MySQL 伺服器管理員所給出的資訊一致。

仍然使用root賬戶登陸,密碼為空白。刪除root使用者再建立並授權。

mysql -u root -pdrop user ‘root‘@‘localhost‘create user ‘root‘@‘localhost‘ identified by ‘你的密碼‘;grant all privileges on *.* to [email protected]‘localhost‘;

另外:可以建立遠程登陸使用者並授權

grant all PRIVILEGES on test_db.* to [email protected]‘192.168.1.101‘  identified by ‘23455‘;flush privileges; 

all PRIVILEGES 表示賦予所有的許可權給指定使用者,這裡也可以替換為賦予某一具體的許可權,例如select,insert,update,delete,create,drop 等,具體許可權間用“,”半形逗號分隔。

test_db.* 表示上面的許可權是針對於哪個表的,test_db指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為“*.*”,對於某一資料庫的全部表授權為“資料庫名.*”,對於某一資料庫的某一表授權為“資料庫名.表名”。

root 表示你要給哪個使用者授權,這個使用者可以是存在的使用者,也可以是不存在的使用者。

192.168.1.101   表示允許遠端連線的 IP 位址,也就是你本地的ip地址。如果想不限制連結的 IP 則設定為“%”即可。

123456 為使用者的密碼。

ERROR : (2006, ‘MySQL server has gone away‘)

問題分析:client和MySQL server之間的連結斷開了。

造成這樣的原因一般是sql操作的時間過長,或者是傳送的資料太大(例如使用insert ... values的語句過長, 這種情況可以通過修改max_allowed_packed的配置參數來避免,也可以在程式中將資料分批插入)。

Python操作遠端資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.