需要一个Codeigniter项目(在
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
任何帮助将不胜感激
最佳答案 在几个月前连接到linux中的远程mysql服务器之前,我遇到了同样的问题.
我通过PHPMYADMIN在mysql中尝试了这个
显示变量像’old_passwords’,它告诉我ON
这意味着my.cnf文件中的old_passwords = 1在服务器mysql配置中.
解决此问题的方法是更新相应用户的密码
参考:Error: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication