于吉吉的技術博客

          建造高性能門戶網

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks

          mysql

               摘要: mysql的官方網站是 http://www.mysql.com

          tar zxvf mysql-5.1.50.tar.gz

          cd mysql-5.1.50

          ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
          --enable-local-infile --with-low-memory

          make && make install

          chmod +w /usr/local/mysql

          chown -R mysql:mysql /usr/local/mysql

          cp support-files/my-medium.cnf /etc/my.cnf  閱讀全文
          posted @ 2010-11-30 15:21 陳于喆 閱讀(411) | 評論 (0)  編輯

               摘要: 聽DBA的人說,相比oracle,MySQL就是一個玩具級別的數據庫,在網易門戶中,DBA基本很少去管理到MySQL的東西,所以我們產品使用到的MySQL的一些配置和優化還是需要我們開發人員自己動手,下面就簡單介紹一下實用的定期優化方法

          定期分析表

          ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]

          本語句用于分析和存儲表的關鍵字分布。在分析期間,使用一個讀取鎖定對表進行鎖定。這對于MyISAM, BDB和InnoDB表有作用。對于MyISAM表,本語句與使用myisamchk -a相當。

          MySQL使用已存儲的關鍵字分布來決定,當您對除常數以外的對象執行聯合時,表按什么順序進行聯合。

          mysql> analyze table a;
          +--------+---------+----------+-----------------------------+
          | Table | Op | Msg_  閱讀全文
          posted @ 2010-10-10 14:55 陳于喆 閱讀(5624) | 評論 (2)  編輯

               摘要: 如果你的MyIsam表存在大量高并發的讀寫,那么就可能出現壞表的現象,這是因為MyIsam存儲引擎所決定的,一張損壞的表的癥狀可能是以前某些錯誤

          *.frm 被鎖定不能更改
          找不到*.MYI
          文件意外結束
          記錄文件損壞

          處理1
          使用MySQL自帶的myisamchk的工具進行修復,myisamchk不僅可以檢查和修復MyIsam表,還可以進行優化和分析表,實際上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk進行修復

          myisamchk -r tablename

          其中-r參數的含義是recover,在以往的應用,這語句幾乎可以解決上面所述碰到的問題,如果還不行,可以使用

          myisamchk -o tablename

          其中-o參數的含義是--safe-recover,可以進行更安全的修復

          處理2
          使用MySql的CHECK TABLE和REPAIR TABL  閱讀全文
          posted @ 2010-10-10 14:11 陳于喆 閱讀(1986) | 評論 (0)  編輯

               摘要: mysql有4種不同的日志,分別是二進制日志,查詢日志,慢查詢日志和錯誤日志,這些日記記錄著數據庫工作的方方面面,可以幫助我們了解數據庫的不同方面的蹤跡,下面先介紹二進制日志的作用和使用方法,并利用二進制日志對數據庫進行各種維護和優化,其他日志也會在后面陸續會做詳細的介紹。

          二進制日志(bin-log日志)
          在上一篇介紹mysql主從配置的blog中,已經提過bin-log日志的作用和使用,bin-log日志記錄了所有的DDL和DML的語句,但不包括查詢的語句,語句以事件的方式保存,描述了數據的更改過程,此日志對發生災難時數據恢復起到了極為重要的作用。

          開啟
          mysql默認是沒有開發bin-log日志,首先我們需要開啟bin-log日志,在my.cnf中修改



          指定了bin-log日志的路徑,開啟日志后需要myssqladmin flush log才生效,重啟后我們發現在剛才設定的路徑新增了log文件,這就是我們需要的二進制日志



          由于日志是以二進制方式存儲的,不  閱讀全文
          posted @ 2010-09-04 18:55 陳于喆 閱讀(17082) | 評論 (1)  編輯

               摘要: 檢查從服務器一般使用show slave status命令來檢查

          mysql> SHOW SLAVE STATUS\G
          *************************** 1. row ***************************
          Slave_IO_State: Waiting for master to send event
          Master_Host: 192.168.0.100
          Master_User: root
          Master_Port: 3306
          Connect_Retry: 3
          Master_Log_File: mysql-bin.003
          Read_Master_Log_Pos: 79
          Relay_Log_File: mysql -relay-bin. 003
          Relay_Log_Pos: 548
          Relay_Master_Log_File: mysql -bin. 003
          Slave_IO_Running: Yes
          Slave_SQL_Ru  閱讀全文
          posted @ 2010-08-23 21:35 陳于喆 閱讀(4083) | 評論 (0)  編輯

               摘要: 前天遷移了一個老系統,用的mysql是4.0要遷移到5.0的環境下,發現了一個問題,在password()函數上發生錯誤,查一查原來password()函數在mysql5.0已經發生了變換
          在mysql4.0下

          mysql> select password('abc');
          +------------------+
          | password('abc') |
          +------------------+
          | 7cd2b5942be28759 |
          +------------------+

          而在mysql5.0下

          select password('abc');
          +-------------------------------------------+
          | password('abc') |
          +-------------------------------------------+
          | *  閱讀全文
          posted @ 2010-08-23 10:41 陳于喆 閱讀(293) | 評論 (0)  編輯

               摘要: 在上一篇MySQL主從復制配置 已經介紹過幾個啟動時的復制參數,下面再介紹幾個常用的啟動選項,

          (1) log-slave-updates

          log-slave-updates這個參數用來配置從服務器的更新是否寫入二進制日志,這個選項默認是不打開的,但是,如果這個從服務器B是服務器A的從服務器,同時還作為服務器C的主服務器,那么就需要開發這個選項,這樣它的從服務器C才能獲得它的二進制日志進行同步操作



          (2) master-connect-retry

          master-connect-retry這個參數是用來設置在和主服務器連接丟失的時候,重試的時間間隔,默認是60秒



          (3) read-only

          read-only是用來限制普通用戶對從數據庫的更新操作,以確保從數據庫的安全性,不過如果是超級用戶依然可以對從數據庫進行更新操作



          (4) slave-skip-errors

          在  閱讀全文
          posted @ 2010-08-22 23:30 陳于喆 閱讀(585) | 評論 (0)  編輯

               摘要: Mysql的主從復制至少是需要兩個Mysql的服務,當然Mysql的服務是可以分布在不同的服務器上,也可以在一臺服務器上啟動多個服務。

          (1)首先確保主從服務器上的Mysql版本相同

          (2)在主服務器上,設置一個從數據庫的賬戶,使用REPLICATION SLAVE賦予權限,如:


          mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY

          '123456';

          Query OK, 0 rows affected (0.13 sec)


          (3)修改主數據庫的配置文件my.cnf,開啟BINLOG,并設置server-id的值,修改之后必須重啟Mysql服務


          [mysqld]

          log-bin = /home/mysql/log/mysql-bin.log

          server-id=1

          閱讀全文
          posted @ 2010-08-22 23:28 陳于喆 閱讀(52131) | 評論 (4)  編輯

          主站蜘蛛池模板: 仁怀市| 宝鸡市| 麻栗坡县| 武宣县| 香港 | 阿鲁科尔沁旗| 永丰县| 漾濞| 永川市| 呼玛县| 台中县| 龙陵县| 鹿邑县| 吴桥县| 合山市| 岱山县| 沾益县| 辽宁省| 红河县| 延吉市| 隆德县| 柘荣县| 永昌县| 建德市| 南雄市| 临潭县| 塔河县| 瑞金市| 金沙县| 尼玛县| 且末县| 华阴市| 宜宾县| 台北县| 元阳县| 邵阳市| 江源县| 台北市| 博罗县| 泸州市| 新泰市|