在 Ubuntu 上,MySQL 的“设权限”通常有两种含义,下面分别说明,你可以按需查看。
sudo mysql -u root -p
(如果是新装 MySQL 且用 auth_socket 登录)
sudo mysql
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
localhost:只允许本机连接'%':允许远程连接(需配合防火墙和安全组)GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
GRANT SELECT ON dbname.* TO 'username'@'localhost';
SELECTINSERTUPDATEDELETECREATEDROPALL PRIVILEGESFLUSH PRIVILEGES;
SHOW GRANTS FOR 'username'@'localhost';
REVOKE ALL PRIVILEGES ON dbname.* FROM 'username'@'localhost';
DROP USER 'username'@'localhost';
通常不要手动改:
/var/lib/mysql
所属应为:
mysql:mysql
如果权限坏了:
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysql
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改:
bind-address = 0.0.0.0
重启:
sudo systemctl restart mysql
⚠️ 远程请务必设置强密码和防火墙
CREATE USER 'webuser'@'localhost' IDENTIFIED BY '123456';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
如果你愿意,可以告诉我:
我可以给你更精确的命令。