作者f496328mm (123)
看板Python
标题[问题] python 连 SQL server
时间Thu Aug 24 02:15:25 2017
想请问有使用 python 连接SQL server 的大大
我目前已经架好SQL server,外部可以根据某个 ip 连到我的 SQL server
目前我可以在 server 端利用 python 直接存取 SQL server,
但是直接打 IP ,却出现error
导致我无法利用外部机器,进行存取,
而外部我直接用 phpmyadmin 网页,却可以进入该资料库,
想请问,要如何修改,才能从外部,利用 python 连接 SQL server ??
谢谢
我上网找过一些文章,比较奇怪的是,我的 /etc/mysql/my.cnf 文件几乎是空的,
所以我参考这篇,我的 my.cnf 跟他一样
https://askubuntu.com/questions/699903/why-is-etc-mysql-my-cnf-empty
所以我去修改这个文件,/etc/mysql/mysql.conf.d/mysqld.cnf,
将 skip-external-locking 和 bind-addrerss = 127.0.0.1 注解掉,
结果还是失败
ps : 在 SQL 使用者权限上 ,主机名称我是给 % ,代表所有主机都可以连过来对八
另外我 SQL server 是架在 ubuntu 16.04 上
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.36.52.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1503512128.A.F80.html
1F:推 HenryLiKing: 算你幸运~我昨天刚遇到这问题欸 08/24 08:19
2F:推 HenryLiKing: GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* 08/24 08:21
3F:→ HenryLiKing: TO [username]@[remoteIP] identified by '[passwor 08/24 08:21
4F:→ HenryLiKing: d]'; 08/24 08:21
5F:→ HenryLiKing: 最後记得 08/24 08:21
6F:→ HenryLiKing: FLUSH PRIVILEGES; 08/24 08:21
感谢 想问几个问题
db_name 指的是资料库名称吗?
remoteIP 可不可以大量开放 类似 192.*.***.*之类的
7F:→ s860134: phpmyadmin 是架在和资料库同台机器,存取都算是本地啊 08/24 20:05
8F:推 HenryLiKing: 对 是指资料库的名称 08/24 20:19
9F:→ HenryLiKing: ip那个我就不清楚了 好像可以 08/24 20:19
10F:→ HenryLiKing: 但我目前没有用过耶 08/24 20:19
感谢 有点改善 目前 server 已经能利用 IP 登入了
好像是我把防火墙关了
我输入 sudo ufw disable QQ
不过目前还是无法利用外部连进来
error 如下
另外我防火墙有开启
并加这段
sudo ufw allow 3306
结果其他电脑就无法利用 phpmyadmin 连过来了
奇怪 3306 不是开启了吗???
http://imgur.com/sy9G12R
11F:→ s860134: 你可以尝试用其他资料库客户端去连db, phpmyadmin 能连不 08/25 13:13
12F:→ s860134: 代表什麽 08/25 13:13
13F:→ s860134: 他算是一个本地代理,你希望的是不经过这个代理直接操作 08/25 13:14
14F:→ s860134: 资料库 08/25 13:14
15F:→ s860134: 你的使用者帐号有包含空白吗? 08/25 13:16
16F:推 bluecadence: 你先从外部用 "telnet 114.34.138.146 3306" 测试 08/25 13:19
17F:→ bluecadence: 有回应表示 server 已经没问题了。 08/25 13:19
我目前可以使用 ssh ip 进来
但是无法用 telnet ip 进来 会出现乱码
18F:→ bluecadence: 你的问题大概是mysql使用者权限没设定好 08/25 13:20
19F:→ bluecadence: 另外,你create mysql user 的时候,有分别在 08/25 13:29
20F:→ bluecadence: localhost 和外部% 都有创设帐号吗? 08/25 13:30
21F:→ bluecadence: 例如 create user 'test'@'localhost ....... 08/25 13:31
22F:→ bluecadence: 以及 create user 'test'@'%'........ 08/25 13:32
23F:→ bluecadence: 帐号创设完毕,再用 grant 给予适当权限,同样的外部 08/25 13:33
24F:→ bluecadence: % 和本地 localhost 都要设定 08/25 13:34
25F:→ bluecadence: 事实上,对於mysql来说 test@localhost 和 test@% 是 08/25 13:37
26F:→ bluecadence: 不同帐号,所以要分别设定。 08/25 13:38
上面的意思是 用手点 phpmyadmin 建立帐号後
还要再去 mysql 使用 grant 吗?
目前 PY error 如下
同样指令 server 端可以执行 test 帐号有开 %
试了一堆 也有用 grant 一样不行
话说 36-229-90-122 是什麽阿 应该不是 ip
27F:→ bluecadence: "telnet 114.34.138.146 3306"只是要测试从mysql 08/25 22:34
28F:→ bluecadence: server 能不能从外部连到有乱码就乱码无所谓,你大概 08/25 22:35
29F:→ bluecadence: 误会我的意思 08/25 22:36
30F:→ bluecadence: 36-229-90-122.dynamic-ip.hinet.net 是host name 08/25 22:37
31F:→ bluecadence: ip 是 36.229.90.122 08/25 22:37
32F:→ bluecadence: 你的问题看起来就是test帐户权限没设定好 08/25 22:38
解决了 我帐号多打个空格.............
感谢各位 可以连上了
※ 编辑: f496328mm (36.229.90.122), 08/28/2017 03:07:11