与mysql数据库技术相关的文章
MySQL 5.5.13
参数说明:
[client]
character-set-server = utf8
port    = 3306
socket  = /data/mysql/3306/mysql.sock

[mysqld]
character-set-server = utf8
昨天,同事问了我一个问题。在不查出原有数据的情况下,怎么样在现有字段内容的后面加如新的东西.比如,有个friend表,有个cname字段,ID为1,现在里面已经有内容为Rick,我想把 这个内容变为Rick.wang.刚开始,我们是用+号这样的写的.

update friend set cname=cname+'wang' where id=1.

但这样加后,这个字段的内容就变为空了。最后我们证实,+只适合整数相加,不适合字符串.

今天看MYSQL手册的时候看到了个函数.concat,这个函数是连接字符串的。

手册里这样写

CONCAT(str1,str2,...)
                      
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型

我试了下。成功了。SQL语句为

update friend set cname=CONCAT(cname,'.wang') where id=1

,这样就可以完成字符串相加了。输出结果为Rick.wang.

还看到一个函数.是用字符串连接的。如下。

update friend set cname=CONCAT_WS('.',cname,'wang') where id=1,

输出结果为Rick.wang.注意,第一个参数为连接两个字符串的字符.

优化的内存访问 TCMalloc 不指定

jed , 2012-4-1 13:29 , 数据库技术 , 评论(0) , 阅读(4905) , Via 本站原创
TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来让MySQL在高并发下内存占用更加稳定。

本站使用的MySQL已经用 TCMalloc 优化过了。

详细的安装步骤:

#tar zxvf libunwind-0.98.6.tar.gz
#cd libunwind-0.98.6
#./configure
#make
#make install

#tar zxvf google-perftools-0.94.1.tar.gz
#cd google*
#./configure
#make
#make install

打开 mysqld_safe 脚本 (默认在/usr/bin/mysqld_safe)
在此脚本文件开始加入

LD_PRELOAD="/usr/local/lib/libtcmalloc.so"


#service mysql restart

mysql Table Cache优化设置 不指定

jed , 2012-3-6 09:11 , 数据库技术 , 评论(0) , 阅读(4919) , Via 本站原创
mysql查询tables cache的最大数:
show variables like 'tab第二世界整理发布le_cache';

mysql查询当前系统已经打开的描述符命令:
show status like 'open_tables';


一、调整table cache
mysql某个字段存储时间格式为“0000-00-00 00:00:00”可是要进行时间比较,需要转换成时间戳,则在sql语句中,将该字段转换为时间戳即可,例如:

UNIX_TIMESTAMP(gz_ydate)<=$key2

Tags:

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

jed , 2009-6-24 16:19 , 数据库技术 , 评论(0) , 阅读(2101) , 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:
整理了以下四种在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) , 阅读(2032) , 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: ,
分页: 1/6 第一页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]