天天看點

當MySQL遇上phpMyAdmin

當MySQL遇上phpMyAdmin

引言:最近老師給我們布置了一項任務,分組完成一個Java EE課程項目設計,考慮到項目需要背景資料庫的支撐,而自己以前裝在電腦上的Microsoft SQL Server不知道咋了,連服務都起不來,加上它給我的印象也不太好,二話不說,先把你給解除安裝了,這次玩MySQL,然而事情并不簡單。。。

子產品一:

MySQL的安裝配置過程:

step1.打開https://downloads.mysql.com/archives/community/選擇合适版本進行下載下傳!

當MySQL遇上phpMyAdmin

解壓打開檔案

當MySQL遇上phpMyAdmin
注意一下,解壓後的目錄并不存在data和my.ini,這兩是我們在下一步需要建立的

咦!怎麼沒有.exe檔案,這要怎麼裝,難道不用裝麼?一通百度,原來自己下了個zip“免安裝”版本,但好像官網上基本都是這種zip的,為啥要給這“免安裝”三字打上引号呢?因為它并不是一解壓就能用的,還有幾步得走。。。

step2.回到剛才的解壓目錄,建立一個檔案夾【命名為data】和一個配置檔案【命名為my.ini】,然後再給my.ini加點料:

my.ini

[mysql]
# 設定mysql用戶端預設字元集
default-character-set=utf8 
[mysqld]
#設定3306端口
port =  
# 設定mysql的安裝目錄
basedir=D:\\MySQL_phpMyAdmin\\mysql--winx64
# 設定mysql資料庫的資料的存放目錄
datadir=D:\\MySQL_phpMyAdmin\\mysql--winx64\\data
# 允許最大連接配接數
max_connections=
# 服務端使用的字元集預設為UTF8
character-set-server=utf8
# 建立新表時将使用的預設存儲引擎
default-storage-engine=INNODB
           
如果你以前有用過mysql.exe的安裝向導,你會發現這裡所做的配置其實在那個安裝向導中都有展現。對了,注意到那個

datadir

沒,他所指的路徑正是我們建立的那個data

step3.輸入cmd,以管理者身份運作控制台,進入MySQL路徑(D:\MySQL_phpMyAdmin\mysql-8.0.12-winx64\bin)下【當然,如果你事先進行了環境配置,可以在任意目錄下進行】。

//從MySQL5.7.6開始需要執行mysqld --initialize方法
()先執行mysqld --initialize   //初始化工作,在這一步會往上一步所建的data檔案夾裡釋放一下“東東”
()再執行mysqld install        //安裝MySQL服務,這步完成後你可以服務裡找到MySQL服務
()再執行net start mysql       //啟動MySQL服務,一切ok!
           
當MySQL遇上phpMyAdmin
當MySQL遇上phpMyAdmin
為啥需要以管理者身份運作cmd呢?你試試就知道了,你也許會碰到下面這種錯誤:
當MySQL遇上phpMyAdmin
咋回事?權限不足呗,被拒絕的感受不好受吧!

step3. 是時候連結資料庫了,指令行輸入mysql -u root -p後回車

當MySQL遇上phpMyAdmin

咦,怎麼需要密碼?我也沒設定密碼啊!不要慌,進入安裝目錄【D:\MySQL_phpMyAdmin\mysql-8.0.12-winx64】,打開data檔案夾,找到.err的檔案,打開它

當MySQL遇上phpMyAdmin

原來給我生成了一個臨時密碼,唉,給我設了密碼也不告訴我一聲,一點也不貼心!密碼也設定得怪怪的,叫人家怎麼記得住,不行,我要改密碼。。。

step4.重置root密碼

//執行該命名之後會提示輸入原密碼,輸入正确後即可修改。
mysqladmin -u ["username"] -p password ["new password"]

           

D:\MySQL_phpMyAdmin\mysql-8.0.12-winx64\bin> mysqladmin -u root -p

password pswd Enter password: **

mysqladmin: [Warning] Using a password on the command line interface

can be insecure. Warning: Since password will be sent to server in

plain text, use ssl connection to ensure password safety.

step5.使用新密碼連結MySQL資料庫

