首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 7 下 MySQL RPM 安裝與配置全流程:字符集、密碼、權限一站式落地

     編輯:MySQL 資料庫相關知識

從 Ubuntu 轉戰 CentOS 部署 MySQL,路徑、服務管理、配置文件全變了。本文梳理 RPM 安裝的完整實戰流程,覆蓋配置文件修改、服務啟動、字符集統一、安全初始化四大塊,避開跨平台部署的常見坑。

配置文件修改:/etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1
default-character-set = utf8   # 新增:服務端字符集

[mysql]
default-character-set = utf8   # 新增:客戶端字符集

服務啟動:CentOS 專屬方式

Ubuntu 安裝後自動啟動,CentOS 需手動:

# 方式一:service(推薦)
service mysqld start

# 方式二:init.d 腳本
/etc/rc.d/init.d/mysqld start

# 方式三:安全模式(前台調試用)
/usr/bin/mysqld_safe &

啟動後用 ps -ef | grep mysql 確認進程,關鍵參數 --datadir、--socket、--log-error、--pid-file 均可見於進程命令行。

字符集統一:從 latin1 到 utf8 的完整驗證

修改配置前:

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | latin1 |
| character_set_connection | latin1 |
| character_set_database   | utf8   |
| character_set_results    | latin1 |
| character_set_server     | utf8   |
| ...

客戶端變量(client/connection/results)仍為 latin1,會導致中文亂碼。
修改 my.cnf 重啟後:

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | utf8   |
| character_set_connection | utf8   |
| character_set_database   | utf8   |
| character_set_results    | utf8   |
| character_set_server     | utf8   |
| ...

所有關鍵變量均為 utf8,字符集配置真正落地。

安全初始化:清理匿名用戶、設定強密碼

-- 查看預設用戶(含匿名用戶、空密碼 root)
SELECT host, user, password FROM mysql.user;

-- 刪除匿名用戶
DELETE FROM mysql.user WHERE user='';

-- 設定 root 密碼(必須用 PASSWORD() 函數加密)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('StrongPass123');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('StrongPass123');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('StrongPass123');

-- 刷新權限
FLUSH PRIVILEGES;

補充:mysql_secure_installation 腳本可自動化完成上述安全加固。

跨平台部署核心差異速查表

項目Ubuntu (apt)CentOS (RPM)
配置文件/etc/mysql/my.cnf/etc/my.cnf
資料目錄/var/lib/mysql/var/lib/mysql
Socket/var/run/mysqld/mysqld.sock/var/lib/mysql/mysql.sock
服務管理systemctl/mysql.serviceservice mysqld / systemctl
啟動腳本/usr/bin/mysqld_safe/usr/bin/mysqld_safe

記住差異,跨平台部署不再迷路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved