mysql的查询处理过程:
1,查询分析器对sql语句进行分析,错误检测,权限检测等。
2,查询优化器对sql语句处理生成不同执行计划,并从中挑选最优的方案。
3,查询处理器对最优的执行计划进行执行。
http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide
查看默认服务器默认配置
You can determine the default buffer sizes used by the mysqld server using this command:
shell> mysqld --verbose --help
运行中的配置
mysqladmin variables
1、下载mysql源码
http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.32.tar.gz
安装编译需要的组件
2、yum install cmake.i686 make ncurses-devel.i686 gcc-c++.i686 bison.i686
从mysql5.5起,mysql源码安装开始使用cmake了。下面是介绍configure选项如何映射到CMake的等值参数。
3、编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DSYSCONFDIR=/usr/local/mysql/config
如果编译出错时,需要清除旧的对象文件和缓存信息
# make clean
# rm -f CMakeCache.txt
有关插件的CMake的选项的其他信息,请查阅:
http://forge.mysql.com/wiki/MySQL_Internals_Support_for_Plug-Ins
5、安装 make && make install
6、增加mysql用户
useradd -U -M mysql
7、安装系统数据库
切换到根目录/usr/local/mysql,执行
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mkdir config
cp support-files/my-medium.cnf /usr/local/mysql/config/my.cnf
删除系统默认的配置文件 /etc/my.cnf,/etc/mysql/my.cnf, ~/.my.cnf
8、加入自动启动
cp support-files/mysql.server /etc/init.d/mysql5
chkconfig --add mysql5
修改/etc/init.d/mysql5启动文件中的参数,basedir,datadir(如果不是安装在默认位置/usr/local/mysql的话)
如果默认配置文件没有指定,也不知道读取的是哪一个,可以编辑启动脚本/etc/init.d/mysql5中,启动mysqld_safe命令的参数中加入--default-file=配置文件位置
9、授权访问
grant all privileges on *.* to root@'%' identified by 'root' with grant option;
用户名root
密码root
10、防火墙规则
vi /etc/sysconfig/iptables
编辑配置,在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
之前加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
11、降低内存占用
performance_schema_max_table_instances=100
table_definition_cache=100
table_open_cache=100
开多个数据库服务
1.拷贝一份data目录
2.拷贝一份配置文件my.cnf
3,编辑配置文件指定port,socket
4.启动脚本,在mysql根目录下./mysqld_safe --defaults-file=/usr/local/mysql/config/3307.cnf --user=mysql --datadir=/usr/local/mysql/data3307 &
MySql主从复制
1.slave配置
CHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_USER='wcj',
MASTER_PASSWORD='xxxx',
MASTER_PORT=3306,
MASTER_LOG_FILE='3306-binlog.000003',
MASTER_LOG_POS=4248;
2.master 状态查看
show binary logs;
show master status;
3.slave状态查看
show slave status;
4.开启关闭复制
start slave;
stop slave;
5.binlog可设置过期expire,也可主动清理
expire_logs_days=7
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
sql备份
mysqldump --databases db1 db2 db3 > dump.sql
mysqldump --all-databases --add-drop-database > dump.sql
mysqldump --databases test --add-drop-database > dump.sql
mysqldump --no-data test > dump-defs.sql
mysqldump --no-create-info test > dump-data.sql
sysbench
准备数据
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=xxx prepare
开启测试
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=xxx --max-time=120 --oltp-read-only=on --max-requests=0 --num-threads=16 run