MySql8.x 连接远程数据库

上周,老大交给了我一个任务,做一个数据库可视化界面。我在我自己的电脑上做好了这个小项目,用了一个Flask的web展示框架。然后老大让我在小组电脑上把这个项目展示一下。不过在展示的时候遇到了一个数据库的错误。

参考了一篇博客

https://blog.csdn.net/nghuyong/article/details/54638474

首先登录自己本地的数据库

然后

use mysql

这是已经配置成功的界面,刚开始 root 的host 应该是localhost

输入以下更新命令

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

你就会发现root 用户的 host 改为 % 

接下来是最关键的一步。

授予远程客户访问本地数据库的权限

Google的资料大都是这样

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

我也尝试着输入了,提示sql语法错误。

最后查了一下8.0版本的MySQL如何远程连接。。正确语法应该是这样

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

运行完毕,输入更新命令

FLUSH PRIVILEGES

然后重启MySQL的服务,在本地服务找到MySQL并重启即可。

 

项目可以访问我的数据库了。

 # 1. 这些参数做私有化,就体现了封装安全性的好处
    def __init__(self, host='本地电脑的ip',name='root',pwd='',port='3306',dbname='test',charset='utf8'):
        self.__host = host
        self.__name = name
        self.__pwd = pwd
        self.__port = port
        self.__dbname = dbname
        self.__charset = charset
        self.__conn = None
        self.__cursor = None
        print(host)
        pass

在本地的host本来是 localhost,

把小组电脑上的host改成本地电脑上的ip就可以访问本地数据库了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章