修改mysql远程账号密码

本文深入探讨了如何使用SQL语句为root用户设置密码并授予其全面的数据库权限,包括执行各种操作如选择、插入、更新、删除、创建、删除数据库等。
SET PASSWORD FOR 'root'@'%' = PASSWORD('newpassword');


GRANT GRANT OPTION ON *.* TO 'root'@'%';


GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%';
### 配置MySQL以允许从远程位置使用特定账号和密码进行登录 #### 创建新用户并赋予权限 为了使特定账户能够从任何主机连接到MySQL服务器,可以创建一个新的用户,并授予其必要的权限。这可以通过以下SQL语句实现: ```sql CREATE USER 'specific_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'specific_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述命令中的`*.*`表示给予该用户对所有数据库的所有操作权限;如果只想给定部分权限,则需调整这部分语法[^1]。 对于希望启用root用户的远程访问情况,应执行如下指令来确保安全性和功能性: ```sql CREATE USER IF NOT EXISTS 'root'@'localhost' IDENTIFIED BY 'yourpassword'; CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 这里需要注意的是,出于安全性考虑,通常不建议开放root用户的远程访问权限,而是应该创建具有适当权限的新用户来进行日常管理任务[^2]。 #### 修改MySQL配置文件 为了让这些更改生效,还需要编辑MySQL的配置文件(通常是`/etc/mysql/my.cnf`或`/etc/mysql/mysql.conf.d/mysqld.cnf`),找到其中关于绑定地址的部分(`bind-address`)将其更改为`0.0.0.0`以便监听所有的网络接口: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 修改后的行应该是这样的: ``` bind-address = 0.0.0.0 ``` 保存退出后重启MySQL服务使得改动立即起作用: ```bash sudo systemctl restart mysql.service ``` 最后一步是确认防火墙设置允许外部TCP流量到达默认端口(3306),可通过UFW(Uncomplicated Firewall)工具完成此步操作: ```bash sudo ufw allow 3306/tcp ``` 现在已完成了基本的安全措施以及必要的软件配置工作,可以从其他机器尝试建立SSH隧道或者直接通过客户端程序像Navicat去测试新的远程连接功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值