数据库远程访问(数据库远程访问设置)

lxf2023-12-18 06:10:01

今天服务器上有一个mysql数据库,可以远程访问。我不想发布root账号,所以我创建了一个模拟账号,允许模拟账号在任何地方访问mysql数据库中的山东库。
方案一:
在安装mysql的机器上运行:
1:创建用户User
复制代码如下:

创建由“123456”[br/]标识的用户演示


2、

复制代码代码如下:

MySQL >授予山东所有权限。*要'演示' @'% ',请使用Grant Option
/授予任何主机访问数据的权限,或者您可以执行以下操作
授予山东上的所有权限。*用' 123456 '来'演示' @'% '所标识的。


3、

复制代码代码如下:

MySQL >刷新权限
/修改生效


4、

复制代码代码如下:

Mysql>EXIT
//退出Mysql服务器,这样就可以在任何其他主机上以demo的身份登录


引用
另外,当用客户端连接 mysql 时,发现无法连接,看来需要对用户进行重新授权。操作如下:
[root@cicro108 mysql]# bin/mysql -uroot -p -h 127.0.0.1 -A cws3
Enter password:
Welcome to the MySQL monitor. Commands end with or /g.
Your MySQL connection id is 1863 to server version: 4.1.20-standard
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "mysql" ;
Query OK, 0 rows affected (0.17 sec)
发现这样更改权限以后,远程仍然不能连接,但是用下面的操作就可以了。
mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "mysql" WITH GRANT OPTION;
Query OK, 0 rows affected (0.17 sec)
此刻, root 可以被远程连接,当然这里建立其他非 root 用户也可以远程连接。

方案二:
MySQL 1130错误解决方法:
通过MySQL-Front或MySQL administrator连接MySQL的时候发生的这个错误
ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server
说明所连接的用户帐号没有远程连接的权限,只能在本机(localhost)登录。
需更改 MySQL 数据库里的 user表里的 host项
把localhost改称%

具体步骤:登陆到MySQL
首先 use MySQL;
按照别人提供的方式update的时候,出现错误。
MySQL> update user set host='%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后查看了下数据库的host信息如下:
MySQL> select host from user where user = 'root';
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
host已经有了%这个值,所以直接运行命令:

复制代码代码如下:

MySQL >刷新权限;


再次连接MySQL管理员...成功!!

——万恶之分界线。

错误2003 (HY00

原因是MySQL考虑到了安全性,默认配置只允许本地登录。

打开文件/etc/mysql/my.cnf,找到bind-address = 127.0.0.1,修改为bind-address = 0.0.0.0。

重启MySQL:sudo/etc/init . d/MySQL restart。

再次连接,出现错误1045。

错误1045 (28000):用户“test”@“x . x . x”(使用密码:否)的访问被拒绝

答:原因是登录用户名没有被授予登录远程主机的权限。另一种可能是你需要重设密码...可能是授权操作造成了这个后遗症。..

以root身份本地登录:mysql -u root -p p。

修改MySQL数据库中用户表中对应用户名的主机字段,将localhost改为%。

使用mysql

更新用户集Host = '% ',其中User = ' username

为此设置权限需要ROOT用户登录。可惜我记不住ROOT密码了。

检索ROOT密码并设置远程登录。


mysqld _ safe-skip-grant-tables &

根目录

mysql >更新用户设置Password=PASSWORD('newpassword '),其中USER = ' root

mysql >刷新权限;

set ROOT remote connection update user set host =“%”其中user =“ROOT”;

如果看进程,可以看到MYSQLD_SAFE和MYSQL进程。这个时候可以正常使用MYSQL,但是看参数的话可以看到-skip-grant-tab。

输入mysqld_safe命令行,立即输入mysql -u root mysql,没有任何错误..或者打开一个新窗口。

1062执行更新时出错。

错误1062 (23000):关键字“PRIMARY”的重复条目“%-root”

如果在执行update语句时出现错误1062 (23000):键“primary”的重复条目“%-ROOT”,则意味着在用户表中记录了多个根用户。

从需要user =“root”的用户中选择主机;

检查主机是否已经有%的此& # 20540;,就吃吧。

mysql> select host,user from user其中user = ' root

+- +- +

|主机|用户|

+- +- +

| % |根|

| 127.0.0.1 |根|

| ::1 |根|

| localhost.localdomain | root |

然后以ROOT用户身份登录,更改用户帐户的远程连接权限。出现提示:错误1044 (42000):拒绝用户“@”localhost访问数据库“MySQL”。

错误1044 (42000):拒绝用户“@”localhost访问数据库“mysql”.

是因为mysql数据库的用户表中有一个用户名为空的匿名账户,导致登录时虽然使用了root,但实际上是匿名的,通过错误提示中的' @'localhost '可以看出来,所以看解决方案

先关闭MYSQL进程。..

然后

# mysqld_safe - skip-grant-table

屏幕出现:从开始演示。.....

记住这一点,然后输入。

# mysql -u root mysql

mysql >从用户处删除,其中用户=“”;

mysql >刷新权限;

如果从开始演示..出现,先输入其他命令,然后使用mysql -u root mysql。它将再次得到这个错误。

然后杀死MYSQL进程,重启正常进程。..

设置用户的远程主机连接权限

更新用户集host = ' % ' where user = ' fanzkcom _ fanzk ';

刷新权限;

但是在实际连接中,虽然可以连接,但是没有权限去库。

接下来必须设置权限。

设置用户和库权限

授予fanzkcom_fanzk上的所有权限。*对fanzkcom_fanzk@'% '用' 1234 '标识;

刷新权限;

百分号两边应该有单引号,否则语法错误。

然后连接的时候提示1045不对。想了半天,还是重设了密码,试了一下。

更新MySQL . User set password = password(' XXX '),其中User="fanzkcom_fanzk "

刷新权限;


adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!