首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

MySQL进入时报错及使用中的几个基本问题

http://www.oklinux.cn  2008-10-02  linuxidc   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

Linux下进入MySQL时报错如下:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这很简单,是因为MySQL服务未启动,但从字面意思上看不出问题,比较诡异,解决办法:

service mysqld start

1. MySQL数据库的数据存放在什么位置?

/etc/mysql/my.cnf文件中的datadir参数指明了mysql数据库存放的位置。(默认:/var/lib/mysql)。

2. 查看mysql字符集(编码)的命令:

show variables like 'character_set_%';
show variables like 'collation_%';
show variables like '%server%';
status;

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

3. 编码(字符集)统一为utf8

启动 mysql时,如果没指定指定一个默认的的字符集,这个值继承自配置文件中的(mysql默认的编码是latin1);此时 character_set_server 被设定为这个默认的字符集; 当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为 character_set_server; 当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集; 在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集。

这样问题就随之而来了,假如一数据库是gbk编码。如果访问数据库时没指定其的字符集是gbk。那么这个值将继承系统的latin1,这样就做成mysql中文乱码。

(1)mysql默认的编码是latin1,在/etc/mysql/my.cnf中将默认编码设置为utf8:

在[client]和[mysqld]下添加:default-character-set=utf8。为了使设置生效,执行:sudo service mysql restart

(2)修改php访问方式,在调用mysql_connect函数后添加:

mysql_query("SET NAMES 'UTF8'");
SET NAMES 'UTF8' 就等价于:
SET character_set_client='utf8'
SET character_set_connection='utf8'
SET character_set_results='utf8'

注:set names 必须在连接数据库之后,执行sql语句之前!你数据库用什么编码,在对数据库操作之前就set names '你的编码'。

4. 数据库编码转换(latin1 到 utf8)

(1)latin1编码数据导出:mysqldump -uroot -p --compatible=mysql40 --default-character-set=latin1 mydb > ~/Desktop/old.sql

(2)新建一个空数据库:mynewdb

(3)导入utf8编码数据:mysql -hlocalhost -uroot -p --default-character-set=utf8 mynewdb < ~/Desktop/old.sql

至此,mynewdb即为所求的utf8的数据库,原mydb可删除,也可省去(2)步,第(3)步直接导回mydb中。

注:这种方法有个致命之处就是当数据中有大量中文字符和其他特殊符号字符时,很有可能导致在(3)时报错导致无法正常导入数据,如果数据库比较大可以分别对每张表执行上述步骤。


上一篇:Wubi安装的Ubuntu文件夹成功转移到其它分区   下一篇:为ARM Linux添加xml支持

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux安装编译好MySQL二进制包出现问题的解决实例
·Ubuntu下安装MySQL离线包及相关配置
·小技巧 修改Linux下数据库文件描述数
·关于MySQL簇问题的成功解决
·Ubuntu 8.04下配置项目管理工具Trac
·巧用Linux管道,让MySQL执行大量脚本文件
·Linux下安装访问SQL SERVER2000数据库(附文件下载)
·MySQL和PHP中的substr
·lighttpd mysql php简单教程
·Ubuntu下安装配置openser 1.3.1
·数据库还原提示MySQL server has gone away 的解决方
·Linux或Windows下安装MySQL Server无法正常连接的解决
·Linux上建立第二个ORACLE实例分析
·MySQL取得一个表的列名
·Ubuntu Linux系统下MySQL安装指南
·在Linux下安装MySQL的二进制源代码包
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux安装编译好MySQL二进制包出现问题
·Ubuntu下安装MySQL离线包及相关配置
·小技巧 修改Linux下数据库文件描述数
·关于MySQL簇问题的成功解决
·Ubuntu 8.04下配置项目管理工具Trac
·巧用Linux管道,让MySQL执行大量脚本文
·Linux下安装访问SQL SERVER2000数据库(
·MySQL和PHP中的substr
·lighttpd mysql php简单教程
·Ubuntu下安装配置openser 1.3.1
·数据库还原提示MySQL server has gone
·Linux或Windows下安装MySQL Server无法
  阅读排行
·Oracle建表过程初学
·RHEL5.1 下安装Oracle 10.2.0.1及常见
·Linux操作系统下MySQL的卸载、安装全过
·Linux系统中Oracle数据库的用户权限
·Oracle 建立临时表语法及使用技巧
·Linux平台下启动oracle 11g EM控制台
·The busy Java developer's guide to d
·Linux平台下配置MySQL主从复制
·Mysql JDBC驱动版本与Mysql版本的对应
·Linux下安装Oracle数据库完整笔记
·新建Oracle数据库三种方法
·Oracle客户端出现乱码的解决
·关于MySQL事务处理学习
·Linux平台下修正MySQL中文乱码问题
·Linux系统下查看oracle SID的方法
网摘收藏: