我正在尝试使用python连接到我的本地mysql系统。
我注意到我只能通过sudo /usr/bin/mysql -u root -p从控制台登录到我的mysql系统
我浏览了网络,对所有的建议感到非常困惑,没有一个对我有用。
就像我试过的
mysql> SELECT User, Host, plugin FROM mysql.user;
这给了我...
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | mysql_native_password |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
| keith | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.12 sec)
…
…
import mysql.connector
cnx = mysql.connector.connect(user='root', password='#########',
host='127.0.0.1',
database='SurveyData')
cnx.close()
…
我收到以下错误
…
MySQLInterfaceError Traceback (most recent call last)
~/miniconda3/lib/python3.7/site-packages/mysql/connector /connection_cext.py in _open_connection(self)
199 try:
--> 200 self._cmysql.connect(**cnx_kwargs)
201 except MySQLInterfaceError as exc:
MySQLInterfaceError: Access denied for user 'root'@'localhost'
During handling of the above exception, another exception occurred:
看来你用root@localhost然后连接。你试过root@127.0.0.1吗?
另请检查:用户“root”@“localhost”的访问被拒绝(使用密码:是)-没有权限?
通过命令行向用户帐户授予全局权限。打开终端并运行以下命令。
:~$ mysql -u root -p
Enter password:
mysql> GRANT SELECT ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
授予用户帐户特殊的模式权限。在命令下打开终端运行。
:~$ mysql -u root -p
Enter password:
mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON SurveyData.* TO 'root'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON SurveyData.* TO 'root'@'localhost';
Query OK, 0 rows affected (0.00 sec)
我使用这个脚本进行测试:
try:
connection = mysql.connector.connect(host='localhost',
database='SurveyData',
user='root',
password='########')
if connection.is_connected():
db_Info = connection.get_server_info()
print("Connected to MySQL Server version ", db_Info)
cursor = connection.cursor()
cursor.execute("select database();")
record = cursor.fetchone()
print("Your connected to database: ", record)
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if (connection.is_connected()):
cursor.close()
connection.close()
print("MySQL connection is closed")
使用根用户登录可以被认为是一种“潜在风险”,这解释了为什么通过该用户的任何连接都会被阻止。因此,解决方案是创建一个新用户,并授予他们所有权限。
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
问题内容: $ ./mysqladmin -u root -p ‘ 编辑 ‘ 输入密码: mysqladmin:在“ localhost”处连接到服务器失败错误: “对用户“ root” @“ localhost”的访问被拒绝(使用密码:是) 我怎样才能解决这个问题? 问题答案: 打开并编辑或,具体取决于您的发行版。 添加下 重启MySQL 您现在应该可以使用以下命令登录mysql 跑 设置新密码
$./mysqladmin-u root-p“redacted” 输入密码: mysqladmin:连接到“localhost”的服务器失败错误: “拒绝用户”root“@"localhost”的访问(使用密码:YES)“ 我该怎么解决这个?
我正在设置一个新的服务器,但一直遇到这个问题。 当我尝试使用root用户登录MySQL数据库时,我得到了以下错误: 错误1698(28000):拒绝用户'root'@'localhost'的访问 不管我是通过终端(SSH)连接,还是通过PHPMyAdmin或MySQL客户端(例如Navicat)连接。他们都失败了。 我查看了mysql.user表,得到了以下信息: 如您所见,root用户应该具有访
问题内容: $ ./mysqladmin -u root -p ‘ 编辑 ‘ 输入密码: mysqladmin:在“ localhost”处连接到服务器失败错误: “对用户“ root” @“ localhost”的访问被拒绝(使用密码:是) 我怎样才能解决这个问题? 问题答案: 打开并编辑或,具体取决于您的发行版。 在下添加 重启MySQL 您现在应该可以使用以下命令登录mysql 跑 设置新密
问题内容: 我正在设置新服务器,并继续遇到此问题。 当我尝试以root用户登录MySQL数据库时,出现错误: 错误1698(28000):用户’root’@’localhost’的访问被拒绝 是否通过终端(SSH),PHPMyAdmin或MySQL客户端(例如Navicat)连接都没有关系。他们都失败了。 我在mysql.user表中查看了以下内容: 如您所见,root应该具有访问权限。 该服务器
错误1045(28000):拒绝用户'root'@'localhost'的访问(使用密码:Y ES) 这个错误是什么意思?