首页 > 解决方案 > PHP连接到MySQL错误

问题描述

我不断收到此错误:警告:mysqli_connect():(HY000/1045):用户'12345'@'localhost'的访问被拒绝(使用密码:是)。我已经尝试创建一个新用户,使用密码,不使用密码,授予新用户权限。我可以使用这些凭据登录到 mysql 数据库。我可以在 MySQL 中使用它们运行每个命令,只是不连接到 PHP。如果重要的话,这是我的 php 代码

<? php 
$dbServername = "localhost";
$dbUsername = "12345";
$dbPassword = "12345";
$dbName = "loginsystem";

$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

When showing grants for user: '12345'@'localhost':

mysql> SHOW GRANTS FOR '12345'@'localhost';
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for 12345@localhost                                                                                                                                                                                                                                                                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `12345`@`localhost` |
| GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `12345`@`localhost`                                                                                                  |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

/etc/my.cnf 文件(内部 MYSQL):

[mysqld_safe]
[mysqld]
secure_file_priv="/Users/Steven/"

/etc/my.cnf 文件(在 xAMPP 内部):

#password   = your_password
port        = 3306
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
user = mysql
port=3307
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
skip-external-locking
key_buffer = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
innodb_force_recovery = 1

哦,我忘了提到我确实刷新了权限并重新启动了服务器。

标签: phpmysql

解决方案


你好@Steven 根据我的经验 xampp 在 Mac 上给出错误(至少在我看来)所以我使用了MAMP。如果你愿意,你可以检查一下。但是到你的错误点,这似乎是一个连接问题:请尝试这个连接代码:

$user = '12345'; 
$password = '12345'; 
$db = 'loginsystem'; 
$host = 'localhost'; 
$port = your_port-might-be-3306; 
$link = mysqli_init(); 
$success = mysqli_real_connect( $link, $host, $user, $password, $db, $port ); 
echo $success;

如果 $success 变量显示 1,则表示连接正常。如果是这样,那么您的连接有效。


推荐阅读