PHP5.3連接MySQL出現 mysqlnd cannot connect to MySQL 4.1+ using old authentication錯誤
1、編輯my.cnf注釋掉一下行:
old_passwords = 1
2、重啟MySQL
service mysqld restart
/etc/inint.d/mysqld restart
3、檢查是否有16位的密碼
SELECT user, Length(`Password`) FROM `mysql`.`user`;
4、如果有,把對應的用戶名密碼用以下SQL更新
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
5、更新后要刷新
FLUSH PRIVILEGES;
/usr/bin/phpize
CFLAGS="-I/opt/ora11/oracle/"
CXXFLAGS="-I/opt/ora11/oracle/"
./configure --with-php-config=/usr/bin/php-config --with-oci8=/opt/ora11/oracle
make
make install
grant select,insert,update,delete on *.* to root@"202.11.10.253"
Identified by "dboomysql";
----允許地址202.11.10.253上用root用戶,密碼dboomysql來連接mysql的所有數據庫,付給
select,insert,update,delete權限。
grant all on *.* to root@"202.11.10.253" Identified by "dboomysql"
----允許地址202.11.10.253上用root用戶,密碼dboomysql來連接mysql的所有數據庫,付給所有權限。
GRANT ALL PRIVILEGES ON dbname.* TO db_root_name@"%" IDENTIFIED BY "db_root_passwd";
----讓用戶有從任意地址訪問某數據庫的全部權限
還可能需要修改配置文件:
vi /etc/mysql/my.cnf
bind-address = 127.0.0.1 --> bind-address = 0.0.0.0
7、顯示中文亂碼解決,修改my.cnf
[client]
default-character-set=GBK
[mysqld]
default-character-set=GBK
init_connect='SET NAMES gbk'
或者執(zhí)行以下語句:
SET character_set_client = utf8 ;
SET character_set_connection = utf8 ;
SET character_set_database = utf8 ;
SET character_set_results = utf8 ;
SET character_set_server = utf8 ;
SET collation_connection = utf8 ;
SET collation_database = utf8 ;
SET collation_server = utf8 ;
使用命令 SHOW VARIABLES LIKE 'character%';查看數據庫編碼
需要特別注意,如果是SUPER用戶比如root進行數據庫連接查詢,則上述配置中的init_connect不會起作用,
此時只能在查詢數據庫前先執(zhí)行:mysql_query('SET NAMES gbk');才可以。