Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100803
  • 博文数量: 13
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-01 15:32
文章分类

全部博文(13)

文章存档

2009年(2)

2008年(11)

我的朋友
最近访客

分类: LINUX

2008-06-26 14:15:08

##########################################
######         mysq常用命令         ######
##########################################
1、启动脚本
   /data2/mysql/bin/safe_mysqld --defaults-file=/data2/mysql/var/my.cnf --basedir=/data2/mysql --datadir=/data2/mysql/var --log-slow-queries=/data1/mysql/log/slowquery.log --bind-address=10.55.30.225 -u mysql &
   各个目录根据实际目录调整,其中slowquery.log文件需要手工创建,并设置权限为777,--log-slow-queries记录访问超过15秒的查询,用于分析和和提供索引创建参考。default-file文件指定配置文件my.cnf的位置。
2、安装新的mysql数据库,需要给数据库设置密码,并登记下来,把密码发给应用的组。
   /data2/mysql/bin/mysqladmin -uroot password 2XqqjvRy
3、如果数据库中数据库没有记录日志,show master status;显示为null,是在my.cnf文件指定了bin-log有关系。
   log_slow_queries = /data1/mysql/log/slowquery.log
4、关于my.cnf文件
   如果是专门的mysql数据库服务器使用my-huge.cnf,否则使用my-large.cnf
   key_buffer = 384M
   query_cache_size= 64M
5、重装系统后重建mysql用户
   useradd -s /sbin/nologin -d /usr/home/mysql mysql
6、如果mysql4.4.1用户不能登录
   如果没有特殊要求,知识人的mysql密码是sina1search
   GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY '2XqqjvRy' WITH GRANT OPTION;
   SET PASSWORD FOR = OLD_PASSWORD("2XqqjvRy");
7、整个数据库的导入/导出
   导出: mysqldump -u root -p -S /data4/mysql/var/mysql.sock bar > ./back.sql
   导入: mysql -u root -p < ./back.sql
8、查看变量
   show variables like '%query%';
9、修改单个表不能超过4G的限制
   ALTER TABLE cdb_posts MAX_ROWS=1000000000 AVG_ROW_LENGTH=15000;
10、mysql3 升级到 mysql4后,mysql权限数据库的修改。
    echo "source /data2/mysql/share/mysql_fix_privilege_tables.sql" | mysql -uroot -p${passwd} -S /data4/mysql/var/mysql.sock

在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。
检查表的最大尺寸:
SHOW TABLE STATUS语句
或myisamchk -dv tbl_name。
如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),
可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATE TABLE语句。
创建了表后,也可以使用ALTER TABLE更改这些选项,以增加表的最大允许容量。

1、验证MD5校验和
md5sum package_name
2、通过GnuPG进行签名检查
gpg --verify package_name.asc

##########################################
######    简单地描述MySQL程序       ######
##########################################
myisamchk
描述、检查、优化和修复MySQL表的使用程序。
make_binary_release
制作一个编译MySQL的一个二进制的版本。这能用FTP传送到在网站的“/pub/mysql/Incoming”以方便其它MySQL用户。
msql2mysql
一个外壳脚本,转换mSQL程序到MySQL。它不能处理所有的情况,但是当转换时,它给出一个好起点。
mysql
mysql是一个简单的SQL外壳(具有GNU readline 能力),它支持交互式和非交互式使用。当交互地使用时,查询结果以ASCII表的格式被表示。当非交互地使用时(例如,作为一个过滤器),结果是以定位符分隔的格式表示。(输出格式可以使用命令行选项改变)你可以简单地象这样运行脚本:
shell> mysql database < script.sql > output.tab
如果你在客户中由于内存不足造成问题,使用--quick选项!这迫使mysql使用mysql_use_result()而非mysql_store_result()来检索结果集合。
mysqlaccess
一个脚本,检查对主机、用户和数据库组合的存取权限。
mysqladmin
执行管理操作的实用程序,例如创建或抛弃数据库,再装载授权表,清洗表到磁盘中和再打开日志文件。mysqladmin也可以被用来从服务器检索版本,进程和状态信息。见12.2 管理一个 MySQL 服务器。
mysqlbug
MySQL错误报告脚本。当填写一份错误报告到MySQL邮件列表时,应该总是使用该脚本。
mysqld
SQL守护进程。它应该一直在运行。
mysqldump
以SQL语句或定位符分隔的文本文件将一个MySQL数据库倾倒一个文件中。这是最早由Igor Romanenko编写的自由软件的增强版本。见12.3 从MySQL数据库和表倾倒结构和数据。
mysqlimport
使用LOAD DATA INFILE将文本文件倒入其各自的表中。
mysqlshow
显示数据库,表,列和索引的信息。
mysql_install_db
以缺省权限创建MySQL授权表。这通常仅被执行一次。就是在系统上第一次安装MySQL时。
replace
一个实用程序,由msql2mysql使用,但是有更一般的适用性。replace改变文件中或标准输入上的字符串。使用一台有限状态机首先匹配更长的字符串,能被用来交换字符串。例如,这个命令在给定的文件中交换a和b:
shell> replace a b b a -- file1 file2 ...
safe_mysqld
一个脚本,用某些更安全的特征启动mysqld守护进程,例如当一个错误发生时,重启服务器并且记载运行时刻信息到一个日志文件中。

