在这里让我们一起学习,一起提高!

MySQL字符集及MySQL编码转换 晴

jed , 2006-11-16 11:40 , 数据库技术 , 评论(0) , 阅读(4761) , Via 本站原创
今天找到这篇文章,里面提到从latin1到UTF8的MySQL编码转换。收藏一下,最近要将所有的数据库都转一次,一直错误的使用latin1,再不转以后麻烦大了。

出处:未知

个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集.
接下来是完整的一个例子:
1.创建数据库表

mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#注意后面这句话 “COLLATE utf8_general_ci“,大致意思是在排序时根据utf8编码格式来排序
#那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了

mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;
#这句话就是创建一个表了,制定默认字符集为utf8

2.写数据
通过php直接插入数据:


<?php
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
  
//请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
//它的作用是设置本次数据库联接过程中,数据传输的默认字符集
mysql_query("set names utf8;");
  
//必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
?>



通过页面提交插入数据:


<?php
//输出本页编码为utf-8
header("content-type:text/html; charset=utf-8");

mysql_connect('localhost','user','password');
mysql_select_db('my_db');

if(isset($_REQUEST['name'))
{
//由于上面已经指定本页字符集为utf-8了,因此无需转换编码
mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));
}

$q = mysql_query("select * from my_table");
while($r = mysql_fetch_row($q))
{
print_r($r);
}
?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="" method="post">
<input type="text" name="name" value="">
<input type="submit" value='submit'>
</form>



自此,使用utf8字符集的完整的例子结束了.
如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:

create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;
附:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据

mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码

iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,增加一条sql语句: “SET NAMES utf8;“,保存。

mysql -hlocalhost -uroot my_db < new.sql
大功告成!

引用:http://www.21andy.com/blog/20060514/297.html

Tags: , , ,
操作系统:RedHat9
软件版本:apache_1.3.28.tar.gz,php-4.3.3.tar.gz,mysql-4.0.15.tar.gz
所有操作都假定在root下执行

1、mysql

1.1创建mysql组和mysql用户
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

1.2安装mysql
tar -xzvf mysql-4.0.15.tar.gz
cd mysql4.0.15
./configure --prefix=/usr/local/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
cd scripts
./mysql_install_db
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/
chgrp -R mysql /usr/local/mysql
向/etc/ld.so.conf中加入两行:
/usr/local/mysql/lib/mysql
/usr/local/lib
载入库,执行

mysql 自动备份小程序 阴

jed , 2006-11-10 15:40 , 数据库技术 , 评论(0) , 阅读(4881) , Via 本站原创
服务器MYSQL的备份问题,一直是一个大难题,随着数据量的增大,手动备份越来越麻烦,于是写了个小程序,来实现MYSQL自动备份。使用方法:
将下面的代码在一个bat文件,设置一下计划任务每天执行。
同时里面的路径也要改一下的。
SET bkupdir=c:是设置备份文件存储目录。
mysqldir=D:\usr\local\mysql4 是mysql安装路径
SET dbname=dedev3     数据库名
SET dbuser=root       用户名
SET dbpassword=123    用户密码
SET CharacterSet=ujis 字符集

*****************代码开始****************

for /f "Tokens=1 Delims=/ " %%i in ('date /t') do set dt=%%i
for /f "Tokens=1" %%i in ('time /t') do set tm=%%i
set tm=%dt%
SET bkupdir=c:
SET mysqldir=D:\usr\local\mysql4

path D:\usr\local\mysql4\bin

SET dbname=dedev3
SET dbuser=root
SET dbpassword=123
SET CharacterSet=ujis

@ECHO Beginning backup of %dbname%...

mysqldump -u %dbuser% -p%dbpassword% %dbname% --add-drop-table --complete-insert --opt>%bkupdir%\%dbname%-%tm%.sql
@ECHO Done! New File: %bkupdir%\%dbname%-%tm%.sql
pause

*******************代码结束*****************

注意:代码只是*以内的,不包括*.

另外附上还原代码,大家可根据自己的实际情况,适当修改一下即可。

****************代码开始***************

@ECHO Beginning backup of 1234...
D:\usr\local\mysql4\bin\mysql -u root -p123 1234@ECHO Done! New File:C:\456.sql
pause

****************代码结束***************

欢迎大家与我来讨论mysql备份还原问题,你有好的建议,请回复告知!


       每一个电脑爱好者都希望有自己的网站,其实自己拥有一台电脑和一个IP就可以解决了。现在许多人都听说过Linux,却很少有人用过它。我刚刚接触Linux,想把自己的安装过程与大家共同交流一下。
我安装系统的是Linux readhat8.0,配置是Php-4.0.4+Mysql-3.23.46+Apache-1.3.27。

(一)  Linux系统的安装


1、  插入Linux 8.0的光盘,出现欢迎安装的界面,然后会让你选择安装过程的语言,一般默认为English(English)就行。对于初次安装最好选择汉语,这样容易安装。但是对于使用linux的用户来说,最好习惯用英语安装,因为linux有的版本不支持汉语并且好多情况下不能用汉语。
2、  之后会让你选择键盘语言、鼠标语言,都选择默认,直接点击“Next”就行了。

mysql代码使用技巧备忘 不指定

jed , 2006-9-7 08:04 , 数据库技术 , 评论(0) , 阅读(4276) , Via 本站原创
模糊查询

[code]$query ="select * from cdb_posts where message like '%uploadfile=%' order by pid desc";[/code]

===================================================

限制标题长度
Tags: ,

mysql的安装及其使用 不指定

jed , 2006-9-5 08:03 , 数据库技术 , 评论(0) , 阅读(3690) , Via 本站原创
有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
Tags:

MySQL授权指南 不指定

jed , 2006-9-4 16:18 , 数据库技术 , 评论(0) , 阅读(9146) , Via 本站原创
前提:先用mysql.exe等工具进入
mysql>
状态

%是无论什么ip都可以登陆。localhost是只能在mysql的本机登陆。
授权表使用举例
grant用于给增加用户和创建权限,revoke用于删除用户权限。
下面是一些用grant增加用户和创建权限的例子:
Tags:

mysql密码忘记的修改 不指定

jed , 2006-9-4 08:32 , 数据库技术 , 评论(0) , 阅读(4341) , Via 本站原创

如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :/usr/bin/safe_mysqld --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。

Redhat的safe_mysqld在/usr/bin下,
而使用tarball缺省安装在/usr/local/bin下。
Tags:
本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski
英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增;如果有翻译的不妥或者不正确的地方,请指正。
Tags:

mysql入门学习(授权) 不指定

jed , 2006-9-4 08:16 , 数据库技术 , 评论(0) , 阅读(3999) , Via 本站原创
一、连接mysql。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、 例1:连接到本机上的mysql。
首先在打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示你输密码,如果刚安装好mysql,超级用户root是没有密码的, 故直接回车即可进入到mysql中了,mysql的提示符是:mysql>
Tags:
分页: 6/6 第一页 上页 1 2 3 4 5 6 最后页 [ 显示模式: 摘要 | 列表 ]