📦 安装 MySQL 服务端

sudo apt update
sudo apt install mysql-server

⚙️ 修改 MySQL 监听配置

编辑配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将以下两项的默认 127.0.0.1 修改为 0.0.0.0,允许外部连接:

bind-address          = 0.0.0.0
mysqlx-bind-address   = 0.0.0.0

💡 默认值 127.0.0.1 表示只允许本地连接。


🔄 重启 MySQL 服务

sudo systemctl restart mysql

🔐 查看默认用户名密码

MySQL 安装后会自动生成 debian-sys-maint 账户,使用该命令查看:

cat /etc/mysql/debian.cnf

🛠️ 连接 MySQL

mysql -u <username> -p

🔑 修改 root 密码

  1. 进入 mysql 数据库:

    USE mysql;
    
  2. 修改 root 密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    FLUSH PRIVILEGES;
    

🔍 查看 MySQL 端口

SHOW VARIABLES LIKE '%port%';

👤 查看现有用户

SELECT user, host FROM mysql.user;

host 字段含义:

  • 'localhost':只能本地访问
  • '%':可远程访问(外网)

👥 创建新用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

示例:

CREATE USER 'devuser'@'%' IDENTIFIED BY '123456';

❌ 删除用户

DROP USER 'username'@'host';

🔐 用户权限管理

✅ 授予用户 Root 权限(⚠️ 高风险操作)

给予用户与 root 类似的全部权限(包括所有数据库和表):

GRANT ALL PRIVILEGES ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;

⚠️ 注意: 仅在信任该用户或测试环境中使用。ALL PRIVILEGES 表示授予所有权限。


🎯 授予用户特定表权限(✅ 推荐)

为用户赋予特定数据库或表的权限,更安全:

GRANT SELECT, INSERT, UPDATE, DELETE ON <database>.<table> TO 'username'@'host';
FLUSH PRIVILEGES;

权限说明:

权限 描述
SELECT 允许查询数据
INSERT 允许插入数据
UPDATE 允许更新数据
DELETE 允许删除数据

如需撤销权限,可以使用:

REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'host';
FLUSH PRIVILEGES;