我正在開發一個webapp的前端,我的合作開發人員正在使用Pyramid和SQAlchemy。我們剛剛從SQLite移到MySQL。我在OS X機器上安裝了MySQL 5.6.15(通過Homebrew),以使Python MySQLdb安裝正常工作(通過virtualenv中的pip)。如何通過SQLalchemy將secure_auth傳遞給MySQL登錄
因爲在MySQL> = 5.6.5中secure_auth
現在是ON
默認情況下,我只能連接到遠程數據庫(pre 5.6.5)與--skip-secure-auth
標誌,它在終端工作正常。但是,在Python Pyramid代碼中,似乎只可能將此標誌添加爲an argument to create_engine()
,但在我的共同開發者代碼中找不到create_engine()
,只有初始化配置文件中的連接字符串如下所示。他是不可用的,這不是我的專業領域,我們推出下週:(
sqlalchemy.url = mysql+mysqldb://gooddeeds:[email protected]/gooddeeds_development?charset=utf8
我已經試過各種附加到"secure auth" strings以上,但沒有成功。我是不是找錯了地方?有MySQLdb設置爲secure_auth
爲ON
,因爲我運行MySQL 5.6.15?如果是這樣,我該如何改變它?
你是否有MySQL服務器的確切錯誤信息?我不確定secure_auth與它有多大關係。如果您仍然在使用不安全的舊密碼(來自4.1之前),那麼您現在已經改變了這一點。 – geertjanvdk
這是衆所周知的「使用舊的(4.1.1版之前的)認證協議拒絕的連接...」,但是,我們無法對服務器上的MySQL進行更改。我*可以*使用--skip-secure-auth標誌登錄命令行,我承認這只是一個臨時解決方案。現在,我需要通過SQLAlchemy完成相同的操作。 –