专业的编程技术博客社区

网站首页 > 博客文章 正文

MySql在局域网内一台主机访问另一台服务器的数据库

baijin 2024-09-10 11:04:48 博客文章 13 ℃ 0 评论

首先,在开始之前,谈一下我们的需求。

我目前需要组装一台服务器主机,三台普通主机,需要在服务器上通过MySQL存储数据,但同时需要在三台普通主机上访问服务器上的数据库资源。


0、在局域网内部,需要所有的电脑都在同一个网段之内。

根据MySql版本的不同,需要做不同的操作处理

8.0.13之前的版本随便都可以在网上查到。

1、打开mysql控制台,进入mysql

use mysql;

2、查询mysql当前的版本

select @@version;

3、检索 user 和 host 字段

select user, host from user;

4、如果没有 user=root ,host = % 的用户,则执行下面语句:

mysql> update user set host='%' where user='root';

5、添加新的用户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

其中两个root 分别代表 “用户名”和“密码”,WITH GRANT OPTION,给予当前电脑可以授权其他电脑的权限。

6、让赋予的权限立即生效

flush privileges;


针对8.0.13之后的版本 -(都在服务器电脑操作)

1、打开mysql控制台,进入mysql

use mysql;

2、查询mysql当前的版本

select @@version;

4、检索 user 和 host 字段

select user, host from user;

5、如果没有 user=root ,host = % 的用户,则执行下面语句:

update user set host='%' where user='root';

6、创建用户(局域网客户端用户)

create user '自定义用户名'@'客户端电脑IP' identified by '自定义密码';

测试用例:

create user 'root'@'192.168.100.134' identified by '123456';

7、赋予权限(局域网客户端用户)- 赋予的权限需要根据实际情况的需求赋予相关的权限

grant all privileges on *.* to '自定义用户名'@'客户端电脑IP';

测试用例:

grant all privileges on *.* to 'root'@ '192.168.100.134';

8、让赋予的权限立即生效

flush privileges;

9、接下来可以在客户端的数据库上连接数据库。如果出现连接失败,mysql8之后的版本加密规则改变的问题。具体的解决方案如下:

mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后的版本中,加密规则是caching_sha2_password

具体修改操作如下:

(1)mysql中先更改加密方式

alter user '自定义用户名'@'客户端电脑IP' identified by '自定义密码' password expire never;

测试用例:

alter user 'root'@'192.168.100.134' identified by 'password' password expire never;

(2)修改密码,由于加密规则更改,所以需要重新设置密码

alter user '自定义用户名'@'客户端电脑IP' identified with mysql_native_password by '自定义新密码' ;

测试用例:

alter user 'root'@'192.168.100.134' identified with mysql_native_password by '123456789 ;

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表