Windows Server 2012安裝mysql5.7.24記錄
系統環境:
一、下載mysql5.7.24安裝包
地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下載解壓到相應的目錄,我的路徑是C:\mysql-5.7.24-winx64
二、安裝系統運行庫依賴vcredist_x64,否側提示一下錯誤:
下載地址:https://www.fixdown.com/soft/1915.html
下載后直接雙擊安裝即可。
3、編輯一個名為my.ini的數據庫配置文件,如下:
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] # 設置3306端口 port = 3306 # 設置mysql的安裝目錄 basedir=C:\mysql-5.7.24-winx64 # 設置mysql數據庫的數據的存放目錄 datadir=C:\mysql-5.7.24-winx64\data # 允許最大連接數 max_connections=20 # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB
注意提示路徑不對報錯如下:
配置文件要改為:
# 設置mysql的安裝目錄
basedir=C:\\soft\mysql-5.7.24-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=C:\\soft\mysql-5.7.24-winx64\data
"\"應該用"\\"代替
記得修改你們對應的安裝目錄和數據存放目錄,最最最要的一定是要保存為ANSI文件格式,不然會遇到如下報錯:
C:\mysql-5.7.24-winx64\bin>mysqld.exe --initialize-insecure
mysqld: [ERROR] Found option without preceding group in config file C:\mysql-5.7.24-winx64\my.ini at line 1!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
原因:my.ini文件格式是utf-8
解決辦法,my.ini文件保存為ANSI格式文件
三、初始化數據並啟動mysql服務
管理員cmd進入相對路徑的\bin目錄下:
安裝
mysqld.exe install
初始化數據並啟動:
1. mysqld --initialize-insecure(自動生成無密碼的root用戶)
2. mysqld --initialize(自動生成帶隨機密碼的root用戶)
這里選擇1 :
mysqld --initialize-insecure
初始化后再運行
net start mysql
成功啟動mysql ..
四、進入mysql環境
1. cmd到bin目錄下執行mysql -uroot (無需密碼)
2. 給用戶設置一個密碼:mysqladmin -u root -p password ,設置密碼時發現報錯:Access denied for user 'root'@'localhost' (using password: YES)
是因為未給localhost root用戶授權,可以先免密登錄設置root密碼,找到MySQL配置文件,在[mysqld]下添加skip-grant-tables,關閉mysql服務並重新開啟;
alter user 'root'@'localhost' identified by 'root123'; flush privileges; use mysql; update user set host='%' where host='localhost'; flush privileges;
或者這里新建一個用戶,然后授權給他
create user 'test'@'localhost' identified by 'password';
grant all privileges on *.* to test@'localhost';
運行這兩句sql語句,再次用test的身份輸入密碼進入
五、 配置環境變量
如果不想每次都要cd到mysql的bin目錄下,可以配置環境變量, cmd命令執行mysql指令的時候會去環境變量里面找對應的路徑。
控制面板\系統和安全\系統\高級系統設置\環境變量\path\編輯,將下載解壓的mysql的bin目錄的全路徑放里面:C:\mysql-5.7.24-winx64\bin; 前面多個用分號隔開。