下面按最常见场景给你一个从零开始的 Ubuntu 配置 MySQL 指南(以 Ubuntu 20.04 / 22.04 + MySQL 8.0 为例,其他版本类似)。
sudo apt update
sudo apt upgrade -y
sudo apt install mysql-server -y
安装完成后,MySQL 会自动启动。
运行官方安全脚本:
sudo mysql_secure_installation
按提示操作,一般包括:
auth_socket,见下文)sudo mysql
默认 root 使用 auth_socket,不能用密码登录。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
之后可用:
mysql -u root -p
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
重启 MySQL:
sudo systemctl restart mysql
CREATE USER 'remote'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;
⚠️ 云服务器还需开放 3306 端口
# 启动
sudo systemctl start mysql
# 停止
sudo systemctl stop mysql
# 重启
sudo systemctl restart mysql
# 开机自启
sudo systemctl enable mysql
# 查看状态
sudo systemctl status mysql
在 /etc/mysql/mysql.conf.d/mysqld.cnf 中添加:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
重启 MySQL 生效。
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
然后重置密码。
bind-addresslocalhost vs %)如果你告诉我:
我可以给你更精确的配置方案。