在这里让我们一起学习,一起提高!
安装步骤:
  (系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.3,另在RedHat AS4上也安装成功)

一、获取相关开源程序:
  1、【适用CentOS操作系统】利用CentOS Linux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):


sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

Tags: , , ,

按时间段查询MYSQL语句 不指定

jed , 2010-4-22 09:39 , 代码编程 , 评论(0) , 阅读(3476) , Via 本站原创
描述:有一个会员表,有个birthday字段,值为'YYYY-MM-DD'格式,现在要查询一个时间段内过生日的会员,比如'06-03'到'07-08'这个时间段内所有过生日的会员。

SQL语句: Select * From user Where DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d') <= '07-08';

说明:常用的时间日期处理函数,上面的主要是DATE_FORMAT()这个函数的应用。

1、DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');
-> 3
2、 WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
3、DAYOFMONTH(date)
返回date的月份中日期,在1到31范围内。
mysql> select DAYOFMONTH('1998-02-03');
-> 3
4、DAYOFYEAR(date)
返回date在一年中的日数, 在1到366范围内。
mysql> select DAYOFYEAR('1998-02-03');
-> 34

5、MONTH(date)
返回date的月份,范围1到12。
mysql> select MONTH('1998-02-03');
-> 2

6、DAYNAME(date)
返回date的星期名字。
mysql> select DAYNAME("1998-02-05");
-> 'Thursday'

7、MONTHNAME(date)
返回date的月份名字。
mysql> select MONTHNAME("1998-02-05");
-> 'February'

8、QUARTER(date)
返回date一年中的季度,范围1到4。
mysql> select QUARTER('98-04-01');
-> 2

9、WEEK(date)
WEEK(date,first) 对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。2个参形式WEEK()允许 。你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,
从星期一开始。
mysql> select WEEK('1998-02-20');
-> 7
mysql> select WEEK('1998-02-20',0);
-> 7
mysql> select WEEK('1998-02-20',1);
-> 8

10、YEAR(date)
返回date的年份,范围在1000到9999。
mysql> select YEAR('98-02-03');
-> 1998
11、HOUR(time)
返回time的小时,范围是0到23。
mysql> select HOUR('10:05:03');
-> 10
12、MINUTE(time)
返回time的分钟,范围是0到59。
mysql> select MINUTE('98-02-03 10:05:03');
-> 5
13、SECOND(time)
回来time的秒数,范围是0到59。
mysql> select SECOND('10:05:03');
-> 3

14、PERIOD_ADD(P,N)
增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。
mysql> select PERIOD_ADD(9801,2);
-> 199803
15、PERIOD_DIFF(P1,P2)
返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。
mysql> select PERIOD_DIFF(9802,199703);
-> 11

16、

DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
这些功能执行日期运算。对于MySQL 3.22,他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。
在MySQL 3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。(见例子)date是一个指定开始日期的
DATETIME或DATE值,expr是指定加到开始日期或从开始日期减去的间隔值一个表达式,expr是一个字符串;它可以以 一个“-”开始表示负间隔。type是一个关键词,指明表达式应该如何被解释。EXTRACT(type FROM date)函数从日期 中返回“type”间隔。

下表显示了type和expr参数怎样被关联: type值 含义 期望的expr格式
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"
HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"
DAY_HOUR 天和小时 "DAYS HOURS"
YEAR_MONTH 年和月 "YEARS-MONTHS"
HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"
DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"
DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"
MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅 包含YEAR、MONTH和DAY部分(即,没有时间部分),结果是一个DATE值。否则结果是一个DATETIME值。
mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
-> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL "1:1" MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
INTERVAL "1 1:1:1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
-> 1999
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
-> 20102

如果你指定太短的间隔值(不包括type关键词期望的间隔部分),MySQL假设你省掉了间隔值的最左面部分。例如, 如果你指定一个type是DAY_SECOND,值expr被希望有天、小时、分钟和秒部分。如果你象"1:10"这样指定值,
MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说,"1:10" DAY_SECOND以它等价于"1:10" MINUTE_SECOND 的方式解释,这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期, 结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数,日子在新月用最大的天调整。

