MySQL 4.1怎么升级_MYSQL向4.1版本升级的一些注意事项

mysql4.1是比较烦人,怎么弄都乱码,以下是部份网上流传之解决办法的资料: 1.修改/etc/my.cnf文件,找到 [mysqld]并在下面加一句: default-character-set=utf8 2. 重新启动mysql; 打开phpmyadmin,选择lang为"Chines simplifies(zh-utf-8)",选择"MySQL 连接校对"为"utf8_general_ci "点“显示 MySQL 的运行信息”--“变量”,可以看到: character set client utf8 utf8 character set connection utf8 utf8 character set database utf8 utf8 character set results utf8 utf8 character set server utf8 utf8 character set system utf8 utf8 collation connection utf8_general_ci utf8_general_ci collation database utf8_general_ci utf8_general_ci collation server utf8_general_ci utf8_general_ci 从这里可以看到character全部变成utf8了 将以前的mysql3的库文件导入mysql4.1的库,有两种情况: 一.  从phpmyadmin上导入时,要注意的是在选择库文件的页面左下脚有个“文件的字符集:”,默认是utf8,改成gb2312,否则导进去乱码; 二.  在终端命令行方式导入,这时候你需要先在导入文件的头部加一行: SET NAMES 'gb2312'; 并注意最后也是;号,别漏了。 然后执行mysql -u用户名 -p密码 xxx.sql > 文件名 3. 从mysql4.1里导出库文件 一.用phpmyadmin导出, 导出倒是问题不大,如果phpmyadmin的浏览页面里显示的中文是正常的,那么导出肯定也是正常的。 二.从终端程序导出, 如果用mysqldump导出出现了乱码也没有关系,可以运行iconv来转换一下: iconv -c -f UTF-8 -t GB2312 库文件名 > 新的gb2312的库文件名 综上所述,你要注意: 1。尽量在需要导入的库文件的开头加入SET NAMES 'gb2312';告诉mysql你要导入的是一个gb2312的文件; 2。可能你需要这个: SET NAMES 'utf8'; 在登陆到mysql后用,把character的一些默认参数改到utf8上,有时可以减少一些困扰,不过也不是必须的。 在mysql上使用 SHOW VARIABLES LIKE 'character_set_%'; 用来查看当前的状态。 3.如果出现乱码也不要怕,其一是你要注意留存原有的备份,其二是用iconv来进行转化。 在正常使用之前注意做导入导出的测试,确保万无一失。 #PHP连接和网页显示的乱码问题: 由于MySQL 4.1版本开始密码的hash算法改变,所以连接数据库时可能会出现Client does not support authentication protocol问题。 可以通过一下两种方法解决数据库用户密码不符问题: 其一: mysql> SET PASSWORD FOR  'some_user'@'some_host' = OLD_PASSWORD('newpwd'); 其二: mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user' PHP输出的乱码问题:      由于mysql的默认支持编码是latin字符集,所以中文字符在数据库里查看的时候看到的是乱码。但是如果将mysql编译为默认编码utf-8的话,又会造成原来的数据库不兼容,使得原来的内容在网站上显示为乱码。      Mysql 4.1.x出来以后,引入了collation (校勘)的概念,终于有办法让mysql同时支持多种编码的数据库了,所以PHP要用以下SQL语句来创建utf-8编码的数据库: CREATE DATABASE `mytest` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;      但是仅仅是将数据库的校勘改为utf-8是不够的,还必须在连接了mysql数据库之后用这个语句来设置collation connection:SET NAMES 'utf8';      如此,才能在php程序里得到正确编码的字符,并将其显示在web页面里。在drupal里是修改 include/database.mysql.inc 文件,在function db_connect($url)函数的 return $connection; 语句之前加入:mysql_query("SET NAMES 'utf8'",$connection);      也就是说只要在你连到数据库后,所有的查询语句都要类似于这句 mysql_query("Set Names 'uft8'"); 其中 uft8 可改成你需要的编码,e.g. gb2312 等。      总结:PHP和MYSQL互为搭档了很久了,并被大家认同为天生的一对。但我个人并不这么认为,使用PHP完全可以自由选择更快更适用的数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值