要配置和连接另一台电脑上的 MySQL 数据库,可以按照以下步骤进行设置:
1. 配置 MySQL 服务器
在目标计算机上(192.168.10.103)进行以下操作:
- 修改 MySQL 配置文件:- 打开 MySQL 配置文件(通常位于
/etc/mysql/my.cnf
或/etc/my.cnf
)。- 找到并注释掉bind-address
行,或者将其设置为0.0.0.0
以允许来自任何 IP 地址的连接:# bind-address = 127.0.0.1bind-address = 0.0.0.0
- 保存并关闭配置文件。 - 重新启动 MySQL 服务:
sudo systemctl restart mysql
或者sudoservice mysql restart
- 创建远程访问用户并授予权限:- 登录到 MySQL:
mysql -u root -p
- 创建用户并授予远程访问权限:CREATEUSER'admin'@'192.168.10.103' IDENTIFIED BY'123456';GRANTALLPRIVILEGESON*.*TO'admin'@'192.168.10.103'WITHGRANTOPTION;FLUSH PRIVILEGES;
-- 1. 如果用户已经存在,授予全局权限,允许从任何电脑连接GRANTALLPRIVILEGESON*.*TO'admin'@'%'WITHGRANTOPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 2. 如果用户不存在,先创建用户然后授予权限,允许从任何电脑连接CREATEUSERIFNOTEXISTS'admin'@'%' IDENTIFIED BY'123456';GRANTALLPRIVILEGESON*.*TO'admin'@'%'WITHGRANTOPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 3. 创建只针对某个数据库的所有权限GRANTALLPRIVILEGESON yourDBName.*TO'admin'@'%'WITHGRANTOPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 4. 创建只针对某个数据库的增加、删除、更新权限GRANTSELECT,INSERT,UPDATEON yourDBName.*TO'admin'@'%'WITHGRANTOPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 5. 创建只针对某个数据库的增加、删除、更新权限,并限制远程连接的IP地址CREATEUSERIFNOTEXISTS'remote_users'@'192.168.1.5' IDENTIFIED BY'your_secure_password';GRANTSELECT,INSERT,UPDATEON yourDBName.*TO'remote_users'@'192.168.1.5';-- 刷新权限
FLUSH PRIVILEGES;
如果你只需要授予权限给已经存在的用户,请使用第一种语法。如果用户不存在,使用第二种语法来先创建用户然后授予权限。
注意:请确保在使用
GRANT ALL PRIVILEGES
时非常小心,尤其是对
%
(所有主机)的权限,因为这会给用户在所有数据库上的所有权限,这在生产环境中可能是不安全的。
2. 配置防火墙
在目标计算机上(192.168.10.103)进行以下操作:
- 允许 MySQL 端口(默认是 3306): - 使用
ufw
(适用于 Ubuntu):sudo ufw allow 3306
- 使用firewalld
(适用于 CentOS/RHEL):sudo firewall-cmd --permanent --add-port=3306/tcpsudo firewall-cmd --reload
3. 从本地主机连接到远程 MySQL 服务器
在本地计算机上进行以下操作:
- 安装 MySQL 客户端工具(如果未安装):- 在 Ubuntu 上:
sudoapt-getinstall mysql-client
- 在 CentOS 上:sudo yum install mysql
- 连接到远程 MySQL 服务器:
mysql -u admin -p-h192.168.10.103
输入密码123456
,你就应该能够连接到远程 MySQL 服务器。
4. 使用图形化工具连接
你也可以使用 MySQL Workbench、DBeaver 或 Navicat 等图形化工具来连接远程 MySQL 服务器。只需在连接设置中输入以下信息:
- 主机名或 IP 地址:
192.168.10.103
- 端口:
3306
- 用户名:
admin
- 密码:
123456
按照上述步骤,你应该能够成功配置和连接到另一台电脑上的 MySQL 数据库。如果在某些步骤中遇到问题,请检查防火墙设置、网络连接和 MySQL 配置是否正确。
5 查看开通的用户
SELECT User, Host FROM mysql.user
6删除权限,删除用户
要删除MySQL用户的某个特定权限,你可以使用
REVOKE
命令来收回权限。如果你要删除用户的某个连接权限或删除整个用户,分别使用
REVOKE
命令和
DROP USER
命令。
删除特定权限
如果你只想删除用户的特定权限,例如你授予了用户
username
从任何主机(
%
)连接的权限,现在想删除这个权限:
REVOKEALLPRIVILEGES,GRANTOPTIONFROM'username'@'%';
删除用户
如果你想完全删除用户
username
@
%
:
DROPUSER'username'@'%';
示例操作步骤
- 查看当前用户权限: 首先,你可以查看用户的权限,以确保你正在删除正确的权限。
SHOW GRANTS FOR'username'@'%';
- 删除特定权限: 假设你发现用户有对
pdfDB
的权限,你可以具体撤销这些权限:REVOKESELECT,INSERT,UPDATE,DELETEON pdfDB.*FROM'username'@'%';
- 删除用户: 如果你决定完全删除该用户:
DROPUSER'username'@'%';
重新创建用户并设置特定权限
如果你需要重新创建用户并为其设置特定的权限,可以按照之前的方法:
CREATEUSER'username'@'192.168.1.5' IDENTIFIED BY'password';GRANTSELECT,INSERT,UPDATEON pdfDB.*TO'username'@'192.168.1.5';CREATEUSER'username'@'192.168.1.6' IDENTIFIED BY'password';GRANTSELECT,INSERT,UPDATEON pdfDB.*TO'username'@'192.168.1.6';
通过这些步骤,你可以撤销用户的全局连接权限或完全删除用户,并根据需要重新创建用户并授予具体权限。
版权归原作者 好玩的Matlab(NCEPU) 所有, 如有侵权,请联系我们删除。