昨天想换linux服务器,用apache+php+mysql搭建,把原服务器的数据导入并配置运行后网页有部分文字是乱码。
静态的文字显示没问题,但是公告栏就是像问号一样的乱码,数据库编码已经改成utf8还是不能正常显示。打开数据库发现数据库中的中文也是乱码,请问如何解决。...
静态的文字显示没问题,但是公告栏就是像问号一样的乱码,数据库编码已经改成utf8还是不能正常显示。打开数据库发现数据库中的中文也是乱码,请问如何解决。
展开
2012-03-27
展开全部
由于在使用的linux服务器上已经安装了一个较低版本的mysql server,使用rpm包进行安装时,提示版本冲突,安装不能继续进行。
由于旧的数据不想要了,解决办法是这样的:
1、 先把系统里安装的所有mysql找出来(注意大小写)
#rpm -qa|grap -i mysql 运行此命令后,显示所有列表
mysql-4.1.20-1.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2、 将列表一一强制删除:
#rpm -ev --nodeps mysql-4.1.20-1.RHEL4.1
#rpm -ev --nodeps mysqlclient10-3.23.58-4.RHEL4.1
3、 将老版本的几个文件手工删除:
#rpm -f /etc/my.cnf
#rpm -rf /usr/var/lib/mysql
现在可以进行mysql的全新安装,需要的软件包:
软件包名和用途
MySQL-server-community-5.0.51a-0.rhel4.i386.rpm MySQL服务器软件
MySQL-client-community-5.0.51a-0.rhel4.i386.rpm MySQL客户端软件
MySQL-devel-community-5.0.51a-0.rhel4.i386.rpm 各种库文件,包括为了编译其他MySQL客户端所需软件
MySQL-shared-community-5.0.51a-0.rhel4.i386.rpm
MySQL-shared-compat-4.0.24-0.i386.rpm
MySQL客户端共享的一些库文件,和shared-compat只能选择一个
perl-DBI-1.40-5.i386.rpm Perl软件支持
将下载的软件包上传至linux服务器后开始安装 (注意安装顺序)
设置管理员root密码:
[root@localhost mysql]# /usr/bin/mysqladmin -u root password '123456'
复制配置文件:
[root@localhost mysql]# cd /usr/share/mysql
[root@localhost mysql]# cp my-medium.cnf /etc/my.cnf
启动MySQL服务:
[root@localhost mysql]# service mysql start
加入启动失败尝试将配置文件/etc/selinux/config 中的SELINUX = forcing修改为disabled,然后保存重启计算机。
更多linux mysql php安装请访问
此处转载的谢谢采纳
由于旧的数据不想要了,解决办法是这样的:
1、 先把系统里安装的所有mysql找出来(注意大小写)
#rpm -qa|grap -i mysql 运行此命令后,显示所有列表
mysql-4.1.20-1.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2、 将列表一一强制删除:
#rpm -ev --nodeps mysql-4.1.20-1.RHEL4.1
#rpm -ev --nodeps mysqlclient10-3.23.58-4.RHEL4.1
3、 将老版本的几个文件手工删除:
#rpm -f /etc/my.cnf
#rpm -rf /usr/var/lib/mysql
现在可以进行mysql的全新安装,需要的软件包:
软件包名和用途
MySQL-server-community-5.0.51a-0.rhel4.i386.rpm MySQL服务器软件
MySQL-client-community-5.0.51a-0.rhel4.i386.rpm MySQL客户端软件
MySQL-devel-community-5.0.51a-0.rhel4.i386.rpm 各种库文件,包括为了编译其他MySQL客户端所需软件
MySQL-shared-community-5.0.51a-0.rhel4.i386.rpm
MySQL-shared-compat-4.0.24-0.i386.rpm
MySQL客户端共享的一些库文件,和shared-compat只能选择一个
perl-DBI-1.40-5.i386.rpm Perl软件支持
将下载的软件包上传至linux服务器后开始安装 (注意安装顺序)
设置管理员root密码:
[root@localhost mysql]# /usr/bin/mysqladmin -u root password '123456'
复制配置文件:
[root@localhost mysql]# cd /usr/share/mysql
[root@localhost mysql]# cp my-medium.cnf /etc/my.cnf
启动MySQL服务:
[root@localhost mysql]# service mysql start
加入启动失败尝试将配置文件/etc/selinux/config 中的SELINUX = forcing修改为disabled,然后保存重启计算机。
更多linux mysql php安装请访问
此处转载的谢谢采纳
追问
我安装的mysql5.0版本,并没有提示冲突。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能你的空间编码问题了吧,设置一下,我用的湖北数据中心的网站空间,挺好的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-27
展开全部
查看这部分乱码的文字页面编码是不是和系统的语言编码不匹配呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要先定义成转换成utf8再导入
追问
您能详细的说一下吗?
追答
ALTER DATABASE changes only default charset, it does not
alter the tables.
You need to run this query in a loop:
for each table
ALTER TABLE table_XXX CONVERT TO CHARACTER SET utf8 COLLATE utf8_persian_ci;
意思就是说,你开始更改的只是数据库的默认字符。
你要使用循环语句校对修改你所有数据库表的字符。
如果用户想改变表的默认字符集和所有的字符列的字符集到一个新的字符集,使用下面的语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
警告:
上述操作是在字符集中转换列值。如果用户在字符集(如 gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如 utf8),那么该操作将不会得到用户期望的结果。在这种情况下,用户必须对每一列做如下操作:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
这样做的原因是:从 BLOB 列转换或转换到 BLOB 列没有转换发生。
如果用户指定以二进制进行 CONVERT TO CHARACTER SET,则 CHAR、VARCHAR 和 TEXT 列将转换为它们对应的二进制字符串类型(BINARY,VARBINARY,BLOB)。这意味着这些列将不再有字符集,随后的 CONVERT TO 操作也将不会作用到它们上。
如果仅仅改变一个表的缺省字符集,可使用下面的语句:
ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;
DEFAULT是可选的。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER TABLE ... ADD column)。
ALTER TABLE ... DEFAULT CHARACTER SET 和 ALTER TABLE ... CHARACTER SET 是等价的,修改的仅仅是缺省的表字符集。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询