2013-06-12 104 views
2

我試圖將GRANT ACCESS設置爲MySQL服務器用戶。授予批量文件訪問MySQL用戶的權限

我已經寫了下面的mybatch.bat命令:

@echo off 

cd/
c: 

set mysql_cmd = "GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'192.168.1.%' IDENTIFIED BY '123abc' WITH GRANT OPTION;" 

mysql --user=root --password=mysql --database=mysql -e %mysql_cmd% 

pause 

mybatch.bat輸出是:

mysql: option '-e' requires an argument 

我到底做錯了什麼?

+0

1)基本調試:在'mysql ...'之前添加'echo'。 2)每個驅動器號有一個不同的工作目錄。 'cd'需要在*'c:'之後*。 –

回答

3

這是有道理的,因爲它僅配置不需要數據庫運行設置。

  ->Creating a Service 
      ->Creating/Modifying a my.ini file 
      ->Configuring a Windows Firewall Exception 
      ->Adding the install dir to the path Environment variable 

但是,您可以使用mysql.exe命令行工具在您的實例啓動並運行後編寫腳本:

usefollowing command 

mysql.exe -u root -pm117988 -e "GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'm117988' WITH GRANT OPTION; FLUSH PRIVILEGES;" 
+0

對不起有什麼用? – RandomSeed

+0

@Venkatasubbaiah Gonepudi.Yes這是工作。非常感謝您 –

+0

請注意,您允許此用戶從*任何*位置連接。 – RandomSeed

2

%mysql_cmd%在雙引號

+0

謝謝。錯誤不再顯示,但它不起作用。我的意思是當我想從'192.168.1.5'連接到'myuser'時,說'HOST 192.168.1.5不允許連接到這個MySQL服務器'。但是,當我試圖執行'GRANT ACCESS'命令到'MySQL命令行'時,它工作正常。這很奇怪! –

+0

當我嘗試@VenkatasubbaiahGonepudi命令它工作正常!我猜這是因爲FLUSH PRIVILEGES結束了。 –

+0

我相信你的用戶已經按照指定的方式創建(檢查'SELECT用戶,主機從mysql.user'),但你的服務器可能不會聽(右)網絡(接口)。檢查'bind-address'設置。 – RandomSeed