我是Raspberry Pi和MySQL的新手。
我已经在phpmyadmin中创建了一个代码数据库,该代码由PC中的wamp服务器运行。同时,我想在Raspberry Pi 3中运行此代码。除此之外,当我在Raspberry Pi 3中运行代码时,我希望数据可以保存在phpmyadmin中,因此,当我在PC上运行localhost时,从Raspberry Pi输入的内容也可以保存在PC中。但是,当我运行它时,它显示如下错误消息:
mysql.connector.errors.ProgrammingError:1698(28000):访问被拒绝 用户'root'@'localhost'
这是我的数据库:
#connect to db
db = mysql.connector.connect(host = 'localhost', user = 'root', password =
'', database = 'user')
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
使用以下查询并在您的数据库上执行。
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
答案 1 :(得分:0)
我有一个Raspberry Pi,并执行了以下步骤:
更新操作系统:
sudo apt-get更新&& sudo apt-get升级
安装mySQL服务器:
sudo apt-get install mysql-server
安装mySQL客户端:
sudo apt-get install mysql-client
检查mySQL的状态:
sudo服务mysql状态
安装mySQL python连接器:
sudo apt-get -y安装python3-mysql.connector
给mySQL一个密码:
sudo mysql -uroot
使用mysql;
更新用户集authentication_string = PASSWORD('mynewpassword'),其中User ='root';
注意:在上面的命令中保留root用户,只需设置密码即可。
退出mySQL:
\ q
停止mySQL服务:
sudo /etc/init.d/mysql stop
启动mySQL服务:
sudo /etc/init.d/mysql start
通过登录数据库来测试新密码:
sudo mysql -u根-p
SHOW DATABASES;
创建数据库YOUR_DATABASE_NAME_HERE;
创建用户“ YOUR_NEW_USERNAME” @“ localhost”,并由“ YOUR_NEW_PASSWORD”标识;
注意:Python需要一个新用户来允许与mySQL通信!我不知道为什么,但是它有用。
在Python中:
import mysql.connector
# The following code tests Pythons connection to mySQL
mydb = mysql.connector.connect(
host="localhost",
user="YOUR_NEW_USER",
password="YOUR_NEW_PASSWORD"
)
print(mydb)
我花了几天的时间从十几个不同的网站上将其拼凑而成。希望我的笔记不会遗漏任何东西。在最后创建新用户似乎是关键问题。我的不是Windows安装,但安装应类似。
答案 2 :(得分:0)
您应该只在要访问数据库的数据库(mysql)中创建一个用户。
MT_Test
密码必须满足要求(1.一个大写字母,2。一个特殊字符)。 现在使用python
CREATE USER 'nikhil'@'localhost' IDENTIFIED BY 'Password';
现在为用户添加权限
import mysql.connector
mydb = mysql.connector.connect(host="localhost",
user="nikhil",
password="Nikhil_12345",
database="database_name")
print(mydb)
答案 3 :(得分:0)
有相同的错误
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root' @ 'localhost' (using password: NO)
但是我试图使用CGI之类的python脚本。
这对我有用:
$ sudo mysql -u root
> use mysql;
> update user set authentication_string=PASSWORD("") where user = "root";
> update user set plugin="mysql_native_password" where user = "root";
> flush privileges;
这是我的代码/usr/lib/cgi-bin/script_cgi.py
的一部分:
#!/usr/bin/python3
import mysql.connector
connection = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='books')
您必须授予它权限:
sudo chmod 755 /usr/lib/cgi-bin/script_cgi.py
还必须启用apache模块:
sudo a2enmod cgid
然后访问localhost,Apache Server现在可以将Python脚本用作CGI:
http://127.0.0.1/cgi-bin/script_cgi.py
有关https://www.tutorialspoint.com/python/python_cgi_programming.htm中的CGI和python的更多信息