MySQL 安裝難?開玩笑!這份攻略讓你五分鐘搞定
- 適用人群:Linux小白、Ubuntu初學者、第一次接觸MySQL的同學
- 系統版本:Ubuntu 20.04 LTS
- 預計用時:5-10分鐘
你是不是也遇到過這樣的困擾:看著網上各種MySQL安裝教程,要么步驟不全,要么版本太老,要么就是一堆專業術語看得云里霧里?
別慌!今天這篇教程專門為小白量身定制,保證你跟著做一遍就能成功!我們用最簡單的APT包管理器來安裝,就像在手機上裝APP一樣簡單。
一、安裝前的準備工作
第一步:確認你的Ubuntu版本
首先,讓我們確認一下系統版本。打開終端(按Ctrl + Alt + T),輸入:
lsb_release -a
你應該看到類似這樣的輸出:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.x LTS
Release: 20.04
Codename: focal
如果看到20.04,那就對了!
第二步:更新系統包列表
這一步很重要,就像給你的"軟件商店"刷新一下最新的軟件列表:
sudo apt update
小貼士:輸入這個命令后,系統可能會要求你輸入密碼,這是正常的。輸入時屏幕上不會顯示密碼字符,直接輸入完按回車就行。
二、開始安裝MySQL
第三步:安裝MySQL服務器
現在是關鍵時刻!輸入這個"魔法咒語":
sudo apt install mysql-server
系統會問你是否繼續安裝(Do you want to continue? [Y/n]),直接按回車或者輸入Y然后回車。
這里會發生什么?
- 系統開始下載MySQL相關文件
- 自動安裝和配置
- 你會看到一堆滾動的文字,這是正常的,耐心等待
第四步:檢查MySQL是否安裝成功
安裝完成后,讓我們檢查一下MySQL服務是否正在運行:
sudo systemctl status mysql
如果看到綠色的active (running)字樣,恭喜你,安裝成功了!
如果沒有自動啟動,可以手動啟動:
sudo systemctl start mysql
第四步補充:安裝MySQL開發庫(重要)
如果你后續需要開發MySQL相關的程序(比如用C/C++、Python等語言連接MySQL),建議現在就安裝MySQL的開發庫:
sudo apt install libmysqlclient-dev -y
這個庫的作用:
- 提供MySQL的C語言頭文件和庫文件
- 支持多種編程語言的MySQL連接器編譯
- C/C++程序連接MySQL必備
什么時候需要:
- 編寫C/C++程序連接MySQL
- 安裝一些Python包(如mysqlclient)時需要
- 編譯其他需要MySQL支持的軟件
安裝很快,現在裝上以后就不用擔心了,避免后續開發時再去找這個依賴。
三、MySQL安全配置(重要!)
第五步:運行安全配置腳本
MySQL安裝后默認設置比較寬松,我們需要加強一下安全性。MySQL 8.0的安全配置腳本運行起來很簡單:
sudo mysql_secure_installation
運行過程說明:
- MySQL 8.0會自動檢測當前的認證方式
- 如果root用戶使用auth_socket認證,腳本會正常運行
- 直接按回車通常不會有問題
這個命令會啟動一個交互式的配置過程,跟著我的步驟來:
配置過程詳解:
① 是否安裝密碼驗證插件?
Would you like to setup VALIDATE PASSWORD plugin? (Press y|Y for Yes, any other key for No):
- 新手建議:輸入n(不安裝)
- 為什么:這個插件會強制要求復雜密碼,對新手來說可能比較麻煩
② 刪除匿名用戶?
Remove anonymous users? (Press y|Y for Yes, any other key for No):
建議:輸入y(刪除匿名用戶,提高安全性)
③ 禁止root遠程登錄?
Disallow root login remotely? (Press y|Y for Yes, any other key for No):
建議:輸入y(禁止遠程登錄,提高安全性)
④ 刪除test數據庫?
Remove test database and access to it? (Press y|Y for Yes, any other key for No):
建議:輸入y(刪除測試數據庫)
⑤ 重新加載權限表?
Reload privilege tables now? (Press y|Y for Yes, any other key for No):
建議:輸入y(立即生效配置)
四、測試MySQL安裝
第六步:登錄MySQL并配置root用戶認證方式
(1) 首次登錄MySQL
MySQL 8.0安裝后,root用戶默認使用auth_socket認證方式,這意味著你可以直接用sudo登錄,無需密碼:
sudo mysql
成功的標志:你會看到類似這樣的歡迎信息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.xx-Ubuntu
mysql>
(2) 查看當前root用戶認證方式
在MySQL命令行中,輸入以下命令查看root用戶的認證信息:
SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user='root';
你會看到類似這樣的輸出:
+------+-----------+-------------+-----------------------+
| user | host | plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket | |
+------+-----------+-------------+-----------------------+
解釋:
- plugin顯示為auth_socket,表示使用socket認證
- authentication_string為空,表示沒有設置密碼
(3) 修改root用戶認證方式(推薦)
為了方便日常使用和提高安全性,建議將root用戶的認證方式改為傳統的密碼認證(mysql_native_password):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
重要說明:
- 將your_password替換為你想要設置的密碼
- 密碼要足夠強壯,建議包含大小寫字母、數字和特殊字符
(4) 驗證修改結果
再次查看root用戶的認證信息:
SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user='root';
現在你應該看到:
+------+-----------+-----------------------+-------------------------------------------+
| user | host | plugin | authentication_string |
+------+-----------+-----------------------+-------------------------------------------+
| root | localhost | mysql_native_password | *加密后的密碼字符串* |
+------+-----------+-----------------------+-------------------------------------------+
(5) 退出并重新登錄測試
退出MySQL:
EXIT;
現在用新的密碼登錄:
mysql -u root -p
系統會提示輸入密碼,輸入你剛才設置的密碼。
為什么要做這個修改?
- 方便性:可以直接用密碼登錄,不需要sudo權限
- 兼容性:某些應用程序可能不支持auth_socket認證
- 安全性:明確的密碼認證更符合數據庫安全規范
看到mysql>這個提示符,說明你已經成功進入MySQL了!
第七步:創建普通用戶(推薦)
在實際項目中,我們通常不直接使用root用戶,而是創建專門的普通用戶。這是一個好習慣!
(1) 創建新用戶
在MySQL命令行中執行:
-- 創建新用戶(將username和password替換為你想要的用戶名和密碼)
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
舉個例子:
-- 創建一個名為myapp的用戶,密碼是myapp123
CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'myapp123';
(2) 給用戶授權
新創建的用戶默認沒有任何權限,我們需要給它分配權限:
-- 給用戶授予某個數據庫的所有權限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
-- 如果要給用戶授予所有數據庫的權限(謹慎使用)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
實際例子:
-- 先創建一個測試數據庫
CREATE DATABASE testdb;
-- 給myapp用戶授予testdb數據庫的所有權限
GRANT ALL PRIVILEGES ON testdb.* TO 'myapp'@'localhost';
-- 刷新權限
FLUSH PRIVILEGES;
(3) 測試新用戶
退出當前連接:
EXIT;
用新用戶登錄:
mysql -u myapp -p
輸入密碼后,試試查看數據庫:
SHOW DATABASES;
你應該能看到testdb數據庫。
第八步:簡單測試
在MySQL命令行中,試試這些基本命令:
-- 查看所有數據庫
SHOW DATABASES;
-- 查看MySQL版本
SELECT VERSION();
-- 退出MySQL
EXIT;
注意:每個SQL命令后面要加分號;
五、設置MySQL開機自啟動
讓MySQL在每次開機時自動啟動:
sudo systemctl enable mysql
檢查是否設置成功:
sudo systemctl is-enabled mysql
如果返回enabled,就成功了!
六、常用MySQL管理命令
作為小白,記住這幾個命令就夠用了:
# 啟動MySQL服務
sudo systemctl start mysql
# 停止MySQL服務
sudo systemctl stop mysql
# 重啟MySQL服務
sudo systemctl restart mysql
# 查看MySQL服務狀態
sudo systemctl status mysql
# 連接MySQL
mysql -u root -p
七、可能遇到的問題及解決方案
問題1:忘記root密碼怎么辦?
情況1:如果你使用的是默認的auth_socket認證 可以直接用sudo登錄:
sudo mysql
然后重新設置密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
EXIT;
情況2:如果你已經設置了mysql_native_password認證但忘記密碼 可以這樣重置:
# 停止MySQL服務
sudo systemctl stop mysql
# 安全模式啟動MySQL
sudo mysqld_safe --skip-grant-tables &
# 無密碼登錄
mysql -u root
# 在MySQL中執行
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
FLUSH PRIVILEGES;
EXIT;
# 重啟MySQL
sudo systemctl restart mysql
問題2:無法連接MySQL
如果遇到連接問題,檢查服務是否運行:
sudo systemctl status mysql
如果服務沒運行,啟動它:
sudo systemctl start mysql
問題3:端口被占用
MySQL默認使用3306端口,檢查端口是否被占用:
sudo netstat -tlnp | grep 3306
八、給初學者的小建議
- 記住你的密碼:MySQL的root密碼一定要記住,建議寫在安全的地方
- 定期備份:養成備份數據庫的好習慣
- 學習基礎SQL:安裝只是第一步,學會基本的SQL語句才能真正使用MySQL
- 使用圖形化工具:推薦安裝Navicat、DBeaver或MySQL Workbench,圖形界面更友好
九、總結
恭喜你!如果按照以上步驟操作,你現在已經:
- 成功在Ubuntu 20.04上安裝了MySQL
- 完成了基本的安全配置
- 學會了基本的MySQL管理命令
- 知道了常見問題的解決方法
MySQL已經準備好為你的項目服務了!接下來你可以開始學習SQL語句,創建數據庫和表,開始你的數據庫之旅。