重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1、在MySQL數據庫安裝時選擇過MySQL服務器隨系統啟動,但如果沒有選擇,也沒關系,可以在可以在Windows服務管理器啟動,具體在開始菜單搜索services.msc,
創新互聯建站制作網站網頁找三站合一網站制作公司,專注于網頁設計,做網站、成都網站制作,網站設計,企業網站搭建,網站開發,建網站業務,680元做網站,已為成百上千家服務,創新互聯建站網站建設將一如既往的為我們的客戶提供最優質的網站建設、網絡營銷推廣服務!
2、單擊出現如下圖窗口,下滑鼠標找到MySQL57:
3、右擊后點擊啟動,MySQL57旁邊狀態列顯示“已啟動”字樣,說明啟動成功。如下圖:
二、 登錄MySQL數據庫
4、 用系統命令行工具登錄,點擊開始菜單,找到附件,點擊命令提示符。
5、在命令行中輸入cd加空格然后粘貼bin路徑:cd c:\Program Files (x86)\MySQL\MySQL Server 5.7\bin 回車命令行定位到c:\Program Files (x86)\MySQL\MySQL Server 5.7\bin,在后面輸入mysql –h localhost –u root –p(這些都是安裝時設置好的)敲回車,
6、出現Enter password:在后面輸入安裝時設置的登錄密碼,按回車后出現Welcome to the MySQL monitor.說明登陸成功。如下圖:
7、用安裝時配置好的命令行工具登錄,在開始菜單,點擊MySQL 5.7 Command Line Client 或下面搜索程序框中輸入comm選擇MySQL 5.7 Command Line Client啟動DOS命令窗口。如下圖:
8、在窗口Enter password:處輸入安裝時設置的MySQL數據庫客戶端登陸密碼,回車,如果出現Welcom to the MySQL monitor.等字眼表示登陸服務器成功,可以在閃爍光標處輸入SQL可執行語言:如下圖:
前幾天看到姜老師的舊文 用 VSCode 編譯和調試 MySQL,每個 DBA 都應 get 的小技能[1] , 文末留了一個思考題,如何修改源碼,自定義版本,使得 select version() 輸出自定義內容
調試過程參考 macOS VSCode 編譯調試 MySQL 5.7[2]
內部 Item 對象參考 從SQL語句到MySQL內部對象[3]
源碼面前沒有秘密,建義對 DB 感興趣的嘗試 debug 調試。本文環境為 mac + vscode + lldb
vscode 插件:
mysql 源碼:
補丁: MySQL = 8.0.21 需要對 cmake/mysql_version.cmake 文件打補丁 (沒有嚴格測試所有版本)
創建 cmake-build-debug 目錄,后續 mysql 編譯結果,以及啟動后生成的文件都在這里
在 mysql 工程目錄下面創建 .vscode/settings.json 文件
內容沒啥好說的,都是指定目錄及 boost 配置,其中 WITH_DEBUG 打開 debug 模式,會在 /tmp/debug.trace 生成 debug 信息
View - Command Palette - CMake: Configure 執行后生成 cmake 配置
View - Command Palette - CMake: Build 編譯生成最終 mysql 相關命令
發現老版本編譯很麻煩,各種報錯,mysql 5.7 代碼量遠超過 5.5, 只能硬著頭皮看 5.7
首先初始化 my.cnf 配置,簡單的就可以,共它均默認
初始化數據文件,非安全模式,調試用
由于用 vscode 接管 mysql, 所以需要配置 .vscode/launch.json
然后點擊 run and debug mysqld
mysql 啟動,看到輸出日志無異常,此時可以用 mysql-client 連接
首先在 sql_parser.cc:5435 處打斷點
mysql_parse 是 sql 處理的入口,至于 tcp connection 連接先可以忽略
執行上述 sql 自動跳轉到斷點處, Step Into , Step Over , Step Out 這些調試熟悉下即可
接下來分別調用主要函數: mysql_execute_command , execute_sqlcom_select , handle_query , select-join-exec() , Query_result_send::send_data , Item::send , Item_string:val_str , Protocol_text::store , net_send_ok
啟動 mysql 時 init_common_variables 會初始化一堆變量,其中會調用 set_server_version 生成版本信息,修改這個就可以
看好條件編譯的是哪塊,修改即可, 重新 CMake: Build 編譯再運行
這里不做過深分析,簡單講
sql_yacc.cc 函數 PTI_function_call_generic_ident_sys 解析 sql, 識別出 version() 是一個函數調用
find_native_function_builder 查找 hash 表,找到對應 version 函數注冊的單例工廠函數
mysql 啟動時調用 item_create_init 將這些函數 builder 注冊到 hash 表 native_functions_hash
MySQL 代碼太龐大,5.1 大約 100w 行,5.5 130w 行,5.7 以后 330w 行,只能挑重點讀源碼。最近很多群里的人在背八股,沒必要,有那時間學著調試下源碼,讀讀多好
原文出處:
1、在命令行中啟動mysql: 首先點擊選擇【開始】菜單欄中的【運行】,
2、接下來需要在打開的運行對話框中,輸入cmd,按下enter鍵確定,打開DOS窗口。
3、在DOS窗口中的命令提示符中輸入net start mysql 按回車鍵,這樣就可以啟動mysql應用程序了。
解決方案:
運行
Cd C:\Program Files\MySQL\MySQL Server 5.1\bin\
C:\Program Files\MySQL\MySQL Server 5.1\bin mysqld –remove
Service successfully removed
現將其刪除重啟安裝一下
C:\Program Files\MySQL\MySQL Server 5.1\bin mysqld –install
Service successfully installed.
C:\Program Files\MySQL\MySQL Server 5.1\bin net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
打開mysql的方法:
1、使用MySql自帶的命令行工具打開mysql
2、使用cmd命令行打開
先把mysql bin目錄路徑添加到系統環境變量path中,之后在cmd中輸入mysql -h 127.0.0.1 -u root -p 然后輸入密碼即可連接mysql。
你試著再終端輸入:sudo /etc/init.d/mysql start
要是你說的只是解壓就運行的話,主要還得看你的安裝目錄,再在終端輸入上面類似的命令,比如改下文件夾(/etc/init.d/),就是該成你在哪里解壓的文件夾。