Linux MySQL編譯安裝相關命令

來源:互聯網
上載者:User

想知道到Linux MySQL系統的真相麼,想知道Linux MySQL系統中藏有的內在奧義麼,只有我來給大家全面講解介紹Linux MySQL系統差不多在一年前,寫過一篇文章介紹將Linux MySQL資料對應到Memcached,當時Linux MySQL和Memcached Functions for MySQL都還不夠成熟,時過一年,Memcached Functions for MySQL升級到了0.8版本,而MySQL也發布了GA版本,加上很多朋友反應前一篇文章中的實現他們因種種原因沒能成功,於是便有了這篇文章,就當是上一篇文章的升級版本吧。

測試環境在Linux MySQL下進行,版本系統為CentOS5.以下為相關軟體,包括其版本和:

 
  1. mysql-5.1.30 下載  
  2. memcached-1.2.6 下載  
  3. libevent-1.4.7-stable 下載  
  4. memcached_functions_mysql-0.8 下載  
  5. libmemcached-0.26 下載 

編譯安裝Linux MySQL,安裝因個人細好而定,省略許多與測試無關的編譯細節及參數。

 
  1. [root@localhost ~]#tar xzf mysql-5.1.30.tar_001.gz  
  2. [root@localhost ~]#cd mysql-5.1.30  
  3. [root@localhost ~]#./configure --prefix=/usr/local/mysql51  
  4. [root@localhost ~]#make  
  5. [root@localhost ~]#make install  
  6. [root@localhost ~]#./scripts/mysql_install_db --user=mysql --skip-name-resolve  
  7. [root@localhost ~]#/usr/local/mysql51/bin/mysqld_safe 

省略列出安裝memcached和libevent的相關命令,具體可按照實際情況安裝,測試時我將libevent預設安裝,memcached安裝於/usr/local/memcached目錄下。
啟動memcached.

/usr/local/memcached/bin/memcached -d -m 50 -u root -p 11211編譯安裝libmemcache.

 
  1. [root@localhost ~]#tar xzf libmemcached-0.26.tar.gz  
  2. [root@localhost ~]#cd libmemcached-0.26  
  3. [root@localhost ~]#./configure --with-memcached=/usr/local/memcached/bin/memcached  
  4. [root@localhost ~]# make && make install 

編譯安裝Memcache UDFs for MySQL.

 
  1. [root@localhost ~]# tar xzf memcached_functions_mysql-0.8.tar.gz  
  2. [root@localhost ~]# cd memcached_functions_mysql-0.8  
  3. [root@localhost ~]# ./configure --with-mysql-config=/usr/local/mysql51/bin/mysql_config  
  4. [root@localhost ~]# make && make install 

編譯完成後將編譯好的庫檔案複製到mysql的外掛程式目錄下,以便於載入使用。cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql51/lib/mysql/plugin/進入memcached_functions_mysql的源碼目錄,在目錄下有相關添加UDF的SQL檔案用於初始化。[root@localhost ~]# mysql <sql/install_functions.sql註:如果對這些UDFs不熟悉或者不懂,可進行源碼目錄參看README,裡邊有相應的說明。

至此,相關軟體的編譯和安裝完成,進行測試,我們要達到的目的是當MySQL有新記錄插入時,同時插入到Memcached中,當記錄更新時同步更新Memcached中的記錄,刪除時同時也刪除Memcached相關的記錄,為此建立三個觸發器來實現,如果對MySQL的觸發程式不熟悉可以參考MySQL手冊第21章,下面SQL中的memcached為需要操作的表名,SQL如下:

 
  1. #插入資料時插入Memcached  
  2. create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  3. #更新記錄時更新Memcached  
  4. create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  5. #刪除記錄時刪除Memcached相應的記錄  
  6. create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key); 

以下為測試記錄,在對Linux MySQL操作的同時操作Memcached來查看情況,當然你也可以在啟動Memcached的時候帶-vv參數來查看相關資訊.

Linux MySQL操作相關的記錄:

 
  1. [root@localhost ~]#mysql -S /tmp/mysql51.sock   
  2. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  3. Your MySQL connection id is 6  
  4. Server version: 5.1.30 Source distribution  
  5.    
  6. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  
  7.    
  8. mysql> use test;  
  9. Database changed  
  10.    
  11. mysql> create table `memcached` (`key` varchar(10), `value` varchar(100));                                       
  12. Query OK, 0 rows affected (0.00 sec)  
  13.    
  14. mysql> create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  15. Query OK, 0 rows affected (0.00 sec)  
  16.    
  17. mysql> create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  18. Query OK, 0 rows affected (0.00 sec)  
  19.    
  20. mysql> create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key);  
  21. Query OK, 0 rows affected (0.00 sec)  
  22.    
  23. mysql> insert into memcached values("keyi", "valuei"),("keyu","valueu"),("keyd", "valued");                                           
  24. Query OK, 3 rows affected (0.00 sec)  
  25. Records: 3  Duplicates: 0  Warnings: 0  
  26.    
  27. mysql> update memcached set `value`="update" where `key`="keyu";  
  28. Query OK, 1 row affected (0.00 sec)  
  29. Rows matched: 1  Changed: 1  Warnings: 0  
  30.    
  31. mysql> delete from memcached where `key`="keyd";  
  32. Query OK, 1 row affected (0.00 sec)  
  33.    
  34. mysql> quit  
  35. Bye  
  36. Memcache查看時的記錄: 
 
  1. [root@localhost ~]#telnet 127.0.0.1 11211  
  2. Trying 127.0.0.1...  
  3. Connected to 127.0.0.1.  
  4. Escape character is '^]'.  
  5. get keyi  
  6. VALUE keyi 0 6  
  7. valuei  
  8. END  
  9. get keyu  
  10. VALUE keyu 0 6  
  11. valueu  
  12. END  
  13. get keyd  
  14. VALUE keyd 0 6  
  15. valued  
  16. END  
  17. get keyu  
  18. VALUE keyu 0 6  
  19. update  
  20. END  
  21. get keyd  
  22. END  
  23. quit  
  24. Connection closed by foreign host. 

至此,我們基本實現的將Linux MySQL的資料同步到Memcached中,效能暫時還沒有測試,當然上面只是簡單的實現的資料對應的功能,如果在實現的生產環境中,則需要考慮名字空間,高可靠性的問題,這些都是可以通過資料庫名-表名-關鍵字的方面能達到KEY唯一的目的,而高可靠性則是一個比較大的問題。

  1. Linux mysql命令安裝允許遠端連線
  2. Linux MYSQL命令修改各種串連的這那方法
  3. Linux MySQL程式服務內建安全機制
  4. Linux mysql安裝修改root密碼服務
  5. Linux Mysql伺服器使用源碼編譯安裝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.