在本地用pymysql连接远程服务器时,出现了一个错误。
(1130, "Host '58.20.30.102' is not allowed to connect to this MySQL server")
说的是主机不允许远程连接MySQL
原因是Mysql配置了不支持远程连接。
参考https://blog.csdn.net/h985161183/article/details/82218710
import pymysql
db = pymysql.connect("134.175.58.163","root","nlp123.","test" )
db2 = pymysql.connect(host='134.175.58.163', user='root', password='nlp123.', port=3306)
记录下操作过程
[root@VM_0_14_centos test]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 54
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use RUNOOB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host from user where user='root';
ERROR 1146 (42S02): Table 'RUNOOB.user' doesn't exist
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host from user where user='root';
+-----------+
| host |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)
mysql> update user set host = '%' where user ='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privilegs;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'privilegs' at line 1
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql>
连接成功