温馨提示×

ubuntu mysql如何设权限

小樊
43
2026-09-12 23:49:03
栏目: 云计算

在 Ubuntu 上,MySQL 的“设权限”通常有两种含义,下面分别说明,你可以按需查看。


一、设置 MySQL 用户的权限(最常见)

1. 登录 MySQL

sudo mysql -u root -p

(如果是新装 MySQL 且用 auth_socket 登录)

sudo mysql

2. 创建用户

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
  • localhost:只允许本机连接
  • '%':允许远程连接(需配合防火墙和安全组)

3. 授权(核心)

给某个数据库全部权限

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';

给所有数据库权限(不推荐)

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

只给查询权限

GRANT SELECT ON dbname.* TO 'username'@'localhost';

常见权限

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • CREATE
  • DROP
  • ALL PRIVILEGES

4. 刷新权限

FLUSH PRIVILEGES;

5. 查看用户权限

SHOW GRANTS FOR 'username'@'localhost';

6. 撤销权限

REVOKE ALL PRIVILEGES ON dbname.* FROM 'username'@'localhost';

7. 删除用户

DROP USER 'username'@'localhost';

二、Ubuntu 系统层面 MySQL 权限问题

1. MySQL 数据目录权限

通常不要手动改:

/var/lib/mysql

所属应为:

mysql:mysql

如果权限坏了:

sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysql

2. 允许远程访问(可选)

编辑配置文件:

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

修改:

bind-address = 0.0.0.0

重启:

sudo systemctl restart mysql

⚠️ 远程请务必设置强密码和防火墙


三、常见示例(实战)

给 web 项目用户权限

CREATE USER 'webuser'@'localhost' IDENTIFIED BY '123456';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;

如果你愿意,可以告诉我:

  • 本地还是远程
  • 新用户还是已有用户
  • 数据库级还是系统级权限

我可以给你更精确的命令。

0