要配置和连接另一台电脑上的 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.1 bind-address = 0.0.0.0
- 保存并关闭配置文件。
- 打开 MySQL 配置文件(通常位于
-
重新启动 MySQL 服务:
sudo systemctl restart mysql
或者
sudo service mysql restart
-
创建远程访问用户并授予权限:
- 登录到 MySQL:
mysql -u root -p
- 创建用户并授予远程访问权限:
CREATE USER 'admin'@'192.168.10.103' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.10.103' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 登录到 MySQL:
-- 1. 如果用户已经存在,授予全局权限,允许从任何电脑连接
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 2. 如果用户不存在,先创建用户然后授予权限,允许从任何电脑连接
CREATE USER IF NOT EXISTS 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 3. 创建只针对某个数据库的所有权限
GRANT ALL PRIVILEGES ON yourDBName.* TO 'admin'@'%' WITH GRANT OPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 4. 创建只针对某个数据库的增加、删除、更新权限
GRANT SELECT, INSERT, UPDATE ON yourDBName.* TO 'admin'@'%' WITH GRANT OPTION;-- 刷新权限
FLUSH PRIVILEGES;-- 5. 创建只针对某个数据库的增加、删除、更新权限,并限制远程连接的IP地址
CREATE USER IF NOT EXISTS 'remote_users'@'192.168.1.5' IDENTIFIED BY 'your_secure_password';
GRANT SELECT, INSERT, UPDATE ON 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/tcp sudo firewall-cmd --reload
- 使用
3. 从本地主机连接到远程 MySQL 服务器
在本地计算机上进行以下操作:
-
安装 MySQL 客户端工具(如果未安装):
- 在 Ubuntu 上:
sudo apt-get install mysql-client
- 在 CentOS 上:
sudo yum install mysql
- 在 Ubuntu 上:
-
连接到远程 MySQL 服务器:
mysql -u admin -p -h 192.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
从任何主机(%
)连接的权限,现在想删除这个权限:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'%';
删除用户
如果你想完全删除用户 username
@%
:
DROP USER 'username'@'%';
示例操作步骤
-
查看当前用户权限:
首先,你可以查看用户的权限,以确保你正在删除正确的权限。SHOW GRANTS FOR 'username'@'%';
-
删除特定权限:
假设你发现用户有对pdfDB
的权限,你可以具体撤销这些权限:REVOKE SELECT, INSERT, UPDATE, DELETE ON pdfDB.* FROM 'username'@'%';
-
删除用户:
如果你决定完全删除该用户:DROP USER 'username'@'%';
重新创建用户并设置特定权限
如果你需要重新创建用户并为其设置特定的权限,可以按照之前的方法:
CREATE USER 'username'@'192.168.1.5' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON pdfDB.* TO 'username'@'192.168.1.5';CREATE USER 'username'@'192.168.1.6' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON pdfDB.* TO 'username'@'192.168.1.6';
通过这些步骤,你可以撤销用户的全局连接权限或完全删除用户,并根据需要重新创建用户并授予具体权限。