关键字: mysql
MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令。包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据表和字段的字符集、当前安装的 MySQL 所支持的字符集等。
一、查看 MySQL 数据库服务器和数据库字符集。
mysql> show variables like '%char%';
+--------------------------+-------------------------------------+------
| Variable_name | Value |......
+--------------------------+-------------------------------------+------
| character_set_client | utf8 |...... -- 客户端字符集
| character_set_connection | utf8 |......
| character_set_database | utf8 |...... -- 数据库字符集
| character_set_filesystem | binary |......
| character_set_results | utf8 |......
| character_set_server | utf8 ......
1. 在/etc/my.cnf中加入一下内容
[mysqld_dev]
socket=/tmp/mysql.sock
port=3307
pid-file=/var/run/mysqld/mysqld_dev.pid
datadir=/var/lib/mysql_dev
log=/var/log/mysqld_dev.log
log-error=/var/log/mysqld_dev.err.log
user=mysql
2. 根据以上内容创建目录和文件
mkdir /var/lib/mysqld_dev
chown mysql:mysql /var/lib/mysqld_dev
...
3. 编写/etc/rc.d/init.d/mysqld_dev, 或者从/etc/rc.d/init.d/mysqld copy 一份,然后修改其中获取参数的代码。
get_mysql_option mysqld_dev datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld_dev socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_dev log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_dev pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
4. 启动server
servie mysqld_dev start
发现错误
mysqld_safe [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
需要用mysql_install_db来创建系统表。
mysql_install_db --user=mysql --data ......
原作:杨涛(上帝他爸)
一直想等到BETA版出来再试验的,可还是经不住诱惑阿,下午终于有时间测试一下了。
(本文参考地址:http://blog.chinaunix.net/u/8111/showart.php?id=451420)
一、必备软件:
1、LUA
可以去LUA的官方下载:www.lua.org
2、MySQL Proxy
这里有好多二进制版本。
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/
或者去MYSQL官方下载源代码。
3、测试过程中取消了B和C的REPLICATION。这样SQL语句一下子就看出来从哪里来的。
如果是M-S(可以先在SLAVE上进行STOP SLAVE)
二、测试主机地址:
1、MySQL Proxy 安装地址:192.168.0.234(简称A)
2、MySQL 服务器地址:192.168.0.235(简称B)/236(简称C)
三、安装体验
如果是按照二进制包安装的,跳过这一步。
1、 LUA的安装
[root@localhost ~]#tar zxvf lua-5.1.2.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv lua-5.1 lua
[root@localhost lua]# cd lua
[root@localhost lua]#make local;make install;
导出环境变量:
[root@localhost lua] ......
昨天,我突然想把一个数据库里的每个表,以及每个表的非空总纪录数存在另一个表里面。
首先,创建了一个存放数据的表:
create table tables
(
name varchar(50),
number int
);
insert into tables select table_name from information_schema.tables where table_shema = 'test';
但是不知道有没有方法,将非空的纪录查出来,填入表中。 ......
CREATE TABLE `taa` (
`year` varchar(4) DEFAULT NULL,
`month` varchar(2) DEFAULT NULL,
`amount` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf
"year","month",amount
"1991","1",1.1
"1991","2",1.2
"1991","3",1.3
"1991","4",1.4
"1992","1",2.1
"1992","2",2.2
"1992","3",2.3
"1992","4",2.4
1.select a.year,a.m1,a.m2,b.m3,b.m4 from
(select year,
sum(if(month=1,amount,0)) as m1,
sum(if(MONTH=2,amount,0)) AS m2
from taa
group by year) a,
(SELECT year,
SUM(IF(MONTH=3,amount,0)) AS m3,
SUM(IF(MONTH=4,amount,0)) AS m4
from taa
GROUP BY YEAR) b
where a.year=b.year;
2.select year,
max((case month when 1 then amount end)) as m1,
max((CASE MONTH WHEN 2 THEN amount END)) AS m2,
max((CASE MONTH WHEN 3 THEN amount END)) AS m3,
max((CASE MONTH WHEN 4 THEN amount END)) AS m4
from taa
group by year; ......
可以将这个脚本放进crontab,他的配制文件在 /etc/crontab中每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,
#以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/namexxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=password
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/local/mysql5/var/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath""$DBName"$(date +%y%m%d).tgz
DumpFile="$BackupPath""$DBName"$(date +%y%m%d)
OldFile="$BackupPath""$DBName"$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "------------------ ......
可以将这个脚本放进crontab,他的配制文件在 /etc/crontab中每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,
#以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/namexxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=password
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/local/mysql5/var/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath""$DBName"$(date +%y%m%d).tgz
DumpFile="$BackupPath""$DBName"$(date +%y%m%d)
OldFile="$BackupPath""$DBName"$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "------------------ ......