在 Ubuntu 上配置 MySQL,通常分为 安装、初始化、远程访问、字符集、用户权限 等几个步骤。下面给你一套从零到可用的完整配置流程(适用于 Ubuntu 20.04 / 22.04,MySQL 8.0)。
sudo apt update
sudo apt install mysql-server -y
安装完成后检查状态:
sudo systemctl status mysql
sudo mysql_secure_installation
常见选项说明:
VALIDATE PASSWORD:是否启用密码强度校验(建议选 no)sudo mysql
如提示需要密码:
sudo mysql -u root -p
SELECT user, host, plugin FROM mysql.user WHERE user='root';
如果是 auth_socket,建议改为密码登录:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPassword';
FLUSH PRIVILEGES;
不要直接用 root 做业务:
CREATE USER 'appuser'@'%' IDENTIFIED BY 'AppPassword123!';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';
FLUSH PRIVILEGES;
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
保存后重启:
sudo systemctl restart mysql
sudo ufw allow 3306
⚠️ 生产环境建议限制 IP
sudo ufw allow from 1.2.3.4 to any port 3306
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 下添加:
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
在 [client] 下(如没有可新建):
default-character-set=utf8mb4
重启 MySQL:
sudo systemctl restart mysql
# 启动
sudo systemctl start mysql
# 停止
sudo systemctl stop mysql
# 重启
sudo systemctl restart mysql
# 开机自启
sudo systemctl enable mysql
Access deniedplugin 是否为 mysql_native_passwordsudo mysqlbind-addresshost 是否为 %如果你愿意,可以告诉我:
我可以给你一份更精确的配置方案。