一:使用系統命令查看端口占用
# 查看MySQL進程及其端口
sudo netstat -tlnp | grep mysql
# 或者使用ss命令
sudo ss -tlnp | grep mysql
# 查看3306端口(MySQL默認端口)
sudo netstat -tlnp | grep 3306
出現如下信息,說明端口3306
[root@Z ~]# sudo netstat -tlnp | grep mysqltcp6 0 0 :::33060 :::* LISTEN 933/mysqldtcp6 0 0 :::3306 :::* LISTEN 933/mysqld
二:查看mysql配置文件
# 查找 MySQL 配置文件
sudo find /etc -name "*.cnf" | grep mysql# 檢查 bind-address 配置
sudo grep -n "bind-address" /etc/mysql/mysql.conf.d/mysqld.cnf# 檢查主要的 MySQL 服務器配置文件
sudo grep -n "bind-address" /etc/my.cnf.d/mysql-server.cnf
# 如果上面沒有結果,檢查所有相關配置文件
sudo grep -rn "bind-address" /etc/my.cnf.d/
# 也檢查主配置文件
sudo grep -n "bind-address" /etc/my.cnf
如果命令都是null的說明是可以允許訪問的
關鍵配置:
- bind-address = 127.0.0.1 - 只允許本地連接
- bind-address = 0.0.0.0 - 允許所有 IP 連接
- 注釋掉或刪除 bind-address - 默認允許遠程連接
三:檢查用戶權限
-- 登錄 MySQL 后執行
mysql -u root -p-- 查看用戶及其允許的主機
SELECT user, host FROM mysql.user;-- 查看特定用戶的權限
SHOW GRANTS FOR 'root'@'%';
SHOW GRANTS FOR 'root'@'localhost';
四:創建遠程root用戶
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;