以 /usr/local/mysql 安裝路徑為例,安全的目錄權限應為:
drwx------ 4 mysql mysql 4096 var
drwx------ 2 mysql mysql 4096 var/mysql
drwx------ 2 mysql mysql 4096 var/test
-rw------- 1 mysql mysql ... var/mysql/*.MYD
-rw------- 1 mysql mysql ... var/mysql/*.MYI
-rw------- 1 mysql mysql ... var/mysql/*.frm
# 修正擁有者
chown -R mysql:mysql /usr/local/mysql/var
# 修正權限:目錄 700,檔案 660
chmod -R go-rwx /usr/local/mysql/var
find /usr/local/mysql/var -type d -exec chmod 700 {} \;
find /usr/local/mysql/var -type f -exec chmod 660 {} \;
ps aux | grep mysqld
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# mysqld_safe 或 systemd 服務檔中指定
User=mysql
Group=mysql
mysqladmin -u root password 'StrongP@ssw0rd!'
DELETE FROM mysql.user WHERE User='';
UPDATE mysql.user SET Host='localhost' WHERE User='root';
FLUSH PRIVILEGES;
RENAME USER 'root'@'localhost' TO 'dbadmin'@'localhost';
CREATE USER 'app_user'@'10.0.1.%' IDENTIFIED BY 'AppP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'10.0.1.%';
FLUSH PRIVILEGES;
mysql.user 是否有無密碼/弱密碼帳號bind-address 非 0.0.0.0SHOW GRANTS 確認權限最小化