1、背景:
启动MariaDB服务,通过python远程访问数据库失败,查询MariaDB日志(systemctl status mariadb)报错信息为:
user: 'unauthenticated' host: '192.168.1.8' (This connection closed normally without authentication)
2、原因:
Mysql为了安全性,在默认情况下用户只允许在本地登录,关闭了远程登录权限
3、解决办法:
两个步骤:
(1)登录mysql
mysql -u sjm -p
(2)允许用户在任何地方进行远程登录,并具有所有库任何操作权限
GRANT ALL PRIVILEGES ON *.* TO 'sjm'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
(3)查询用户及host:select user,host from mysql.user;
附:
1、python验证连接数据库代码
1 import pymysql 2 3 # 打开数据库连接 4 db = pymysql.connect( 5 host="192.168.1.14", 6 user="sjm", 7 password="123456", 8 database="sjm_db", 9 port=3306 10 ) 11 12 # 使用 cursor() 方法创建一个游标对象 cursor 13 cursor = db.cursor() 14 15 # 使用 execute() 方法执行 SQL 查询 16 cursor.execute("SELECT VERSION()") 17 18 # 使用 fetchone() 方法获取单条数据. 19 data = cursor.fetchone() 20 21 print("Database version : %s " % data) 22 23 # 关闭数据库连接 24 db.close()
参考:
https://blog.csdn.net/zhengnz/article/details/6308773