1、打开文本编辑my.cnf
sudo gedit /etc/mysql/my.cnf
在[client]
节点,添加
default-character-set=utf8 (客户端缺省以utf8存储)
在[mysqld]
节点,添加
default-character-set=utf8 (数据库缺省以utf8存储)
init_connect='SET NAMES utf8'
(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
保存,关闭
2、重启mysql
停用:
sudo mysqladmin shutdown -u root -p
启用:
sudo mysqld_safe -user=mysql &
3、查看mysql编码
sudo mysql -u root -p
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 ......
MySQL的字符集支持(Character Set Support)有两个方面:
字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,characte ......
/****************************by garcon1986*************************/
1. In windows
需要分割大型SQL文件,同时需要修改php.ini文件中max_file_size, max_execution_time 的大小。
然后,可用phpmyadmin或者seguin导入。
2. In Linux
导入变得非常简单。 通过Terminal 登录mysql,
mysql>source xxx.sql
即可。
......
/****************************by garcon1986*************************/
1. In windows
需要分割大型SQL文件,同时需要修改php.ini文件中max_file_size, max_execution_time 的大小。
然后,可用phpmyadmin或者seguin导入。
2. In Linux
导入变得非常简单。 通过Terminal 登录mysql,
mysql>source xxx.sql
即可。
......
一,今天给大家讲一下,做留言的一种追加的方式主要如果当前有留言,就更新当前的留言以追加的方式,如果没能留言就将入一条新的
mysql:insert into `table` (field) values ('$value') on duplicate key update `field`=concat('value',ifnull(`field`,''));
具体本条SQL的用法,请查看手册
二,讲一下统计的用法,主要介绍如何用一条SQL语句,统计某个用户的某个字段中不同状态的合
首先,(select t.username,t.action,count(*) as num from t group by t.username,t.action) as N用分组的方式将不同的用户中的某个字段的某些状态分组求合这是子句
然后,select N.username,max(CASE N.action where 'field1' then n.num else 0 end) as field1_num,max(CASE N.action where 'field2' then n.num else 0 end) as field2_num from ,(select t.username,t.action,count(*) as num from t group by t.username,t.action) as N group by N.username
然后分别显示username,field1_num,field2_num ......
作者 小荷||【转载时请务必以超链接形式标明文章原始出处和作者信息】
· 永久链接: http://www.oracleblog.cn/useful-script/prompt-of-sqlplus/
misc@ORALOCAL(192.168.0.49)>
如果你也想和我一样,在sqlplus登录数据库的时候,能提示不少像上面这样详细登录的信息:
1.登录的用户名。当你的数据库中有多个用户时,它能告诉你当前登录的是哪个用户。
2.登录的实例名。如果登录的rac,用这个能知道当前登录在哪个node。
3.登录主机的IP。有的时候,你可能登录在2台数据库主机上,2个数据库用户名相同,instance相同,只是数据库存在在不同的主机上——往往在数据库迁移的时候会遇到这样的情况。那么通过知道数据库主机的IP,将能防止你出错。
你可以可以和我一样在$ORACLE_HOME/sqlplus/admin/glogin.sql文件中添加以上语句。
define_editor=vi
settimingon
setserveroutputonsize100000
setlinesize100
settrimspoolon
setlong5000
settermoutoff
defaultgname=idle
columnglobal_namenew_valuegname
SELECTlower(USER) || '@' ||upper(instance_name)||'('||nvl(UTL_INADDR.GET_HOST_ADDRESS,SYS_CONTEXT('userenv', 'ip_add ......
USE dxdb;
DELIMITER //
#获取流水号
DROP PROCEDURE IF EXISTS get_sid;
CREATE PROCEDURE get_sid(para_domain VARCHAR(20), out para_sid BIGINT UNSIGNED)
BEGIN
START TRANSACTION;
UPDATE t_sid SET sID=sID+1 WHERE cDomain=para_domain;
SELECT sID INTO para_sid from t_sid WHERE cDomain=para_domain;
COMMIT;
END
//
DELIMITER ; ......