Php 尝试使用mysqli连接到数据库时出现Codeigniter错误
我在服务器上的CodeIgniter应用程序中遇到以下错误 以下是错误的输出: 遇到一个PHP错误 严重性:警告 消息:mysqli::real_connect():(HY000/1044):拒绝用户访问 “xxx”@“localhost”到数据库“xxx” 文件名:mysqli/mysqli_driver.php 行号:161 回溯: 文件:/home/arya123/public_html/application/controllers/home.php行: 7功能:构造 文件:/home/arya123/public_html/index.php行:292函数: 需要一次Php 尝试使用mysqli连接到数据库时出现Codeigniter错误,php,codeigniter,mysqli,Php,Codeigniter,Mysqli,我在服务器上的CodeIgniter应用程序中遇到以下错误 以下是错误的输出: 遇到一个PHP错误 严重性:警告 消息:mysqli::real_connect():(HY000/1044):拒绝用户访问 “xxx”@“localhost”到数据库“xxx” 文件名:mysqli/mysqli_driver.php 行号:161 回溯: 文件:/home/arya123/public_html/application/controllers/home.php行: 7功能:构造 文件:/home/
当我将codeigniter项目从localhost上传到Live server时,遇到了相同的错误 我找到的解决方案是对application=>config=>database.php进行一些更改 以下是的数据库设置 本地主机 以下是的数据库设置: 实时服务器(仅演示,设置因主机提供商而异) 1) 首先,您必须创建数据库 2) 在仪表板上查找MySql数据库(或任何相关数据库) 3) 创建新数据库并输入数据库名称、用户名和密码 4) 从本地主机导出数据库 5) 在live server上打开phpmyadmin并导入它 6) 使用FTP客户端或仪表板更改application=>config=>database.php的设置
$db['default'] = array(
'dsn' => '',
'hostname' => 'mysql.hostingprovider.com',
'username' => 'abc.username',
'password' => 'abc.password',
'database' => 'abc.databasename',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
您必须在database.php中设置默认为3306的mysql端口号 使用其中一个
'dbport' => '3306',
或
请执行以下操作:
applications/config/database.php
中,将dbport=>'3306',
添加到默认数组$db['default']=array()代码>
system/database/DB_driver.php
中,更改public$port=''代码>至公共$port='3306'代码>
但是,如果您不知道,我想,您可以搜索数据库连接使用的端口,并使用“:”将其添加到主机名中”(如果您不确定使用的是哪个端口,您总是可以在您的D.B.管理工具(phpmyadmin或您正在使用的端口)的选项中看到,哪个端口正在使用).尝试使用无特殊字符的普通密码,以下是示例:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'password',
'password' => 'Mynewpass@756',
'database' => 'database_name',
);
您可以添加新用户并通过,并授予其所有权限,如下所示:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
然后,你应该用新用户更新config.php文件并通过。用端口连接localhost为我解决了这个问题
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost:3308', //Added port here
'username' => 'root',
'password' => '1234',
'database' => 'my_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
您可以编辑服务器的php.ini文件,以定义CodeIgniter默认使用的端口
C:\wamp64\bin\apache\apache2.4.41\bin\php.ini
mysqli\u connect()
的默认端口号
mysqli.default\u port=3308
尝试在没有任何密码的情况下将config/database.php'username'=>'xxx'设置为'username'=>'root'
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
在数据库文件中,RU使用哪个扩展名<代码>$config['dbdriver']=“mysqli”代码>似乎您没有接近该数据库的权限。是外部数据库还是
localhost
(服务器的)数据库?您是否检查了应用程序/config/database.php设置是否正确?如果您使用共享主机su作为godaddy,我建议您检查您创建的用户,因为我有相同的问题,但如果您使用OSX,则是MySQL中的用户权限问题,这是正确答案,因为您是否发现执行此步骤有任何困难?还是你错过了什么?您是否更改了主机名、用户名、密码和数据库名?请再检查一下!是的,一切如你所说
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost:3308', //Added port here
'username' => 'root',
'password' => '1234',
'database' => 'my_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',