mysql> select DATE_ADD('1998-01-30', Interval 1 month);
-> 1998-02-28
注意,从前面的例子中词INTERVAL和type关键词不是区分大小写的。
TO_DAYS(date)
给出一个日期date,返回一个天数(从0年的天数)。
mysql> select TO_DAYS(950501);
-> 728779
mysql> select TO_DAYS('1997-10-07');
-> 729669
17、 TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。
18、 FROM_DAYS(N)
给出一个天数N,返回一个DATE值。
mysql> select FROM_DAYS(729669);
-> '1997-10-07'

TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。

19、DATE_FORMAT(date,format)
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。

所有的其他字符不做解释被复制到结果中。

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Saturday October 1997'
mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> select DATE_FORMAT('1997-10-04 22:23:00',
' %D %y %a %d %m %b %j');
-> '4th 97 Sat 04 10 Oct 277'
mysql> select DATE_FORMAT('1997-10-04 22:23:00',
'%H %k %I %r %T %S %w');
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
MySQL3.23中,在格式修饰符字符前需要%。在MySQL更早的版本中,%是可选的。
20、TIME_FORMAT(time,format)
这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。 其他修饰符产生一个NULL值或0。
21、CURDATE()
CURRENT_DATE
以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。
mysql> select CURDATE();
-> '1997-12-15'
mysql> select CURDATE() + 0;
-> 19971215
22、CURTIME()
CURRENT_TIME
以'HH:MM:SS'或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。
mysql> select CURTIME();
-> '23:50:26'
mysql> select CURTIME() + 0;
-> 235026
23、 NOW()
24、SYSDATE()
CURRENT_TIMESTAMP
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的日期和时间,取决于函数是在一个字符串还是在数字的 上下文被使用。
mysql> select NOW();
-> '1997-12-15 23:50:26'
mysql> select NOW() + 0;
-> 19971215235026

25、UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一 个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME 字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。
26、FROM_UNIXTIME(unix_timestamp) &nbs

MySQL 5.0安装配置的图解 不指定

jed , 2009-6-24 16:19 , 数据库技术 , 评论(0) , 阅读(3736) , Via 本站原创

打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面:






          mysql安装向导启动,按“Next”继续





选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程




在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。




填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时

候,数据被清空。按“OK”继续。




返回刚才的界面,按“Next”继续。




确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。




正在安装中,请稍候,直到出现下面的界面




这里是询问你是否要注册一个mysql.com的账号,或是使用已有的账号登陆mysql.com,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。




现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将 “Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。




mysql配置向导启动界面,按“Next”继续。




选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。




选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,大家根据自己的类型选择了,一般选“Server Machine”,不会太少,也不会占满。




选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择了,我这里选择“Transactional Database Only”,按“Next”继续。



对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用用默认位置,直接按“Next”继续




选择您的网站的一般mysql访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里选“Online Transaction Processing(OLTP)”,自己的服务器,应该够用了,按“Next”继续




是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),这样MySQL就不会允许细小的语法错误。如果您还是个新手,我建议您取消标准模式以减少麻烦。但熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续




这个比较重要,就是对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在Character Set那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一次“SET NAMES GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按 “Next”继续。




选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。

这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“New root password”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“Modify Security Settings”前面的勾去掉,安装配置完成后另行修改密码),“Confirm(再输一遍)”内再填一次,防止输错。“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。



确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。



设置完毕,按“Finish”结束mysql的安装与配置——这里有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。

Tags:

mysq 创建utf8 编码的数据库 不指定

jed , 2009-5-21 13:15 , 代码编程 , 评论(0) , 阅读(5179) , Via 本站原创
CREATE DATABASE dbname;

CREATE DATABASE IF NOT EXISTS dbname default charset utf8 COLLATE utf8_general_ci;  
  
其中 COLLATE utf8_general_ci 似乎是按照 utf8 编码排序  
  
或者写成  
  
CREATE DATABASE dbname default charset utf8;  
Tags: ,

