我已经重新安装了MariaDB,没有密码。
通过mysql
进行的连接对于root用户有效,无需密码,也不需要任何其他参数。
$ sudo -i root
$ mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Server version: 10.2.21-MariaDB-log MariaDB Server
但是使用python MySQLdb库连接到套接字失败:
$ python
Python 2.7.5 (default, Sep 12 2018, 05:31:16)
>>> import MySQLdb
>>> MySQLdb.connect(unix_socket='/var/lib/mysql/mysql.sock')
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
MariaDB与MySQL的兼容性是否有问题?有人可以复制吗?
答案 0 :(得分:0)
它不是无密码的root帐户。这是一个带有默认密码的密码。
mysql
只是从/etc/my.cnf.d/文件夹自动读取
[client]
socket = /var/lib/mysql/mysql.sock
host = localhost
user = root
password = ...
要调试mysql
的CLI行为与python MySQLdb行为,可以运行
mysql --no-defaults
已经为我重现了行为,所以我继续:
mysql --no-defaults --socket=/var/lib/mysql/mysql.sock
mysql --no-defaults --socket=/var/lib/mysql/mysql.sock --user=root
然后想到了更深入地研究/etc/my.cnf.d/文件夹的想法。