pythonmysql報錯
Python連接mysql資料庫報錯
這里的意思是:資料庫連不上啊。
可能是網路問題,可能是防火牆問題,可能是3306埠沒開。你先排除這些問題吧。用一些mysql工具連接測試看,比如SQLyog 測試。
⑵ python向mysql中插入數據提示錯誤
答:資料庫本身是不支持字典類型的(已知的絕大多)
方法有兩種:
1、把字典或者json格式數據作為字元串(string)直接插入、讀取的時候再轉為字典。
2、為了避免某些字元、引號等轉義問題發生、可以使用base64編碼後導入資料庫、讀取時候再用base64解碼。
也可以試試這個:
sql="insertintoaccount·userdata(user、passwd)values(%s、%s)"cursor.execute(sql、(name、passwd-md5))試試這個,
或者:sql="insertintoaccunt.userdata(user.passwd)values(%s%s)"%(name、passwd-md5)
oursor.execute(sql)。
⑶ 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,然後設置新密碼。
⑷ python3.6執行pymysql報錯
折騰好半天的資料庫連接,由於之前未安裝 pip ,而且自己用的Python 版本為3.6. 只能用 pymysql 來連接資料庫,下邊 簡單介紹一下 連接的過程,以及簡單的增刪改查操作。
1.通過 pip 安裝 pymysql
進入 cmd 輸入 pip install pymysql
回車等待安裝完成;
安裝完成後出現如圖相關信息,表示安裝成功。
2.測試連接
import pymysql #導入 pymysql ,如果編譯未出錯,即表示 pymysql 安裝成功
簡單的增刪改查操作
示例表結構
2.1查詢操作
[python] view plain
import pymysql #導入 pymysql
#打開資料庫連接
db= pymysql.connect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法獲取操作游標
cur = db.cursor()
#1.查詢操作
# 編寫sql 查詢語句 user 對應我的表名
sql = "select * from user"
try:
cur.execute(sql) #執行sql語句
results = cur.fetchall() #獲取查詢的所有記錄
print("id","name","password")
#遍歷結果
for row in results :
id = row[0]
name = row[1]
password = row[2]
print(id,name,password)
except Exception as e:
raise e
finally:
db.close() #關閉連接
2.2插入操作
[python] view plain
import pymysql
#2.插入操作
db= pymysql.connect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法獲取操作游標
cur = db.cursor()
sql_insert ="""insert into user(id,username,password) values(4,'liu','1234')"""
try:
cur.execute(sql_insert)
#提交
db.commit()
except Exception as e:
#錯誤回滾
db.rollback()
finally:
db.close()
2.3更新操作
[python] view plain
import pymysql
#3.更新操作
db= pymysql.connect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法獲取操作游標
cur = db.cursor()
sql_update ="update user set username = '%s' where id = %d"
try:
cur.execute(sql_update % ("xiongda",3)) #像sql語句傳遞參數
#提交
db.commit()
except Exception as e:
#錯誤回滾
db.rollback()
finally:
db.close()
2.4刪除操作
[python] view plain
import pymysql
#4.刪除操作
db= pymysql.connect(host="localhost",user="root",
password="123456",db="test",port=3307)
# 使用cursor()方法獲取操作游標
cur = db.cursor()
sql_delete ="delete from user where id = %d"
try:
cur.execute(sql_delete % (3)) #像sql語句傳遞參數
#提交
db.commit()
except Exception as e:
#錯誤回滾
db.rollback()
finally:
db.close()