linux下安装mysql个人整理 不指定

jed , 2009-4-30 08:03 , 服务器技术 , 评论(0) , 阅读(3724) , Via 本站原创
首选查看是否安装了linux自带的mysql,如果有可以卸载后再安装。

#rpm -qa|grep -i mysql

卸载mysql

#rpm -ev mysqlclient10-3.23.58-4.RHEL4.1

rpm -ev mysql-4.1.12-3.RHEL4.1

如果出现如下错误:
#rpm -e mysql-4.1.12-3.RHEL4.1
error: Failed dependencies:
        libmysqlclient.so.14 is needed by (installed) cyrus-sasl-sql-2.1.19-5.EL4.i386
        libmysqlclient.so.14 is needed by (installed) dovecot-0.99.11-2.EL4.1.i386
那么,你需要按倒序来先删除dovecot-0.99.11-2.EL4.1.i386,然后是cyrus-sasl-sql-2.1.19-5.EL4.i386,最后,你可以完全删除mysql-devel,其他的类似。

#rpm -e cyrus-sasl-sql-2.1.19-5.EL4.i386
#rpm -e libmysqlclient.so.14
#rpm -ev mysql-4.1.12-3.RHEL4.1

下面开始安装mysql

#tar -zvxf mysql-5.0.40.tar.gz
#id mysql   //查看是否建立mysql用户名和用户组,如果没有,请先建立。
#groupadd mysql
#useradd -g mysql mysql
#cd mysql-5.0.40
#./configure -prefix=/usr/local/mysql -with-charset=gbk -with-extra-charsets=all //默认字符集是GBK,带扩展字符集。
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf
#./scripts/mysql_install_db --user=mysql
//初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/var
#chown -R mysql /usr/local/mysql/var/.
#chown -R mysql /usr/local/mysql/var/
#chown -R mysql /usr/local/mysql/var/mysql
#chown -R mysql /usr/local/mysql/var/mysql/
#chown -R mysql /usr/local/mysql/var/mysql/.
#chgrp -R mysql /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# service mysqld start
# netstat -atln 查看mysql端口3306是否打开,如果打开说明安装成功

设置mysql 中root密码:/usr/local/mysql/bin/mysqladmin -u root password 'new-password'

Tags: ,
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

首先查看mysql的版本信息:

#rpm -qa|grep -i mysql

显示:
MySQL-server-4.0.14-0
MySQL-client-4.0.14-0

删除mysql。


rpm -ev MySQL-server-4.0.14-0
rpm -ev MySQL-client-4.0.14-0

如果在卸载mysql-devel出现如下的错误:
[root@localhost f]# rpm -e mysql-4.1.12-3.RHEL4.1
error: Failed dependencies:
        libmysqlclient.so.14 is needed by (installed) cyrus-sasl-sql-2.1.19-5.EL4.i386
        libmysqlclient.so.14 is needed by (installed) dovecot-0.99.11-2.EL4.1.i386
那么,你需要按倒序来先删除dovecot-0.99.11-2.EL4.1.i386,然后是cyrus-sasl-sql-2.1.19-5.EL4.i386,最后,你可以完全删除mysql-devel,其他的类似。
[root@localhost f]# rpm -e dovecot-0.99.11-2.EL4.1.i386
[root@localhost f]# rpm -e cyrus-sasl-sql-2.1.19-5.EL4.i386
开始卸载

[root@localhost f]# rpm -e mysql-4.1.12-3.RHEL4.1


  卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

  rm -f /etc/my.cnf

  rm -rf /var/lib/mysql



linux下 mysql字符集的修改 不指定

