MySQL FOR LINUX
Ïȼì²éϵͳÊÇ·ñ×°ÉÏÁËmysql£¬Èç¹ûÓн«ÆäÐ¶ÔØµô
rpm -qa | grep mysql
×¢ÒâmysqlµÄ´óСд£¬´óСд¶¼ÓпÉÄÜ
rpm -e --nodeps mysql*
Ò»¶¨ÒªÓÃ--nodepsÐ¶ÔØ£¬²»¼ì²éÒÀÀµÐÔ¹ØÏµ¡£
´´½¨Óû§mysql
groupadd mysql
useradd -g mysql mysql
passwd mysql
ÔÚ/usr/localϽ¨Á¢ mysql Îļþ¼Ð
È»ºó½«°²×°ÎļþÉÏ´«µ½·þÎñÆ÷ÉÏ£¬ÕâÀïÓõÄÊÇtar.gzµÄÎļþ£¬Ò²ÓÐrpm°ü¿ÉÒÔÓ㬵«ÊÇrpm°ü²»ÄÜÖ¸¶¨°²×°Ä¿Â¼£¬¹Ê²»²ÉÓÃ
tar zxvf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure --prefix=/usr/local/mysql --with-charset=gb2312
Ö¸¶¨°²×°Ä¿Â¼Îª/usr/local/mysql£¬×Ö·û¼¯Îªgb2312
make
make install
°²×°Íê³É
ÖØÆô
cp /usr/local/mysql/share/mysql/mysql.server
/etc/init.d/mysqld
copyÆô¶¯µÄmysqldÎļþ
ÏÂÃæÈ·±£mysqlÓû§ÓÐÏàÓ¦µÄȨÏÞ
chmod 700 /etc/init.d/mysqld
cd /usr/local
chmod 750 mysql -R
chgrp mysql mysql -R
chown mysql mysql/var -R
cd /usr/local/mysql/libexec
cp mysqld mysqld.old
strip mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
service mysqld start
......
MySQL :: Linux ÏÂ×Ô¶¯±¸·ÝÊý¾Ý¿âµÄ shell ½Å±¾
Linux ·þÎñÆ÷ÉϵijÌÐòÿÌì¶¼ÔÚ¸üРMySQL Êý¾Ý¿â£¬ÓÚÊǾÍÏëÆðдһ¸ö shell ½Å±¾£¬½áºÏ crontab£¬¶¨Ê±±¸·ÝÊý¾Ý¿â¡£Æäʵ·Ç³£¼òµ¥£¬Ö÷Òª¾ÍÊÇʹÓà MySQL ×Ô´øµÄ mysqldump ÃüÁî¡£
½Å±¾ÄÚÈÝÈçÏ£º
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date %F`
# TODO
$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz
È»ºóʹÓý«´Ë½Å±¾¼Óµ½ /etc/crontab ¶¨Ê±ÈÎÎñÖУº
01 5 * * 0 mysql /home/mysql/backup.sh
ºÃÁË£¬Ã¿ÖÜÈÕÁ賿 5:01 ϵͳ¾Í»á×Ô¶¯ÔËÐÐ backup.sh Îļþ±¸·Ý MySQL Êý¾Ý¿âÁË¡£
/home/www/inc/back ......
MySQL :: Linux ÏÂ×Ô¶¯±¸·ÝÊý¾Ý¿âµÄ shell ½Å±¾
Linux ·þÎñÆ÷ÉϵijÌÐòÿÌì¶¼ÔÚ¸üРMySQL Êý¾Ý¿â£¬ÓÚÊǾÍÏëÆðдһ¸ö shell ½Å±¾£¬½áºÏ crontab£¬¶¨Ê±±¸·ÝÊý¾Ý¿â¡£Æäʵ·Ç³£¼òµ¥£¬Ö÷Òª¾ÍÊÇʹÓà MySQL ×Ô´øµÄ mysqldump ÃüÁî¡£
½Å±¾ÄÚÈÝÈçÏ£º
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date %F`
# TODO
$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz
È»ºóʹÓý«´Ë½Å±¾¼Óµ½ /etc/crontab ¶¨Ê±ÈÎÎñÖУº
01 5 * * 0 mysql /home/mysql/backup.sh
ºÃÁË£¬Ã¿ÖÜÈÕÁ賿 5:01 ϵͳ¾Í»á×Ô¶¯ÔËÐÐ backup.sh Îļþ±¸·Ý MySQL Êý¾Ý¿âÁË¡£
/home/www/inc/back ......
Ò»¡¢±íµÄµ¼Èëµ¼³öÓï¾ä¼°Ê±¼ä×Ö·û´®²¿·Ö´¦Àíº¯Êý
µ¼³öÊý¾Ý¿âËùÓбíµÄ½á¹¹ mysqldump -uroot -proot db_name -d > d:/export_db.sql(½áβ²»Ó÷ֺÅ)
µ¼³öÊý¾Ý¿âij¸ö±íµÄ½á¹¹ mysqldump -uroot -proot db_name table_name -d > d:/export_table.sql(½áβ²»Ó÷ֺÅ)
µ¼ÈëSQLÎļþ source e:/test.sql;
Çå¿Õ±í truncate table table_name;
ÀûÓÃÕýÔòɾ³ýȫӢÎĵļǼ delete from table_name where (select name REGEXP '^[-&(),.a-zA-Z_;[:blank:] ]+$')=1
µ±Ç°Ê±¼ä¼Ó4Сʱ select date_add(now(), interval 4 hour); ......
Ò»¡¢±íµÄµ¼Èëµ¼³öÓï¾ä¼°Ê±¼ä×Ö·û´®²¿·Ö´¦Àíº¯Êý
µ¼³öÊý¾Ý¿âËùÓбíµÄ½á¹¹ mysqldump -uroot -proot db_name -d > d:/export_db.sql(½áβ²»Ó÷ֺÅ)
µ¼³öÊý¾Ý¿âij¸ö±íµÄ½á¹¹ mysqldump -uroot -proot db_name table_name -d > d:/export_table.sql(½áβ²»Ó÷ֺÅ)
µ¼ÈëSQLÎļþ source e:/test.sql;
Çå¿Õ±í truncate table table_name;
ÀûÓÃÕýÔòɾ³ýȫӢÎĵļǼ delete from table_name where (select name REGEXP '^[-&(),.a-zA-Z_;[:blank:] ]+$')=1
µ±Ç°Ê±¼ä¼Ó4Сʱ select date_add(now(), interval 4 hour); ......
InnoDBºÍMyISAMÊÇÔÚʹÓÃMySQL×î³£ÓõÄÁ½¸ö±íÀàÐÍ£¬¸÷ÓÐÓÅȱµã£¬ÊÓ¾ßÌåÓ¦Óöø¶¨¡£ÏÂÃæÊÇÒÑÖªµÄÁ½ÕßÖ®¼äµÄ²î±ð£¬½ö¹©²Î¿¼¡£
innodb
InnoDB ¸ø MySQL ÌṩÁ˾ßÓÐÊÂÎñ(commit)¡¢»Ø¹ö(rollback)ºÍ±ÀÀ£ÐÞ¸´ÄÜÁ¦(crash recovery capabilities)µÄÊÂÎñ°²È«(transaction-safe (ACID compliant))ÐÍ±í¡£InnoDB ÌṩÁËÐÐËø(locking on row level)£¬ÌṩÓë Oracle ÀàÐÍÒ»ÖµIJ»¼ÓËø¶ÁÈ¡(non-locking read in SELECTs)¡£ÕâÐ©ÌØÐÔ¾ùÌá¸ßÁ˶àÓû§²¢·¢²Ù×÷µÄÐÔÄܱíÏÖ¡£ÔÚInnoDB±íÖв»ÐèÒªÀ©´óËø¶¨(lock escalation)£¬ÒòΪ InnoDB µÄÁÐËø¶¨(row level locks)ÊÊÒ˷dz£Ð¡µÄ¿Õ¼ä¡£InnoDB ÊÇ MySQL ÉϵÚÒ»¸öÌṩÍâ¼üÔ¼Êø(FOREIGN KEY constraints)µÄ±íÒýÇæ¡£
InnoDB µÄÉè¼ÆÄ¿±êÊÇ´¦Àí´óÈÝÁ¿Êý¾Ý¿âϵͳ£¬ËüµÄ CPU ÀûÓÃÂÊÊÇÆäËü»ùÓÚ´ÅÅ̵ĹØÏµÊý¾Ý¿âÒýÇæËù²»Äܱȵġ£ÔÚ¼¼ÊõÉÏ£¬InnoDB ÊÇÒ»Ì×·ÅÔÚ MySQL ºǫ́µÄÍêÕûÊý¾Ý¿âϵͳ£¬InnoDB ÔÚÖ÷ÄÚ´æÖн¨Á¢ÆäרÓõĻº³å³ØÓÃÓÚ¸ßËÙ»º³åÊý¾ÝºÍË÷Òý¡£ InnoDB °ÑÊý¾ÝºÍË÷Òý´æ·ÅÔÚ±í¿Õ¼äÀ¿ÉÄܰüº¬¶à¸öÎļþ£¬ÕâÓëÆäËüµÄ²»Ò»Ñù£¬¾ÙÀýÀ´Ëµ£¬ÔÚ MyISAM ÖУ¬±í±»´æ·ÅÔÚµ¥¶ÀµÄÎļ ......
½ñÌì´î½¨mysqlÊý¾Ý¿â,Á¬½ÓÁ˰ëÌì,¶¼Ìáʾ10061´íÎó,ÒÔΪÃÜÂë³öÁËÎÊÌâÊÔÁ˰ëÌì,ѹ¸ùÁ¬·þÎñ¶¼Á¬½Ó²»ÉÏ,æ»îÁ˰ë¸ö¶àСʱ,²Å·¢ÏÖÊÇϵͳ²¹¶¡´òÁËÖ®ºó³öÏÖµÄÎÊÌâ(kb967723)
ÓÚÊÇÍøÉÏÕÒÁËÒ»ÏÂ×ÊÁÏ
×î½üÒ»¸ö¿Í»§·þÎñÆ÷µÄMYSQLƵ·±ÌáʾÁ¬½Ó²»ÉÏ£¬ÐÞ¸ÄÁËMYSQLµÄ×î´óÁ¬½ÓÊý»¹ÊÇÕâÑù£¬ÓÚÊÇ¿ªÊ¼ÎÊÍòÄܵÄËÑË÷ÒýÇæ´óÈË£¡ÖÕÓÚÔÚ΢ÈíÕÒµ½Á˽â¾ö·½°¸£¡ÔÒò:΢Èí9ÔÂ9ÈÕ·¢²¼ÁËTCP/IP¸üв¹¶¡£¨KB967723£©£¬Èç¹û·þÎñÆ÷¿ªÆô×Ô¶¯¸üлòÕßÓÐ×Ô¶¯¸üÐÂÈí¼þÏÂÔØ¸üÐÂÁËÕâ¸ö²¹¶¡£¬ÄÇô¾Í»á³öÏÖÕâ¸öÎÊÌâ¡£ÓÐÈË¿ÉÄÜ»áÎÊ£¬ÎªÊ²Ã´9ºÅ³öÏֵIJ¹¶¡£¬µ½ÏÖÔڲŷ¢ÏÖÎÊÌ⣿´ó¼Ò¶¼ÖªµÀ£¬·þÎñÆ÷²»ÊÇÿÌì¶¼ÖØÆôµÄ£¬ÓеķþÎñÆ÷¿ÉÄÜÒ»¸öÔ»òÕßÒ»Äê°ëÔØÖØÆôÒ»´Î£¬ÓеĿÉÄÜÔÚ9ÔÂ9ÈÕÒÔºóÖØÆô¹ý·þÎñÆ÷£¬ËùÒÔ²¹¶¡ÉúЧÁË£¨ÎÒ¸öÈËÕâôÈÏΪ£©¡£Ö¢×´£º Can’t connect to MySQL server on ‘localhost’ (10061)
½â¾ö·½°¸£ºÀÏ·½·¨£ºÐ¶ÔØKB967723²¹¶¡£ºµÇ¼·þÎñÆ÷£¬½øÈë¿ØÖÆÃæ°å — Ìí¼ÓºÍɾ³ý³ÌÐò — £¨¹´Ñ¡ÉÏ·½µÄ“ÏÔʾ¸üД£©ÔÚÀïÃæ¿ÉÒÔ¿´µ½¸üеÄKB967723Õâ¸ö²¹¶¡£¬È»ºó¾ÍÏëÐ¶ÔØÆÕͨÈí¼þÒ»ÑùÐ¶ÔØ£¬Ð¶ÔØÖлáÌáʾÄ㣬Èç¹ûÐ¶ÔØ¿ÉÄܵ¼Ö³ÌÐòÔËÐгö´í£¬Ã»¹ØÏµ£¬Ñ¡Ôñ“ÊÇ”£¬¼ÌÐøÐ¶ÔØ¡ ......
ÓÉÓÚMySQLĿǰ×ֶεÄĬÈÏÖµ²»Ö§³Öº¯Êý£¬ËùÒÔÒÔ
create_time datetime default now()
µÄÐÎʽÉèÖÃĬÈÏÖµÊDz»¿ÉÄܵġ£
´úÌæµÄ·½°¸ÊÇʹÓÃTIMESTAMPÀàÐÍ´úÌæDATETIMEÀàÐÍ¡£
TIMESTAMPÁÐÀàÐÍ×Ô¶¯µØÓõ±Ç°µÄÈÕÆÚºÍʱ¼ä±ê¼ÇINSERT»òUPDATEµÄ²Ù×÷¡£
Èç¹ûÓжà¸öTIMESTAMPÁУ¬Ö»ÓеÚÒ»¸ö×Ô¶¯¸üС£
×Ô¶¯¸üеÚÒ»¸öTIMESTAMPÁÐÔÚÏÂÁÐÈκÎÌõ¼þÏ·¢Éú£º
1. ÁÐֵûÓÐÃ÷È·µØÔÚÒ»¸öINSERT»òLOAD DATA INFILEÓï¾äÖÐÖ¸¶¨¡£
2. ÁÐֵûÓÐÃ÷È·µØÔÚÒ»¸öUPDATEÓï¾äÖÐÖ¸¶¨ÇÒÁíÍâһЩµÄÁиıäÖµ¡££¨×¢ÒâÒ»¸öUPDATEÉèÖÃÒ»¸öÁÐΪËüÒѾÓеÄÖµ£¬Õ⽫²»ÒýÆðTIMESTAMPÁб»¸üУ¬ÒòΪÈç¹ûÄãÉèÖÃÒ»¸öÁÐΪËüµ±Ç°µÄÖµ£¬MySQLΪÁËЧÂʶøºöÂÔ¸ü¸Ä¡££©
3. ÄãÃ÷È·µØÉ趨TIMESTAMPÁÐΪNULL.
4. ³ýµÚÒ»¸öÒÔÍâµÄTIMESTAMPÁÐÒ²¿ÉÒÔÉèÖõ½µ±Ç°µÄÈÕÆÚºÍʱ¼ä£¬Ö»Òª½«ÁÐÉèΪNULL£¬»òNOW()¡£
ÁíÍâÔÚ5.0ÒÔÉϰ汾ÖÐÒ²¿ÉÒÔʹÓÃtriggerÀ´ÊµÏִ˹¦ÄÜ¡£
create table test_time (
id int(11),
create_time datetime
);
delimiter |
create trigger default_datetime before insert on test_time
for each row
if new.create_time is null then
set new.create_time = now();
e ......