2013-09-24 58 views
1

我剛剛在Mac OSX上安裝了mysql,並且可以在shell中輕鬆打開它並獲得對它隨附的數據庫和表的訪問權限。mysql設置用戶名和密碼

現在我想用mysql連接器/蟒蛇

這樣做,我想這將是明智的設置MySQL中的用戶名和密碼之前,在Python中創建一個數據庫。

我已經嘗試使用以下但獲取錯誤消息。 我的目標是設置用戶名和密碼,以便我可以簡單地將它提供給python的mysql-connector,並最終從python環境執行sql查詢。這裏是我在mysql命令提示符下嘗試的:

設置密碼'root'@'localhost'=密碼('newpwd');

而我得到的錯誤信息:

ERROR 1044(42000):拒絕訪問用戶 '' @ 'localhost' 的數據庫 'mysql的'

所以我嘗試了更新方法:

UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User ='root';

,我得到的錯誤信息:

ERROR 1142(42000):UPDATE命令拒絕用戶 '' @ 'localhost' 的表 '用戶'

因此,沒有人知道爲什麼我被拒絕,我如何進行更改以創建一個用戶和一個密碼,我最終可以在python環境中使用mysql連接?

回答

1

聽起來像你沒有正確的身份驗證。請確保您擁有root用戶

Access denied for user ''@'localhost' to database 'mysql' 認證應該像

Access denied for user 'root'@'localhost' to database 'mysql' 

否則你是不是以root的身份,而是作爲一個匿名用戶。

Ofc,當你用root登錄時,你不會得到那個消息,但你會得到它的任何用戶名沒有適當的權利。

與認證開始查詢

mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME 

例如:

mysql --port=3307 --host=127.0.0.1 -u root --password=thisismypass test -e "LOAD DATA LOW_PRIORITY LOCAL INFILE '%pathuser%' INTO TABLE `user_log`...." 
你的情況可能

mysql -u root "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');"