當MySQL遇上phpMyAdmin
至此,MySQL的配置就算完成了,說實話還是習慣那種傻瓜式的安裝向導,這種所謂的Zip免安裝版…..算了,不吐槽了,該進入phpMyAdmin的配置了。。。

子產品二:

phpMyAdmin的安裝配置過程:

phpMyAdmin 是衆多 MySQL圖形化管理工具中使用最為廣泛的一種,是一款使用PHP 開發的基于B/S模式的 MySQL 用戶端軟體,該工具是基于 Web 跨平台的管理程式,并且支援簡體中文。

step1.通路https://www.phpmyadmin.net/點選右側的Download 4.8.3即可下載下傳phpMyAdmin-4.8.3-all-languages.zip

當MySQL遇上phpMyAdmin

step2.下載下傳完畢後将其解壓放在可以通路的web目錄下【D:\Apache24\htdocs】,當然也可以不放在這,具體細節參考:https://blog.csdn.net/wodecc_u/article/details/71213441

當MySQL遇上phpMyAdmin

step3.配置config檔案,打開上面目錄下的libraries檔案夾,在裡面找到config.default.php

//具體配置如下:

//1.phpmyadmin的通路網址
$cfg['PmaAbsoluteUri'] = '';  //如改成如改成$cfg['PmaAbsoluteUri'] = 'localhost/phpMyAdmin'

//2.修改伺服器IP位址
$cfg['Servers'][$i]['host'] = 'localhost';
//填寫localhost或mysql所在伺服器的ip位址,如果mysql和該phpmyadmin在同一伺服器,則按預設localhost 

//3.修改mysql通路端口
cfg['Servers'][$i]['port'] = ''; //mysql端口,如果是預設3306,保留為空即可

//4.mysql使用者名和密碼
$cfg['Servers'][$i]['user'] = 'root'; 
// MySQL user 通路phpmyadmin使用的mysql使用者名 

$cfg['Servers'][$i]['password'] = '';
// MySQL password (only needed對應上述mysql使用者名的密碼)

//5.認證方式
$cfg['Servers'][$i]['auth_type'] = 'cookie'; 
/*在此有四種模式可供選擇,cookie,http,HTTP,config 
config方式即輸入phpmyadmin的通路網址即可直接進入,無需輸入使用者名和密碼,是不安全的,不推薦使用。 
當該項設定為cookie,http或HTTP時,登入phpmyadmin需要資料使用者名和密碼進行驗證,,具體如下: 
PHP安裝模式為Apache,可以使用http和cookie; 
PHP安裝模式為CGI,可以使用cookie */

//6.短語密碼(blowfish_secret)的設定
$cfg['blowfish_secret'] = ''; 
//如果認證方法設定為cookie,就需要設定短語密碼,置至于設定為什麼密碼,由您自己決定 ,但是不能留白,否則會在登入phpmyadmin時提示錯誤 
           
  • In most cases you can leave this variable empty, as the correct value
    • will be detected automatically. However, we recommend that you do
    • test to see that the auto-detection code works in your system. A good
    • test is to browse a table, then edit a row and save it. There will be
    • an error message if phpMyAdmin cannot auto-detect the correct value.

      *

    • @global string $cfg[‘PmaAbsoluteUri’]

      */

      \$cfg[‘PmaAbsoluteUri’] = ”;

      配置檔案裡的這段話意思是說\$cfg[‘PmaAbsoluteUri’] 這個全局字元串該怎麼配置,取決于你的系統,你可以先留白,看看能不能打開http://localhost/phpMyAdmin/

子產品三:

APache的安裝配置:

step1.通路http://httpd.apache.org/docs/current/platform/windows.html#down,點選ApacheHaus擷取httpd-2.4.34.tar.bz2。

當MySQL遇上phpMyAdmin

step2.完成解壓并以管理者身份運作cmd,切換到解壓目錄【D:\Apache24\bin】,執行指令httpd -k install安裝Apache24服務,httpd -k start打開Apache24服務打開浏覽器,輸入http://localhost:【port】,若出現it works【下圖所示】. 則表示配置成功。

當MySQL遇上phpMyAdmin

在這個過程中你可能會碰到以下問題:

問題一:80端口被占用

解決辦法:

