MYSQL Êֲ᡾ժ¡¿
20 MySQL¿Í»§¹¤¾ßºÍAPI
20.1 MySQL C API
C API´úÂëÊÇËæMySQL·Ö·¢µÄ£¬Ëü±»°üº¬ÔÚmysqlclient¿âÇÒÔÊÐíC³ÌÐò´æÈ¡Ò»¸öÊý¾Ý¿â¡£
ÔÚ MySQLÔ´´úÂë·Ö·¢Öеĺܶà¿Í»§ÊÇÓÃC±àдµÄ¡£Èç¹ûÄãÕýÔÚѰÕÒÑÝʾÔõÑùʹÓÃC APIµÄÀý×Ó£¬¿´Ò»ÏÂÕâЩ¿Í»§³ÌÐò¡£
´ó¶àÊýÆäËû¿Í»§ API(³ýÁËJavaµÄËùÓÐ)¶¼Ê¹ÓÃmysqlclient¿âÓëMySQL·þÎñÆ÷ͨÐÅ¡£ÕâÒâζ×Å£¬ÀýÈ磬ÄãÄÜÀûÓúܶ౻ÆäËû¿Í»§³ÌÐòʹÓõÄͬһ»·¾³±äÁ¿£¬ÒòΪËûÃÇ´Ó¿âÖÐÒýÓ᣶ÔÕâЩ±äÁ¿µÄÒ»ÕÅ±í£¬¼û12.1 ²»Í¬µÄMySQL³ÌÐòµÄ¸ÅÊö¡£
¿Í»§ÓÐÒ»¸ö×î´óͨѶ»º³åÇø´óС¡£³õʼ·ÖÅäµÄ»º³åÇø´óС(16K×Ö½Ú) ×Ô¶¯µØÔö¼Óµ½×î´ó³ß´ç(ȱʡµÄ×î´óÖµÊÇ24M)¡£ÒòΪ»º³åÇø´óСֻÊǰ´±£Ö¤ÐèÇó¶ø±»Ôö¼Ó£¬¼òµ¥µØÔö¼ÓȱʡµÄ×î´óÏÞÖÆ²¢²»Ôì³É¸ü¶à±»ÏûºÄ¡£¸Ã³ß´ç¼ì²éÖ÷ÒªÊÇÒ»¸ö¶Ô´íÎóµÄ²éѯºÍͨѶ°üµÄ¼ì²é¡£
ͨѶ»º³åÇø±ØÐë×ã¹»´óÒÔ±ãÒ»¸öµ¥¶ÀµÄSQLÓï¾ä(¶Ô¿Í»§-·þÎñÆ÷´«Êä)ºÍÒ»Ðзµ»ØµÄÊý¾Ý(¶Ô·þÎñÆ÷-¿Í»§´«Êä)¡£Ã¿¸öÏ̵߳ÄͨѶ»º³åÇø±»¶¯Ì¬À©´óµ½×î´óÏÞÖÆÀ´´¦ÀíÈκβéѯ»òÐС£ÀýÈ磬Èç¹ûÄã°üº¬´óµ½16MÊý¾ÝµÄBLOBÖµ£¬Äã±ØÐëÓÐÒ»¸öÖÁÉÙ16MͨѶ»º³åÇøÏÞÖÆ(ÔÚ·þÎñÆ÷ºÍ¿Í»§Á½¶Ë)¡£¿Í»§µÄȱʡ×î´óÖµÊÇ24M£¬µ«ÊÇÔÚ·þÎñÆ÷¶ËµÄȱʡ×î´óÖµÊÇ1M¡£Äã¿ÉÒÔÔÚ·þÎñÆ÷Æô¶¯Ê±Í¨¹ý¸Ä±ämax_allowed_packet²ÎÊýµÄÖµÀ´¸Ä±äËü¡£¼û10.2.3 µ÷½Ú·þÎñÆ÷²ÎÊý¡£
MySQL·þÎñÆ÷ÔÚÿ¸ö²éѯºóËõСÿ¸öͨѶ»º³åÇøµ½net_buffer_length¸ö×Ö½Ú¡£¶Ô¿Í»§£¬ÓëÒ»¸öÁ¬½ÓÏà¹ØµÄ»º³åÇøµÄ´óСû±»¼õÉÙ£¬Ö±µ½Á¬½Ó±»¹Ø±Õ£¬ÔÚ´Ëʱ¿Í»§ÄÚ´æ±»»ØÊÕ¡£
Èç¹ûÄãÓÃÏ̵߳ıà³Ì£¬ÄãÓ¦¸ÃÓÃ--with-thread-safe-client±àÒëMySQL C API£¬Õ⽫ʹC APIÏ̶߳Ôÿ¸öÁ¬½Ó¸ü°²È«¡£Äã¿ÉÒÔÈÃ2¸öÏ̹߳²ÏíÏàͬµÄÁ¬½Ó£¬Ö»ÒªÈç¹ûÄã×öÏÂÁÐÊÂÇ飺
Á½¸öÏ̲߳»ÄÜͬʱÔÚͬһ¸öÁ¬½ÓÉÏ·¢ËͲéѯµ½MySQL¡£ÌرðÊÇÄã±ØÐë±£Ö¤ÔÚÒ»¸ömysql_query()ºÍmysql_store_result()Ö®¼äûÓÐÆäËûÏß³ÌÕýÔÚʹÓÃͬһ¸öÁ¬½Ó¡£
Ðí¶àÏß³ÌÄÜ´æÈ¡ÓÃmysql_store_result()¼ìË÷³öÀ´µÄ²»Í¬½á¹û¼¯ºÏ¡£
Èç¹ûÄãʹÓÃmysql_use_result£¬Äã±ØÐ뱣֤ûÓÐÆäËûÏß³ÌÔÚͬһ¸öÁ¬½ÓÉÏÕýÔÚѯÎÊÈκζ«Î÷£¬Ö±µ½½á¹û¼¯ºÏ±»¹Ø±Õ¡£
20.2 C APIÊý¾ÝÀàÐÍ
MYSQL
Õâ¸ö½á¹¹±íʾ¶ÔÒ»¸öÊý¾Ý¿âÁ¬½ÓµÄ¾ä±ú£¬Ëü±»ÓÃÓÚ¼¸ºõËùÓеÄMySQLº¯Êý¡£
MYSQL_RES
Õâ¸ö½á¹¹´ú±í·µ»ØÐеÄÒ»¸ö²éѯµÄ(SELECT, SHOW, DESCRIBE, EXPLAIN)µÄ½á¹û¡£´Ó²éѯ·µ»ØµÄÐÅÏ¢ÔÚ±¾ÕÂÏÂÎijÆÎª½á¹û¼¯ºÏ¡£
MYSQL_ROW
ÕâÊÇÒ»¸öÐÐÊý¾ÝµÄÀàÐͰ²È«(type-safe)µÄ±íʾ¡£µ±Ç°ËüʵÏÖΪһ¸ö¼ÆÊý×Ö½ÚµÄ×Ö·û´®Ê
Ïà¹ØÎĵµ£º
1¡¢µÇ½MySQL:
mysql -u root -p
2¡¢²é¿´Óû§ÐÅÏ¢
select user,host,password from mysql.user;
select user,host from mysql.user;
3¡¢ÉèÖÃÃÜÂë
set password for root@localhost=password('
ÔÚÕâÀïÌîÈërootÃÜÂë
');
4¡¢ÐÞ¸ÄÃÜÂë
·½·¨1£ºmysqladmin -u root -p password newpassword
·½·¨2£º ££mysql -u root ......
½â¾öÂÒÂë×îºÃµÄ·½·¨ÊÇÔÚÏîÄ¿Éè¼ÆÖ®³õ£¬Í³Ò»ËùÓеÄ×Ö·û¼¯£¬ÀýÈçÒ³Ãæ¡¢request¶ÔÏóÒÔ¼°Êý¾Ý¿âµÈµÈ¡£
Ò»¡¢ ¼¸ÖÖ³£¼ûµÄÂÒÂëÏÖÏó£º
1¡¢Ò³ÃæÂÒÂë
µ¥´¿µÄÒ³ÃæÂÒÂëÊǺܺýâ¾öµÄ£¬Ö»ÒªÐÞ¸ÄÍ·²¿ÊʺϵÄ×Ö·û¼¯¼´¿É£¬Èç¹ûÒ³ÃæÖÐÎÄÏÔʾÂÒÂ룬Äã¿ÉÒÔ°Ñ×Ö·û¼¯ÐÞ¸ÄΪ£ºgb2312»ògbk¡£
2¡¢Ò³ÃæÖ®¼ä´«µÝµÄ²ÎÊýÊÇÂÒÂë ......
1.ÉèÖñäÁ¿
set @x = 2;
»ò:
select @x := max(fields) as max from table;
2.Éú³Éhtml»òxml
mysql -H -uroot -p databaseName Éú³ÉhtmlÎļþ
mysql -x -uroot -p databaseNam ......
MysqlÊý¾Ý¿âÌṩÁ½ÖÖÀàÐ͵ÄË÷Òý£¬Èç¹ûûÕýÈ·ÉèÖã¬Ë÷ÒýµÄÀûÓÃЧÂÊ»á´ó´òÕÛ¿ÛÈ´ÍêÈ«²»ÖªÎÊÌâ³öÔÚÕâ¡£
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
ÒÔÉÏ´ ......
Êý¾Ý¿âĿ¼ÊÇMySQLÊý¾Ý¿â·þÎñÆ÷´æ·ÅÊý¾ÝÎļþµÄµØ·½£¬²»½ö°üÀ¨ÓйرíµÄÎļþ£¬»¹°üÀ¨Êý¾ÝÎļþºÍMySQLµÄ·þÎñÆ÷Ñ¡ÏîÎļþ¡£²»Í¬µÄ·Ö·¢£¬Êý¾Ý¿âĿ¼µÄȱʡλÖÃÊDz»Í¬µÄ¡£
Êý¾ÝĿ¼µÄλÖÃ
ȱʡµÄÊý¾Ý¿âλÖÃ
ȱʡÊý¾Ý¿âµÄλÖñàÒëÔÚ·þÎñÆ÷ÖС£
¡ôÈç¹ûÄúÊÇÔÚÒ»¸öÔ´³ÌÐò·Ö·¢°üÖа²×° MySQL£¬µäÐ͵ÄȱʡλÖÿÉÄÜÊÇ /usr/local/var ......