# 更新軟件源 sudo apt-get update # 安裝服務端 (含 5.7/8.0 視 Ubuntu 版本) sudo apt-get install mysql-server-5.5 # 或 mysql-server (默認版本) # 安裝客戶端工具 (可選,服務端通常自帶) sudo apt-get install mysql-client
安裝過程會提示設置 root 密碼 (Ubuntu 18.04+ 可能不提示,默認 auth_socket 插件,需後續修改)。
# 登錄 MySQL sudo mysql -u root -p # 或 (若 auth_socket) sudo mysql # 創建遠程訪問用戶 (推薦) CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassw0rd!'; GRANT ALL PRIVILEGES ON `mydb`.* TO 'app_user'@'%'; FLUSH PRIVILEGES; # 或修改 root 允許遠程 (僅測試用) # ALTER USER 'root'@'%' IDENTIFIED BY 'StrongPassw0rd!'; -- 8.0 # GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPassw0rd!'; -- 5.7 # FLUSH PRIVILEGES;
# 編輯配置 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 或 /etc/mysql/my.cnf # 找到 bind-address = 127.0.0.1 # 修改為: bind-address = 0.0.0.0 # 或註釋掉:# bind-address = 127.0.0.1 # 重啟服務生效 sudo systemctl restart mysql
原理:
bind-address = 127.0.0.1限制 MySQL 僅監聽本地回環接口。改為0.0.0.0監聽所有網卡接口,允許外部連接。
# 命令行 mysql -h-u app_user -p # Navicat / DBeaver 新建連接: # Host: ECS公網IP (如 114.215.122.31) # Port: 3306 # User: app_user # Password: StrongPassw0rd! # Database: mydb
mysql> SHOW PROCESSLIST; +----+-----------+----------------------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------+----------------------+------+---------+------+-------+------------------+ | 36 | app_user | 203.0.113.45:54321 | mydb | Sleep | 10 | | NULL | +----+-----------+----------------------+------+---------+------+-------+------------------+
Host 列顯示客戶端公網 IP:隨機端口,確認連接穿透阿裡雲安全組/NAT 成功。
阿裡雲 ECS **默認分配公網 IP (或綁定 EIP)**,底層通過 **VPC 路由 + 安全組** 實現公網流量直接路由到實例主網卡。**無需手工配置端口映射/NAT**,安全組充當防火牆角色。
0.0.0.0/0。localhost。port = 33060 (配合安全組),降低掃描噪音。require_secure_transport=ON,配置 CA/Server/Client 證書。SHOW GRANTS;, SELECT User, Host FROM mysql.user;。xtrabackup / mysqldump 定時上傳 OSS。apt-get install mysql-server'user'@'%' 授權指定庫bind-address = 0.0.0.0SHOW PROCESSLIST 確認來源 IP