1.打開conf檔案夾下的httpd.conf的配置檔案找到Listen 80,改個不常用的端口,這裡我改成了8181

當MySQL遇上phpMyAdmin
2.找到占用80端口的背景程序,幹掉它。

問題二:443端口被占用

Errors reported here must be corrected before the service can be started.

(OS 10048)通常每個套接字位址(協定/網絡位址/端口)隻允許使用一次。 : AH00072: make_sock: could not bind to address [::]:443

解決方法:

1.打開.\conf\extra下的httpd-ssl.conf配置檔案有443的地方全給改掉,然而這種方法好像行不通,問題依舊

2.既然方法一不行,我們就暴力一點直接kill占用443端口的背景程序

(1)先看看是哪個占着443端口不放

netstat -ano|findstr "443" TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 3120 TCP 199.10.33.30:54312 202.173.27.250:443 TIME_WAIT 0 TCP 199.10.33.30:54313 216.219.120.244:443 TIME_WAIT 0

tasklist|findstr "3120" vmware-hostd.exe 3120 Services 0 55,356 K

(2)幹掉vmware-hostd.exe

taskkill /pid 3120 或 taskkill /im vmware-hostd.exe

!!! Pay attention:

以上操作凡涉及到配置檔案的修改均需重新開機服務才會生效!

子產品四:

最後的操作:打開浏覽器輸入http://localhost:8181/phpmyadmin/.

當MySQL遇上phpMyAdmin

What ! 這是什麼鬼?說好的圖形界面呢!

别急嘛!試着在位址欄後面加上index.php後重新整理
當MySQL遇上phpMyAdmin

哎,界面出來了!難道每次通路都得加上index.php麼?

當然不是啦!打開D:\Apache24\conf\httpd.conf設定預設首頁檔案名,在DirectoryIndex index.html後面追加DirectoryIndex index.php即可
當MySQL遇上phpMyAdmin
儲存重新開機Apache,重新打開http://localhost:8181/phpmyadmin/

如果問題依然存在,你就得看看你的Apache有沒有正确加載php子產品

步驟:

1.打開Apache的httpd.conf配置檔案,添加以下代碼:

#加載PHP子產品,這裡的D:/php-5.4.28為php安裝目錄

LoadModule php5_module "D:/php-5.4.28/php5apache2_2.dll" AddType application/x-httpd-php . php PHPIniDir "D:/php-5.4.28

2.測試php是否正常

重新開機Apache,在Apache的安裝目錄下的htdocs目錄下建立一個test.php檔案,輸入以下代碼

<?php phpinfo(); ?>

然後在遊覽器中輸入http://localhost/test.php檢測php解釋器是否整合到Apache中
當MySQL遇上phpMyAdmin

歐耶!可以啦。

終于可以體驗PHPMyAdmin了,輸入賬号:root 密碼:**,點選登入。。。

當MySQL遇上phpMyAdmin

呃呃,這又是什麼情況啊!我不過就想用用PHPMyAdmin,咋就這麼難呢?不行,我要跟你死磕到底,我還就不信了。。。

原來問題出在這裡:

MySQL 8.0.4開始預設使用caching_sha2_password作為認證的插件,對于之前的版本的mysql,預設的認證插件為mysql_native_password。caching_sha2_password需要用戶端也支援

這下該怎麼辦?

解決方案:

1.

update mysql.user set

plugin

="mysql_native_password" where user="mysql.sys" #更新一下使用者mysql.sys的密碼驗證插件 FLUSH PRIVILEGES; #重新整理權限

2.

在mysql配置檔案my.cnf修改插件[mysqld] default_authentication_plugin=mysql_native_password 修改完後需要重新開機mysql伺服器。

查詢使用者密碼的加密插件:

mysql>select user, host, plugin from mysql.user;

當MySQL遇上phpMyAdmin

至此,終于完成了所有配置!最終成果圖:

當MySQL遇上phpMyAdmin
以上步驟均經過小編測試可行,有需要的小夥伴可以拿去參考,歡迎糾錯!

相關連結:

[1] windows下重置MySQL的 root 密碼

[2] phpMyAdmin使用教程

[2] Apache,MySQL,phpMyAdmin百度網盤連結 密碼:kld3