windows7手動配置MariaDB

1、  從MariaDB的網站下載Windows安裝包。安裝包有兩種版本,.msi格式的和.zip格式的。Msi格式的就是我們常見的雙擊之後彈出界面進行安裝和配置的版本,而zip格式的是下載之後直接解壓縮要指定的目錄,然後手動修改配置文件的安裝方式。前者相對比較傻瓜式,後者比較複雜。爲了學到真的東西,今天我們就研究一下zip格式的安裝方式。

2、  將下載後的安裝文件壓縮到不含中文的路徑下,我直接解壓到了E:盤。雙擊進入解壓縮後的文件夾,如下:

3、  編寫安裝和卸載服務的.bat文件

創建一個批處理文件  install.bat 用於將 MariaDB 安裝爲服務

::指定創建服務的程序 

@set mysql_service="E:\mariadb-10.2.14-winx64\bin\mysqld.exe" 

::設置服務名 

@set service_name="MariaDB.10" 

 

::開始安裝Mariadb服務 

%mysql_service% --install %service_name%--defaults-file="E:\mariadb-10.2.14-winx64\my-medium.ini" 

 

pause 

順便再創建一個移除服務的批處理 uninstall.bat

@setmysql_service="E:\mariadb-10.2.14-winx64\bin\mysqld" 

@set service_name="MariaDB.10" 

 

:: 卸載服務 

%mysql_service% --remove %service_name% 

 

pause

E:\mariadb-10.2.14-winx64目錄內有幾個 ini 文件,這裏使用 my-medium.ini 作爲服務端的配置(在之前install.bat文件的%mysql_service% --install %service_name%--defaults-file="E:\mariadb-10.2.14-winx64\my-medium.ini" 最後指定的),根據需求的不同,還可以選擇 my-small.ini 輕量化配置,或者 my-large.ini以強化性能。

4、執行安裝。批處理創建好以後,直接(如果是win7之後的系統,以管理員身份)運行 install.bat,出現這個則表示安裝成功,MariaDB已經成功註冊爲了windows服務,並且是開機自動啓動的哦。不過安裝成功這次還沒有自動啓動,需要手動啓動一下

否則請根據錯誤提示查找相關出錯的原因並解決:比如下載的安裝包版本不適用於當前操作系統,在比如。bat文件內的路徑沒有修改正確,導致報“無法找到文件”的錯誤等。

5、啓動數據庫服務。

進入windows服務管理,找到MariaDB.10服務項,右鍵啓動,啓動成功就OK了

6、實際上,到此,都不必對 MariaDB 進行任何配置,Windows 就算安裝成功了。維護的話,目前MariaDB和 MySQL 的維護命令完全一樣。

7、設置環境變量。我的電腦右鍵-》屬性-》高級系統設置-》高級-》環境變量-》雙擊下方“系統變量(S)”-》變量值輸入框內將原有內容的最後添加一個英文分號(如果沒有的話)。然後將MariaDB的bin目錄絕對路徑(E:\mariadb-10.2.14-win32\bin)追加到現有內容的後邊。

 

設置環境變量的主要目的是在命令行模式下,無論當前處於什麼目錄下,都可以直接輸入mysql命令進行維護,否則有可能系統會提示“mysql不是內部或者外部命令”的錯誤。

8、打開windows命令行,輸入mysql –u root –p,回車,用root用戶登錄數據庫。系統要求輸入密碼,默認爲空,直接回車就行。

9、修改默認字符集。首先確認一下當前數據庫採用的字符集是什麼。分別執行以下兩個語句:

SHOW VARIABLES LIKE 'character%';

show variables like 'collation%';

最後的分號一定不能丟掉,否則回車之後命令行中只輸出一個->,絕對整蒙你。

執行結果如下

可以看到系統的字符集大部分都不是uft8格式的,默認是 gbk 和拉丁字符集,這種情況可能會造成外部訪問數據亂碼的問題。另外對於utf8格式來說有utf8和utf8mb4兩種不同的集合。我們設置成utf8mb4.具體設置是:打開配置文件 my-medium.ini,找到下面相應的節點,添加相應的內容

 

