pythonmysql異常
在使用tushare將數據存入MySQL時,可能會遇到文本欄位錯誤問題,具體錯誤信息為:不支持BLOB/TEXT作為主鍵和索引。若原程序沒有處理這個問題,可以嘗試修改代碼如下:
首先,需要明確指出錯誤原因在於默認情況下,pandas.DataFrame.to_sql函數對TEXT類型處理不當。為解決此問題,需在寫入資料庫時手動指定索引欄位與欄位類型。具體步驟為導入from sqlalchemy import VARCHAR,並在調用to_sql函數時,明確設置參數。
例如,修改後的代碼可以如下所示:
通過上述修改,可以成功避免BLOB/TEXT類型作為主鍵和索引的錯誤。但是,若仍遇到類似問題,建議查閱官方文檔或社區討論以獲取更多解決方案。
參考文獻:
大西洋暖流:pandas.DataFrame.to_sql寫入Mysql報錯1170
㈡ python 連接mysql資料庫報錯
編輯mysql配置文件my.ini(在MySQLServer的安裝目錄),在[mysqld]這個條目下加入 skip-grant-tables
保存退出後重啟mysql
1.點擊「開始」->「運行」(快捷鍵Win+R)。
2.啟動:輸入 net stop mysql
3.停止:輸入 net start mysql
這時候在cmd裡面輸入mysql -u root -p就可以不用密碼登錄了,出現password:的時候直接回車可以進入,不會出現ERROR 1045 (28000),但很多操作都會受限制,因為我們不能grant(沒有許可權)。按下面的流程走(紅色部分為輸入部分,綠色的是執行後顯示的代碼不用輸入):
1.進入mysql資料庫:
mysql> use mysql; Database changed
2.給root用戶設置新密碼,藍色部分自己輸入: mysql> update user set password=password("新密碼") where user="root"; Query OK, 1 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
3.刷新資料庫 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
4.退出mysql: mysql> quit Bye
改好之後,再修改一下my.ini這個文件,把我們剛才加入的"skip-grant-tables"這行刪除,保存退出再重啟mysql就可以了。
總結:猜測根本原因就是簡單的密碼輸入錯誤,通過以上方法我們可以不驗證密碼來連接上mysql,然後設置新密碼。