命令行操作MySQL雖然強大,但圖形化工具能顯著提升管理效率。本文實戰記錄CentOS/RHEL環境下MySQL服務端部署、主流GUI工具(MySQL Workbench、phpMyAdmin、MySQL Control Center)安裝配置,以及中文亂碼、遠程連接等高頻問題解決方案。
rpm -qa | grep -i mysql
# 輸出示例:mysql-community-server-8.0.33-1.el7.x86_64
# 1. 配置官方YUM倉庫
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 2. 安裝服務端與客戶端
yum install -y mysql-community-server mysql-community-client
# 3. 啟動並設置開機自啟
systemctl start mysqld
systemctl enable mysqld
# 4. 獲取臨時root密碼(8.0特有)
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
# 交互式:修改root密碼、移除匿名用戶、禁止root遠程登錄、移除test庫、重載權限表
# 1. 前置:LNMP/LAMP環境就緒
# 2. 下載部署
cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
unzip phpMyAdmin-5.2.1-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages phpmyadmin
# 3. 配置
cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php
# 編輯 config.inc.php
$cfg['blowfish_secret'] = 'your_32chars_random_string'; # cookie加密密鑰
$cfg['Servers'][1]['host'] = 'localhost';
$cfg['Servers'][1]['port'] = '3306';
$cfg['Servers'][1]['auth_type'] = 'cookie';
$cfg['Lang'] = 'zh_CN';
# 4. Nginx/Apache配置虛擬主機指向 /var/www/html/phpmyadmin
# 5. 訪問 https://your-domain/phpmyadmin
不推薦新項目使用,僅維護舊系統時參考。
# /etc/my.cnf [mysqld] 區塊
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
重啟服務:systemctl restart mysqld。驗證:SHOW VARIABLES LIKE 'character_set_%'; 全為utf8mb4。
# 1. 確認配置綁定地址
# /etc/my.cnf [mysqld]
bind-address = 0.0.0.0 # 或具體內網IP
# 2. 創建遠程用戶
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
# 3. 防火牆放行 3306
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# 4. 雲服務器安全組同步放行
# 1. 跳過權限表啟動
systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld
# 2. 無密碼登錄修改
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass123!';
# 3. 恢復正常啟動
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld
php.ini:upload_max_filesize=100M、post_max_size=100M、max_execution_time=300、memory_limit=256Mmysql -u root -p mydb < large_dump.sql(推薦,無大小限制)| 場景 | 推薦工具 | 理由 |
|---|---|---|
| 日常開發調試 | MySQL Workbench / DBeaver | 功能全、ER圖、SSH隧道、跨平台 |
| 服務器無桌面環境 | phpMyAdmin / Adminer | Web訪問、輕量、PHP原生 |
| 自動化腳本/批量操作 | 命令行 mysql/mysqldump | 可編程、無依賴、效率最高 |
| 只讀查詢/報表 | Metabase / Apache Superset | 可視化儀表盤、非技術人員友好 |