最近做了一个简单的程序,需要连接远程数据库,遇到了不少的问题,都一一解决了,记录下详细过程。
首先是要安装一个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上面执行连接数据库的操作
问题解决。
标签: Tkinter示例