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验证连接数据库代码
import pymysql # 打开数据库连接 db = pymysql.connect( host="192.168.1.14", user="sjm", password="123456", database="sjm_db", port=3306 ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print("Database version : %s " % data) # 关闭数据库连接 db.close()
参考:
https://blog.csdn.net/zhengnz/article/details/6308773
[问题][manjaro][MariaDB]启动MariaDB后,无法远程访问,报错信息:'unconnected' user: 'unauthenticated'
原文:https://www.cnblogs.com/shijianming/p/14400896.html