[client] 

default-character-set=utf8mb4 

 

[mysqld] 

character-set-client-handshake = false 

character_set_server = utf8mb4 

character_set_filesystem = binary 

character_set_client = utf8mb4 

collation_server = utf8mb4_unicode_ci 

init_connect='SET NAMES utf8mb4' 

 

[mysqldump] 

character_set_client=utf8mb 

 

[mysql] 

default-character-set=utf8mb4

保存後,進入windows服務管理,重啓 MariaDB 服務端,查看環境。


現在可以正確處理中文了。

這裏要解釋一下 utf8mb4 和 utf8 的區別,MySQL或者 MariaDB 都支持 utf8,但早期的 utf8 爲了在性能上取得平衡,其 utf8 只有 3 個字節,並非標準的 4 字節,如果繼續使用 3 字節非標準的 utf8,那麼移動設備上的很多符號將無法正常顯示,且還會導致執行 SQL 時異常,所以新版本的 MySQL 和 MariaDB 引入新的編碼格式 utf8mb4 真正支持標準的 UTF-8。不過呢 utf8mb4 是utf8 的超集,完全兼容utf8。所以以後應該避免在MariaDB 或者 MySQL 中 使用 utf8 而應該選擇 utf8mb4 確保更高的兼容性。

10、賬號維護,修改管理員用戶root的密碼

在命令行中,用root用戶成功登陸之後,分別執行下面兩句話,將root密碼修改爲P@ssword

use mysql;

UPDATE user SET password=password('P@ssword') WHEREuser='root';

注意:第一句話必須要,因爲在mysql中如果不指定數據庫的話,即使在sql語句的表名前面加上庫名,語句執行時也會報錯。

11、設置root用戶可以在其它機器的MariaDB環境中登錄當前MariaDB環境。比如從 10.0.0.2 IP 訪問10.0.0.13上面的MariaDB庫,並可以指定當root用戶在10.0.0.2上訪問時的密碼,這個密碼可與root用戶在10.0.0.13上直接登錄的密碼有所不同。做法是在MariaDB中分別執行下面兩個語句即可。

grant all privileges on *.* to'root'@'10.0.0.2' identified by '123456' with grant option;   //賦予[email protected]這個賬戶所有的操作權限

flush privileges;//刷新權限


當然,如果覺得一個ip一個ip授權給root用戶太麻煩,也可以將上面語句中的IP地址直接換成%,代表允許root用戶在任何一臺裝了MariaDB環境的機器上遠程登錄這臺記錄的MariaDB數據庫。

12、在數據庫的操作中,爲了安全,經常需要修改用戶的密碼。密碼修改操作方式有:

修改密碼方法:

 1,基本方法(所有用戶都可以操作,操作的結果是修改了自己的密碼。password('newpassword')代表修改爲加密後的字符串)
mysql>set password =password('newpassword');
mysql>flush privileges;

2
,使用 grant 語句 修改某個用戶在某臺機器上的MariaDB中(如root@localhost,代表root用戶直接在當前機器上登錄)登錄當前MariaDB庫的密碼的方法,
mysql>grant all on *.* to 'root'@'localhost' identified by 'newpassword'with grant option;
mysql>flush privileges;

修改方法3,修改某個用戶在某臺(或者全部)機器上訪問某個具體數據庫時的身份驗證口令(即密碼)
mysql>grant all on mysql.* to root@'%' identified by '123456';
mysql>flush privileges;
設置 root 密碼爲 123456;

備註:root用戶可以按照需要修改任何用戶的密碼。


本文的操作過程主要參考:https://blog.csdn.net/joyous/article/details/78641361。在此表示嚴重感謝。

不過文中通過mysqladmin命令修改root用戶的語句我怎麼執行mysql都提示錯誤,如果有知道的大俠歡迎指教。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章