2013-06-11 192 views
1

我需要安靜地配置MySQL服務器。MySQL服務器 - 安裝和配置Slillyly

對於這一點,我創建了一個批處理文件:

echo Installing MySQL Server. Please wait... 

msiexec /i "mysql-5.5.32-winx64.msi" /qn 

echo Configurating MySQL Server... 

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqlinstanceconfig.exe" -i -q ServiceName=MySQL RootPassword=mysql ServerType=DEVELOPER DatabaseType=MYISAM Port=3306 Charset=utf8 

echo Installation was successfully 

我需要安裝MySQL服務器,並允許其他客戶端通過經過Enable root access from remote machines連接服務器。

默認情況下,該選項被禁用。

你可以看到GUI配置在這裏:

enter image description here

因此,設置Checked如何該選項爲批處理文件?

+0

你爲什麼要允許遠程機器的root訪問權限?從安全角度來看,這是一個非常糟糕的選擇。如果您想要從遠程服務器進行根訪問,請強制它們進入到shell中,然後以root身份登錄。 –

+0

可能比真正的解決方案更像是「黑客」,但是不能只使用mysql/console從遠程機器執行GRANT ACCESS到root? – RelevantUsername

+0

@MikeBrant:我知道這是不安全的選擇。有四臺本地機器,我想在其中共享MySQL服務器。 –

回答

3

只是回答這個問題的問題,我應該說CHECK Enable root access from remote machines選項,你只需要將SkipNetworking=no添加到批處理文件配置行。

以上命令允許所有客戶端連接到root用戶,這不是一個明智的方式。

由於@MikeBrant在評論中表示,這是共享MySQL數據庫的最糟糕方式。

而不是不安全的方法,我們需要創建一個用戶,並GRANT ACCESS到,像這樣:

@echo off 
echo Installing MySQL Server. Please wait... 

msiexec /i "mysql-5.5.32-win32.msi" /qn 

echo Configurating MySQL Server... 

"%ProgramFiles%\MySQL\MySQL Server 5.5\bin\mysqlinstanceconfig.exe" -i -q ServiceName=MySQL RootPassword=mysql ServerType=DEVELOPER DatabaseType=MYISAM Port=3306 Charset=utf8 

echo MySQL has been installed successfully 

setx PATH "%%Program Files%\MySQL\MySQL Server 5.5\bin%;" 

cd/
c: 

mysql --user=root --password=mysql -e "CREATE USER 'myuser'@'localhost' IDENTIFIED BY '123456';" 
; 

mysql --user=root --password=mysql -e "GRANT ALL ON mydatabase.* TO 'myuser'@'192.168.0.%' IDENTIFIED BY '123abc' WITH GRANT OPTION; FLUSH PRIVILEGES;" 

好運

+0

這是給win7 64位錯誤,我假設它的programFiles路徑? – Smith

+0

是的。更改programFiles路徑 –