##########################################
######          修复MySQL表         ######
##########################################
检查所有表:
myisamchk *.MYI
修复
myisamchk -r  -q *.MYI
myisamchk -r *.MYI
myisamchk -o *.MYI
可对所有的表进行修复
1、检查是否有坏表
运行myisamchk *.MYI或(myisamchk -e *.MYI,如果你有更多的时间)。使用-s(沉默)选项禁止不必要的信息。
2、简单安全修复
myisamchk -r -q tbl_name.MYI(-r -q意味着“快速恢复模式”)。这将试图不接触数据文件来修复索引文件。如果数据文件包含它应有的一切和在数据文件指向正确地点的删除连接,这应该管用并且表可被修复
3、如果上面的简单修复不成功
使用myisamchk -r tbl_name(-r意味着“恢复模式”)。这将从数据文件中删除不正确的记录和已被删除的记录并重建索引文件。
如果前面的步骤失败,使用myisamchk --safe-recover tbl_name。安全恢复模式使用一个老的恢复方法,处理常规恢复模式不行的少数情况(但是更慢)。

检查表:
FLUSH TABLES;
mysql>check table table_name; //只能检查MYISAM,INNODB
修复表:
mysql>repair table table_name;//只能修复MYISAM

##########################################
######        MySQL 全文检索        ######
##########################################
首先给表创建索引:
ALTER TABLE reviews ADD FULLTEXT INDEX (data);
SHOW INDEXES FROM reviews;
全文检索语法
#查找含有单词“single”的记录
SELECT id FROM reviews WHERE MATCH (data) AGAINST ('single');
#当MySQL收到了一个全文搜索的请求,它就在内部对每个记录进行评分,不匹配的记录得分为零,而“更相关”的记录会得到比“不太相关”的记录相对更高的分数。
SELECT id, MATCH (data) AGAINST ('rock') FROM reviews;
#查找含有单词“single”但是没有“Madonna”的记录
SELECT id FROM reviews WHERE MATCH (data) AGAINST ('+single -madonna' IN BOOLEAN MODE);
#查找单词中含有“hot”的记录
SELECT id FROM reviews WHERE MATCH (data) AGAINST ('hot*' IN BOOLEAN MODE);

##########################################
######    解决MySQL客户端被阻塞     ######
##########################################
缺省地,mysqld在10个连接错误后阻塞一台主机。你可以通过象这样启动服务器很容易地调整它:
max_connections    = 1000
max_connect_errors = 100
Host '...' is blocked错误
Host 'hostname' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
  这意味着,mysqld已经得到了大量(max_connect_errors)的主机'hostname'的在中途被中断了的连接请求。在max_connect_errors次失败请求后,mysqld认定出错了(象来字一个黑客的攻击),并且阻止该站点进一步的连接,
直到某人
执行命令:mysqladmin flush-hosts。

##########################################
######    多主一从 MySQL 同步表     ######
##########################################
1、同步不同库的表
replicate-do-table=db_name.tbl_name
2、多个不同机子上的不同库的表同步到同一个机子的同一个库中,再加上下面这句.
replicate-rewrite-db=from_name->to_name
cat my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
[mysqld1]
port                 = 3306
socket               = /tmp/mysql.sock1
pid-file             = /usr/local/mysql/data/test-db1a.pid
log                  = /usr/local/mysql/data/test-db1.log
log-slow-queries     =/usr/local/mysql/data/slowquery1.log
server-id            = 2
master-host          =   192.168.0.1
master-user          =   'replcate'
master-password      =   '1234567890'
master-port          = 3306
report-host          = test-db3
master-connect-retry = 30
log-slave-updates
replicate-rewrite-db = from_name->to_name
replicate-do-table   = db_name.tbl_name

[mysqld2]
port = 3307
socket               = /tmp/mysql.sock2
pid-file             = /usr/local/mysql/data/test-db2b.pid
log                  = /usr/local/mysql/data/test-db2.log
log-slow-queries     = /usr/local/mysql/data/slowquery2.log
server-id            = 2
master-host          =   192.168.0.2
master-user          =   'replcate'
master-password      =   '1234567890'
master-port          = 3307
report-host          = test-db3
master-connect-retry = 30
log-slave-updates
replicate-rewrite-db = from_name->to_name
replicate-do-table   = db_name.tbl_name
阅读(858) | 评论(0) | 转发(0) |
0

上一篇:perl学习笔记

下一篇:MySQL的my.cnf参数详解

给主人留下些什么吧!~~