我不断收到此错误:警告:mysqli_connect():(HY000/1045):用户“12345”@“localhost”的访问被拒绝(使用密码:YES)。我已经尝试过创建新用户、使用密码、不使用密码、向新用户授予权限。我可以使用这些凭据登录 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
Oh I forgot to mention I did flush privileges and restarts of server.
最佳答案
你好@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,则表示连接正常。如果是这样,那么您的连接有效。
关于PHP 连接 MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51273023/