踩坑一
django settings中配置完數(shù)據(jù)庫連接參數(shù)座舍,安裝 pymysql 后曲秉,并在 ini 文件下寫配置后,創(chuàng)建測試用數(shù)據(jù)表報錯
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED' at line 1")
- 解決辦法: 再確認(rèn)數(shù)據(jù)庫配置參數(shù)配置無誤后,這個報錯的原因是mysql版本問題榆鼠,由于我用的默認(rèn)yum 安裝的mysql 數(shù)據(jù)庫矢洲,版本為 5.1 而 django 2.1 不再支持 5.5 及以下版本缩焦,所以將 5.1 版本卸載安裝mysql5.6。
踩坑二
安裝好mysql盖桥,登錄時報錯
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- 解決辦法mysql 5.6.8 以后root 用戶不在是空密碼,mysql會給root賬號隨機(jī)分配一個密碼,安裝MySQL后,root的這個隨機(jī)密碼會寫在文件 .mysql_secret中,但這個密碼不能做任何事情题翻,只能登錄。然后必須更改密碼才能正常使用塑荒。
但是由于我沒有找到這個文件所以也可以采取更簡單粗暴的方法直接修改root密碼
1.停止mysql數(shù)據(jù)庫:systemctl stop mysqld
2.用以下命令啟動MySQL姜挺,以不檢查權(quán)限的方式啟動:
mysqld --skip-grant-tables &
此時又報了一個錯誤:2018-02-01T02:52:55.093724Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
執(zhí)行命令:mysqld --user=root --skip-grant-tables &
3.登錄mysql:mysql -uroot或mysql
4.更新root密碼
mysql5.7以下版本:UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';
mysql5.7版本:UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root';
5.刷新權(quán)限:flush privileges;
6.退出mysql:exit或quit
7.使用root用戶重新登錄mysql
mysql -uroot -p
Enter password:<輸入新設(shè)的密碼123456>
---------------------
來源:CSDN
原文:https://blog.csdn.net/qq_32786873/article/details/79225039
踩坑三
mysql 配置完成后炊豪,創(chuàng)建了一個admin用戶并允許遠(yuǎn)程登陸數(shù)據(jù)庫,再次在django中創(chuàng)建測試表,發(fā)現(xiàn)依舊報錯
pymysql.err.OperationalError: (1045, "Access denied for user 'admin'@'localhost' (using password: YES)")
解決辦法:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 數(shù)據(jù)庫引擎
'NAME': 'mydb1', #數(shù)據(jù)庫名稱
'USER': 'admin', 換成 root # 鏈接數(shù)據(jù)庫的用戶名
'PASSWORD': '123.com', # 鏈接數(shù)據(jù)庫的密碼
'HOST': '127.0.0.1', # mysql服務(wù)器的域名和ip地址
'PORT': '3306', # mysql的一個端口號,默認(rèn)是3306
}
由于我代碼是在本地運(yùn)行,而我創(chuàng)建的admin只能在遠(yuǎn)程登陸操作數(shù)據(jù)庫牵舱,所以將登陸賬戶換成root 賬戶重新測試問題解決