今天在阿里雲window服務器上配置mysql環境,踩了一些坑,分享出來。需要的朋友可以看看。額,或許有人要吐槽我為什么不在linux上去配置,額,因為我window的那台服務器配置相對高些。本人技術方面偏向於.net,現在接觸php項目所以搭建LAMP環境。只不過我的數據庫放在window上的這台服務器。
言歸正傳
先選擇版本,到mysql官方網站下載,你會發現各宗版本看得眼花繚亂的,不要驚慌先選擇MySQL Community Edition版, 然后再跳轉的頁面下,你會發現還會有很多子版本要選,英文要不好的同學,選擇上會有點吃力,可選子版本有兩個:
(1)先說 一個是最省事的版本 ,直接下一步下一步安裝就好,有點像sqlserver 純界面展示。 https://dev.mysql.com/downloads/installer/ ,配置比較高的服務器,或懶得去搞一堆命令行的朋友可以直接下載這個。看完這里可以直接省略下面的內容了。
(2) 第二個版本,MySQL Community Server版本。 這個版本比較適合服務器安裝。占用資源較小。部署也比較靈活。缺點如果不熟悉的話坑會比較多。
我們先快速的說下 安裝的步驟,先下載文件,解壓縮到目標文件夾位置.比如 D:/mysql 。
1,在mysql文件夾 下新建一個文件名為my.ini , 然后錄入信息如下
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] #設置3306端口 port = 3306 # 設置mysql的安裝目錄 basedir=D:/mysql # 設置mysql數據庫的數據的存放目錄 datadir=D:/mysql/data # 允許最大連接數 max_connections=500 # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB
2,這個時候打開CMD(記得以管理員身份運行),否則輸入命令時會出現install/remove of the service denied錯誤,進入mysql文件夾。cd d:/mysql/bin(如果不想每次都cd進到這個目錄,可以將該路徑添加到 path路徑下)
#mysql安裝完成 >mysqld install #2初始化配置此時會用到之前的配置文件my.nin 然后在data目錄生成數據 >mysqld --initialize #顯示:服務正在啟動...服務已經啟動啟動成功! >net start mysql
----------------------------------------------------------------------------------------------------
好!!接着我來說說我遇到的坑
問題1: 安裝mysql服務時提示“找不到msvcp140.dll?
我服務器的版本是windows server 2012 r2 版本的。剛開始輸入命令行的時候報這個錯。是因為缺少這個補丁Microsoft Visual C++ 2015 Redistributable Update 3
下載地址 https://www.microsoft.com/en-us/download/details.aspx?id=53587
問題2:安裝好服務后,有的時候運氣好,默認初始版本密碼是空的可登錄。但有的時候密碼為空是登陸不進去的。好問題來了,
D:\mysql\bin>mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
密碼為空 ,登陸不進去,很是煩躁一萬只草泥馬路過,看了很多帖子,都是處理mysql5.11 的 現在8.0 處理不了。接着找辦法
這個時候需要 關閉sql服務,在控制面板里面的服務,找到mysql關掉。 也可以用命令行 net stop mysql 是關閉MySQL服務

在服務器上用以下方式跳過登陸,進入mysql,在cmd中按照以下方式操作 mysqld --console --skip-grant-tables --shared-memory
D:\mysql\bin>mysqld --console --skip-grant-tables --shared-memory
2018-10-05T16:22:02.055800Z 0 [System] [MY-010116] [Server] D:\mysql\bin\mysqld.exe (mysqld 8.0.12) starting as process 9440
2018-10-05T16:22:06.832563Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-10-05T16:22:06.914520Z 0 [System] [MY-010931] [Server] D:\mysql\bin\mysqld.exe: ready for connections. Version: '8.0.12' socket: '' port: 0 MySQL Community Server - GPL.
2018-10-05T16:22:06.977960Z 0 [Warning] [MY-011311] [Server] Plugin mysqlx reported: 'All I/O interfaces are disabled, X Protocol won't be accessible'
2018-10-05T16:22:12.006067Z 0 [System] [MY-013105] [Server] D:\mysql\bin\mysqld.exe: Normal shutdown.
D:\mysql\bin>2018-10-05T16:22:13.198096Z 0 [System] [MY-010910] [Server] D:\mysql\bin\mysqld.exe: Shutdown complete (mysqld 8.0.12) MySQL Community Server - GPL.
此時,重新打開一個CMD窗口 ,之前的窗口保留着不要關閉!。按如下步驟操作
>mysql -u root; # 這里切記不要 加 -p。 要不會強制要你輸入密碼才能登陸 >update user set authentication_string='' where user='root'; # 此時密碼一定要留空!數據庫里面的密碼默認是加密過的,以前的password(123)函數在8.0版本后就不能用了。 >flush privileges; (不提交不生效)
現在 root帳戶終於有了初始密碼,此時密碼為空!!,也只能為空!!否則你會登陸不進去的 ,存儲進去會像md5 一樣加密過的字符串在表里。
問題3 , 如何修改root 密碼
在操作mysql命令行的時候 結尾務必帶着" ;" 要不回車鍵按下去會一直換行
mysql > alter user 'root'@'%' identified by '123';
或
mysql > alter user 'root'@'localhost' identified by '123';
或 輸入quit; 從 mysql命令行回到 cmd ,進入mysql安裝目錄/bin
>mysqladmin -uroot -p password 123
此時,基本上解決 了mysql的服務端的問題了,現在我們把焦點移動到客戶端。 假設現在的場景服務端和客戶端不在同一台機子上。 我們需要安裝下客戶端的工具
推薦兩個工具 第一個是mysql的 MySQL Workbench

第二個是 Navicat Premium 12 工具,破解版就自己去找啦。相對 這個工具可以幫你剩下很多事,比如對命令行比較不在行的同學可以選下的這個版本

問題4 ,無法遠程登陸訪問遠程服務器上面的mysql
就是用上面兩個客戶端工具 ,都無法登陸服務器,因為默認mysql是不讓客戶端遠程登陸的,這個時候 第一步需要檢查阿里雲服務器的安全組策略,添加3306 端口的入口,
第二步,回到服務器 ,進入cmd ,將原先表中的數據 localhost改成 ‘%’ , 也可以改成 指定的ip地址 如 ‘192.168.0.0,192.168.0.1,192.168.0.2’
>mysql -u root -p #登陸mysql
mysql>use mysql; #使用mysql庫 mysql>update user set host = '%' where user = 'root'; # 修改host的限制,也可以指定ip訪問,改成你客戶端ip就好 mysql>select user, authentication_string from user;
修改好后,這時 ,MySQL Workbench ,你會發現可以登陸進去了。但是 Navicat Premium ,會報出“客戶端連接caching-sha2-password問題” 這個是由於mysql 不太願意讓第三方工具接入客戶端查詢,
在密碼反編譯的時候故意沒有對接好。接着我們來處理最后一個問題.
問題5 : Navicat Premium 客戶端連接caching-sha2-password問題 ,進到cmd ,登陸到mysql
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則 mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼 mysql>FLUSH PRIVILEGES; #刷新權限
#執行完后此時需要重置下你的密碼 ,因為密碼加密規則已經改變 不重置密碼你會登陸不上去的!
mysql> alter user 'root'@'localhost' identified by '123';
注意了! 如果你在問題4中已經把localhost 改成 % 的 , 上面的語句 也要跟着改 比如:'root'@'%',如果是跟着ip的 也以此類推. 否則執行會報錯!
最后 基本上常見的坑就踩完了,寫的有點粗糙,熬夜分享的一點心得,大家湊乎這看吧。
