当前分类:数据库>>正文

tkinter连接远程服务器上mysql数据库详解

来源:互联网   更新时间:2023年6月10日  

最近做了一个简单的程序,需要连接远程数据库,遇到了不少的问题,都一一解决了,记录下详细过程。

首先是要安装一个pymysql的库。

pip install pymysql

数据库连接代码:

try:

    # Connect to the database

        mydb = pymysql.connect(

            host=" ",    #这里填数据库所在ip地址

            user="数据库用户名",

            password="密码",

            database="数据库名",  

            port=3306  #mysql端口号

        )

    # Show a message box if the connection is successful

        messagebox.showinfo("Connection Successful", "Connected to the database successfully!")

    except pymysql.Error as error:

    # Show an error message if the connection fails

        messagebox.showerror("Connection Failed", f"Error while connecting to the database: {error}")

第一次连接的时候遇到下面的报错:

Error while connecting to the database: (1130, "124.228.151.56 is not allowed to connect to this MySOL server")

报错代码1130

这个问题,我网上查了一下,主要是连接权限问题。

解决办法:

我的服务器是linux ,版本是Centos8

Ssh连接上服务器后,依次输入下面代码

mysql -u root -p 

登录你的mysql服务器

然后,使用你要连接的服务器,比如我要使用  6yhj这个数据库,那么输入下面代码:

use 6yhj

再执行下面语句

select host from user where user='6yhj';

可以看到

这个数据库的host 是 localhost 以及127.0.0.1

如果需要远程连接,则需要将localhost改为'%'

执行下面的代码

update user set host = '%' where user ='6yhj';

接下来,就是要进行刷新

flush privileges;

这样下来,再连接。

我又遇到了一个报销

1044 - Access denied for user ‘6yhj‘@‘%‘ to database ‘6yhj‘

错误代码1044

仍然是权限不够

解决办法:

ssh登录服务器,登录数据库,继续执行下面代码

grant all privileges on *.* to 'root'@'%' with grant option;

再刷新权限

flush privileges;

然后再在tkinter上面执行连接数据库的操作

问题解决。

本文固定链接:https://6yhj.com/leku-p-4245.html  版权所有,转载请保留本地址!
[猜你喜欢]

标签: Tkinter示例