有一个我似乎无法找到答案的问题.我正在尝试连接到远程数据库.我输入以下内容到我的Ubuntu shell:
mysql -u test -h mysql.domain.com -p
Run Code Online (Sandbox Code Playgroud)
mysql请求我的密码,然后输出以下内容:
ERROR 1045 (28000): Access denied for user 'test'@'externalit.domain.com' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
问题是我不在外部.我是一个完全不同的主人.我认为我所使用的服务器是从externalit克隆的,但我没有设置服务器.我的问题:mysql有conf文件或其他可能自动输入错误主机名的设置吗?我可以改变吗?
作为root mysql用户,我执行了以下操作:
grant all on mydb.* to john identified by 'john1';
Run Code Online (Sandbox Code Playgroud)
然后从shell,我尝试登录
mysql -h localhost -u john -pjohn1;
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我得到了错误
ERROR 1045 (28000): Access denied for user 'john'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
如何让john登录mysql终端?我是否需要使用root mysql用户来更改mysql.user表中的内容?
谢谢
我将数据库的所有登录信息存储在公共树之外的文件中,例如
$hostname = '172.0.0.0';
$dbname = 'myname_mydbname';
$username = 'myname_user';
$pw = 'password';
Run Code Online (Sandbox Code Playgroud)
这是非常标准的.
问题是我正在使用的这个特定主机需要myname_附加到所有数据库和用户名的前面.当我存储这些字符串并将它们传递给PDO时,它会删除myname后的用户名中的所有内容,并将密码字符串全部放在一起...如果我将用户名和密码作为字符串而不是变量放在函数中,一切正常.我没办法.有人可以帮忙吗?这是函数,因为它在代码中.
不起作用:
$this -> DB = new PDO ("mysql:host={$hostname}; dbname={$dbname}", $username, $pw);
Run Code Online (Sandbox Code Playgroud)
作品:
$this -> DB = new PDO ("mysql:host={$hostname};dbname={$dbname}", 'myname_user', 'password');
Run Code Online (Sandbox Code Playgroud)
我希望有人在这里可以让我感到愚蠢......提前谢谢.-大卫
错误可能会有所帮助......
无法获得数据库句柄:SQLSTATE [28000] [1045]访问被拒绝用户'myname'@'localhost'(使用密码:否)
我是 PHP 新手。执行我的应用程序时出现以下错误:
在phpMyadmin中的代码是这样的
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;
Run Code Online (Sandbox Code Playgroud)
由于我已经采取了备份,我已将上面的代码更改为
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'Pass123';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;
Run Code Online (Sandbox Code Playgroud)
现在我收到以下错误
用户 'root'@'localhost' 访问被拒绝(使用密码:YES)MySQL 错误 #:1045
请让我知道,这里出了什么问题。
这个问题似乎被问了很多但是我找不到明确的答案.
我正在使用MySQL进行一些webapp测试,最初我使用了'root'用户(使用非空密码).我的root用户可以从应用程序(从PHP和Python的Django测试),命令行和PHPMyAdmin中正常工作.
但是我不想使用root用户,因此我创建了另一个用户,并且我将所有权限授予用户应该需要的数据库.(我使用PHPMyAdmin记录为'root'来执行此任务).
新用户无法登录MySQL.既不是来自Django app,也不是PHPMyAdmin,也不是命令行.
我有两个可能的怀疑:
用户缺乏全局特权.(正如我所说的,我授予了所有数据库权限,但是我没有授予任何全局权限);
用户配置的主机.('root'在mysql.user表中有四行,主机'localhost','my-pc-name','127.0.0.1'和':: 1' ;而新用户有一行主机' %')
(我已经仔细检查了密码,所以我确信这不是密码问题.)
我部署了我的Rails应用程序,并在所有页面上获得500个错误.我的production.log没有显示任何内容(这是一个问题),但我做了一个'脚本/控制台生产',并试图运行一个简单的查询(User.find:first),它抛出这个:
Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
我的database.yml文件肯定有一个密码,这是正确的.
所以,加上没有错误记录到我的production.log文件让我想知道是什么.
我开始寻找的任何想法或问题是什么?
此外,为了它的价值,我在Apache上运行Passenger.
更新:这是我的database.yml文件内容
development:
adapter: mysql
encoding: utf8
database: website_development
username: root
password: secretz
socket: /tmp/mysql.sock
test:
adapter: mysql
encoding: utf8
database: website_test
username: root
password: secretz
socket: /tmp/mysql.sock
production:
adapter: mysql
encoding: utf8
database: website_production
username: ttp_mysql
password: secretz
socket: /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
新更新:我更改了mysql用户,因此它没有在root中运行,但现在我仍然得到"拒绝访问'root'@'localhost'"位...即使在生产模式下它也不应该完全按照'root'运行.
现在真的很困惑.
这是非常基本的问题,我很抱歉提出这样一个菜鸟问题。
\n\n但我收到这个错误:
\n\nWarning: mysql_connect(): Access denied for user '\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1'@'172.16.3.139' (using password: YES) in /usr/local/pem/vhosts/103503/webspace/httpdocs/eirestudio-tools/crm/add-contact.php on line 53 \nRun Code Online (Sandbox Code Playgroud)\n\n用户说\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1?
\n\n这是什么意思?
\n\n下面是一个示例连接,请注意用户,为什么我得到\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1?
\n\nmysql_connect('localhost', '\xe2\x80\x8e\xe2\x80\x8euser', 'pass');\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试使用以下查询从mysql创建csv数据导出:
SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM getfreepellets WHERE 1
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
#1045 - Access denied for user '[username]'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
(删除了用户名,但它是正确的用户名)
如何授予此用户访问权限以在服务器上创建文件?
编辑:
我将第一行更改为我的确切主路径,并收到相同的错误.
当我尝试使用mysql_real_escape_string()时,我收到此错误.
Access denied for user 'ODBC'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我必须连接到数据库以检查值是否可以插入MySQL.
当有人在我的MySQL数据库中注册时,此函数必须工作:
mysql_query("SELECT mail
FROM users
INTO OUTFILE 'test.txt'");
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误
用户'registerdb'@'%'的访问被拒绝(使用密码:YES)
那么我如何给会话/用户提供FILE写权限?