Codeigniter 远程数据库连接问题
Codeigniter Remote Database Connection Issue
需要 Codeigniter 项目(in windows)才能连接远程 Mysql 数据库( 在linux 服务器)。这是我的 database.php 配置。
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'xxx.xxx.x.xxx';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'database';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
它给出了一个错误
A Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: *:\****\***\htdocs\project\system\database\DB_driver.php
Line Number: 124
但我可以使用相同的用户名和密码通过 Phpmyadmin 和 Heidisql 访问远程 mysql 数据库。 (授予所有权限)
这里是远程数据库配置
Server version: 5.0.95
Protocol version: 10
Server: Localhost via UNIX socket
MySQL charset: UTF-8 Unicode (utf8)
MySQL client version: 5.0.95
Used PHP extensions: mysql
如有任何帮助,我们将不胜感激
不确定这是否有帮助,但我以前遇到过类似的问题。
$db['default']['dbdriver'] = 'mysqli';
而不是
$db['default']['dbdriver'] = 'mysql';
几个月前,我在连接到 linux 中的远程 mysql 服务器时遇到了同样的问题。
我在 mysql 中通过 PHPMYADMIN
试过了
SHOW VARIABLES LIKE 'old_passwords'
它说我 ON
表示服务器mysql配置中的my.cnf
文件中的old_passwords=1
。
此问题的解决方案是更新相应用户password
参考:Error: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
看看这是否有效
创建具有所有权限的用户,记得将主机设置为%
编辑mysqld.cnf并设置"bind-address = 0.0.0.0"(可能是/etc/mysql/mysql.conf.d/mysqld.cnf)
重启mysql
需要 Codeigniter 项目(in windows)才能连接远程 Mysql 数据库( 在linux 服务器)。这是我的 database.php 配置。
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'xxx.xxx.x.xxx';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'database';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
它给出了一个错误
A Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: *:\****\***\htdocs\project\system\database\DB_driver.php
Line Number: 124
但我可以使用相同的用户名和密码通过 Phpmyadmin 和 Heidisql 访问远程 mysql 数据库。 (授予所有权限)
这里是远程数据库配置
Server version: 5.0.95
Protocol version: 10
Server: Localhost via UNIX socket
MySQL charset: UTF-8 Unicode (utf8)
MySQL client version: 5.0.95
Used PHP extensions: mysql
如有任何帮助,我们将不胜感激
不确定这是否有帮助,但我以前遇到过类似的问题。
$db['default']['dbdriver'] = 'mysqli';
而不是
$db['default']['dbdriver'] = 'mysql';
几个月前,我在连接到 linux 中的远程 mysql 服务器时遇到了同样的问题。
我在 mysql 中通过 PHPMYADMIN
试过了SHOW VARIABLES LIKE 'old_passwords'
它说我 ON
表示服务器mysql配置中的my.cnf
文件中的old_passwords=1
。
此问题的解决方案是更新相应用户password
参考:Error: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
看看这是否有效
创建具有所有权限的用户,记得将主机设置为%
编辑mysqld.cnf并设置"bind-address = 0.0.0.0"(可能是/etc/mysql/mysql.conf.d/mysqld.cnf)
重启mysql