mysql启动时候会寻找my.cnf配置文件,默认顺序如下/etc/my.cnf,~/my.cnf,/usr/etc/my.cnf,如果想自定义my.cnf,不适用默认位置配置文件 --no-default 可以用--default-file=
2:mysql的几个参数解释
innodb_flush_log_at_trx_commit 1 表示innodb支持事务
slave_compressed_protocol off/on 表示slave复制是是否支持数据压缩
3:mysql的管理工具
maatkit,nagios,cacti,vmstat,systemtap,sar,oprofile
4:mysql的perl,python连接接口,驱动perl-DBI,perl-DBD-mysql
当mysql client需要连接服务器时,比如安装一些有perl,python写的管理工具,如maatkit,这个管理工具需要连接数据库,这是需要安装类如perl-DBI(perl database interface),这是perl连接mysql的接口,要实现能连接这个接口就需要安装接口的驱动perl-DBD-mysql(perl database drive mysql),安装过程都比较简单
1:perl Makefie.pl (在安装DBD是可能需要mysql_config这个工具,提示没有,通过安装mysql- devel即可解决)
2:make install
5:当对数据库操作时,会在当前用户的家目录下创建一个隐藏文件 .mysql_history ,这个文件记录路登入数据库后的所有操作,但是不会记录登录信息(mysql -uredhat -predhat),这样可能有一定的风险,你可以通过软连接的形式除去mysql的历史操作记录 ln -s /dev/null $HOME/.mysql_history
6:mysql的两种模式interactive(登录数据库交互) batch(不登入数据库通过-e选项在shell环境下内容输出到标准输出) mysql -uroot -predhat -H/X -e ‘select user,host,password from mysql.user;’ > mysql.html/mysql.xml 这时候生成的两个文件分别是html,xml格式,可以通过浏览器查看 phpmyadmin
7:创建索引 CREATE INDEX db_name ON table_name (list_of_column) 例如: CREATE INDEX salaries ON slary (slary);
8:mysql术语
OLTP 联机事务处理系统
9:mysql的逻辑架构(来自网络)
9:忘记数据库root密码解决方法
1:killall -TERM mysqld
2:/etc/init.d/mysqld_safe start --skip-grant-tables & \\跳过授权表启动,必须用mysqld_safe启动
不能用mysqld启动(启动无效)
10:在日志中出现“Some nontransational changed tables couldn't rolled back”
AN:说明此应用用了混合表(包括事务性和非事务性存储引擎),在事务性表回滚的时候,非事务性的表无法回滚
11:mysql的两个层面
1:mysql层
2:存储引擎层
12:myisam表修复
可能出现需要修复的情况就是用delay_key_write,又遇到mysql宕机,索引信息没有从内存中刷新到数据文件中
1:在mysql命令行下,执行check table tbl_name或者repair table tbl_name
2:在服务器离线的情况下可以用myisamcheck,myisamcheck几乎可以修复任何错误,除了索引唯一性的问题
3:myisamchk还可以优化索引结构,等同于optizime table tbl_name优化索引结构
推荐:(以下内容来自百度文库)
发生场景集对应策略:
阶段一:简单的恢复
myisamchk -e(extend) -s(slient) *.MYI 检查全部myisam表,找出报错的表, 进入阶段二
阶段二:简单安全的恢复
myisamchk -r -q tbl_name,在继续前做一个数据文件的备份
如果前面的命令失败
myisamchk -safe-recover tbl_name
如果在检查过程中遇到(out of memory)或者myisamchk崩溃,进入阶段三
阶段三:困难修复
如果索引文件的第一个16K被损坏,或包含不正确的信息或者索引文件丢失,只有进入这个阶段,在这种情况下,创建一个新的索引文件是必要的,把数据文件移动到安全的地方
使用表描述文件创建新的(空)数据和索引文件
shell > mysql db_name
mysql > delete from tbl_name
mysql > quit
将老的数据文件拷贝到新创建的数据文件夹中以备份
然后回到阶段二
myisamchk -r -q
阶段四非常困难的修复
表的描述文件被损坏,这个该很少发生,因为在表创建的时候,表文件的描述文件已经创建,这个就需要从备份中恢复
然后执行阶段二 myisamchk -r -q tbl_name
13:查看mysql当前状态打开的文件
lsof | egrep -i 'myd|myi' | awk '{++state[$NF]} END {for(key in state) print state[key], "\t", key}' | sort -nr
14:table_cache设置方法
15:myisam的全文索引
全文索引只能健在char,varchar,fulltext列上????
16:疑问mysql的复制(即mysql的master slave)和合并表
17:alter 可以改变表的引擎,但是在转换过程中会占用大量的I/O,转换过程需要经历旧表到新表的逐行复制
alter table tbl_name engine=innodb
18:查看mysql服务器的运行状态信息可以
mysql > show status;
shell > mysqladmin -uroot -p extended -r -i 10 \\周期行的查看服务器的运行状态,可以做监控用
19:索引建立的原则
小,简单,合适的数据类型,避免null
阅读(2031) | 评论(0) | 转发(0) |