mysql被oracle收购后,我对mysql的好感降低很多。
而且官方版本的mysql性能也...大家都懂的
所以我使用了mysql的一个分支-percona,具体介绍请参考http://www.percona.com/
之前我一直使用的是percona5.1,最近想折腾一下percona5.5
percona5.5都使用cmake编译。和之前的版本有些小的差异。
我使用的是centos。
1.首先下载percona
wget http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.20-24.1/source/Percona-Server-5.5.20-rel24.1.tar.gz
2.把依赖环境安装好,添加运行用户。
依赖环境安装
centos
yum install cmake
yum install bison
yum install ncurses-devel
yum install gcc-c++
yum install libxml2-devel
ubuntu
apt-get install libboost-dev libxml2-dev
用户添加
groupadd mysql
useradd -g mysql mysql
3.下载好后解压,并且使用cmake编译。
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DSYSCONFDIR=/opt/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/opt/mysql/data -DDEFAULT_COLLATION=utf8_general_ci -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_ZLIB=system -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=db -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3310
make && make install
-DCMAKE_INSTALL_PREFIX=/opt/mysql //安装目录
-DINSTALL_DATADIR=/opt/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DWITH_SSL=system //使用SSL加密
-DWITH_EMBEDDED_SERVER=1 //编译成embedded mysql library
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
PS:DEFAULTS-EXTRA-FILE=/opt/mysql/my.cnf
4.权限和组
chmod +w /opt/mysql
chown -R mysql:mysql /opt/mysql
chown -R mysql:mysql /opt/mysql/data
5.初始化mysql
/opt/mysql/scripts/mysql_install_db --defaults-file=/opt/mysql/my.cnf --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
6.启动mysql
cp mysql.server /etc/init.d/mysql
service mysql start
7.创建用户并完成安装
/opt/mysql/bin/mysql -uroot
create user 'test'@'%' identified by 'test';
grant all privileges on *.* to test@'%';
plush privileges;
完成安装
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'test'@'%';
set global transaction isolation level Read Committed
set session transaction isolation level Read Committed
SELECT @@global.tx_isolation
SELECT @@tx_isolation
1. show character set [like 'pattern']
显示所有可利用的字符集
2.SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern']
用于显示所给表的列。这里感觉跟desc tbl_name的功能相同。
查询django数据库auth_group表结构
3.show create table tbl_name
显示创建表的sql语句。
4。show create database db_name
显示创建db_name时候的sql语句
5。show databases [like 'pattern']
显示当前mysql上所有的数据库
6。show tables [like 'pattern']
显示当前数据库上的所有表
7.show grants [for user]
显示对user的授权语句
8.SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name [{FROM | IN} db_name]
显示索引
9。show open table
显示当前表缓冲区中的表
10。SHOW PRIVILEGES
显示mysql所支持的权限
11。SHOW [FULL] PROCESSLIST
显示正在使用的线程(thread)
12.SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern']
显示变量
13。SHOW WARNINGS [LIMIT [offset,] row_count]
SHOW COUNT(*) WARNINGS
显示当前session中最后的语句生产成的错误,警告灯信息