jed , 2009-4-28 14:36 , 数据库技术 , 评论(0) , 阅读(4364) , Via 本站原创
安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 :

     1、数据库目录,其所创建的数据库文件都在该目录下
  /var/lib/mysql/



   2、配置文件 (mysql.server命令及配置文件所在地)
  /usr/share/mysql



   3、相关命令(如mysql mysqladmin等)
  /usr/bin



   4、启动脚本(如mysql启动命令)
  /etc/rc.d/init.d/



      


           查看默认字符集

            #mysql -u root - p

            #(输入密码)

            mysql> show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

            修改字符集 :

         1.查找/etc目录下是否有my.cnf文件;

            #ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)

          2.如果没有就要从/usr/share/mysql,拷贝一个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是 my-huge.cnf    my-innodb-heavy-4G.cnf    my-large.cnf   my-medium.cnf     my-small.cnf ;从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf :

           #cp /usr/share/mysql/my-medium.cnf   /etc/my.cnf

          3.修改my.cnf文件,在该文件中的三个地方加上 default-character-set=utf8([client] [mysqld] [mysql])

             #vi  /etc/my.cnf

             修改如下:(红色为添加部分)

             [client]
            #password       = your_password
             port            = 3306
             socket          = /var/lib/mysql/mysql.sock
             default-character-set=utf8   (经过验证好像这一步不用设置也可以达到效果)

              [mysqld]
               port            = 3306
                socket          = /var/lib/mysql/mysql.sock
                skip-locking
                key_buffer = 16M
                max_allowed_packet = 1M
                table_cache = 64
                sort_buffer_size = 512K
                net_buffer_length = 8K
               read_buffer_size = 256K
               read_rnd_buffer_size = 512K
               myisam_sort_buffer_size = 8M
               default-character-set=utf8
               init_connect='SET NAMES utf8'



               [mysql]
               no-auto-rehash
               default-character-set=utf8
              保存退出;

           4.重起MySQL服务器,使其设置的内容生效

              #/etc/init.d/mysql  restart

            5. 重新登入mysql;

               # mysql -u root - p

                #(输入密码)

               mysql> show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |(都生成了utf8,成功了 哈哈哈)
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



        mysql启动和停止 操作 :

        可以通过 #/etc/init.d/mysql   [start | stop | restart](实现启动,停止,重启)

        也可以通过 #service mysql [start | stop | restart](实现启动,停止,重启)



         以上为实践总结,如果有更好的方法请告知谢谢

Tags: , , ,
按以下完装可以解决 MYSQL 中文乱码问题 安装字体为GBK编码

我在linux 9 和linux as 3,linux as 4 下成功安装多次。

#groupadd mysql
#useradd -g mysql mysql
#tar -zxvf mysql-5.0.27.tar.gz
#cd mysql-5.0.27
#./configure -prefix=/opt/mysql -with-charset=gbk -with-extra-charsets=all
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf或者cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf
#./scripts/mysql_install_db --user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限

设置用户权限
#chown -R root .
#chown -R mysql var
#chown -R mysql var/.
#chgrp -R mysql .

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# service mysqld start
# netstat -atln 查看mysql端口3306是否打开,如果打开说明安装成功

更改root用户密码
#./bin/mysqladmin -u root password 'new passwd'

use 库名; 切换库名
create table 表名 (字段设定列表); 创建表
create database 库名; 创建数据库

#grant select,insert,update,delete,index,alter,create,drop,grant,references,reload,shutdown,process,file,reload,shutdown,precess on *.* to user_1@"%" Identified by '123';

#grant select,insert,update,delete,index,alter,create,drop on 库名.表名 to user_1@"%" Identified by "123";
Tags: ,

mysql字符集编码转换 不指定

jed , 2009-4-27 15:32 , 数据库技术 , 评论(0) , 阅读(5089) , Via 本站原创
启动mysql,登陆mysql以后,通过如下命令显示当前mysql所用编码。
>show variables like 'character%'; #执行编码显示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

在mysql中的my.cnf中修改如下设置:
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8

旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集,
编码转换步骤:
1、导出旧数据:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=utf8 --skip-opt 数据库>old.sql
2、转换sql编码:

iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。

3、导入新数据库:
mysql -uroot -p --default-character-set=gbk -f 新数据库<new.sql
附:
查看mysql支持的编码:

SHOW VARIABLES LIKE 'character_set_%';

SHOW VARIABLES LIKE 'collation_%';

查看文件编码命令:

file 文件名
分页: 2/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]