centos6.2上源代碼編譯安裝mysql-5.6.10以及mysql-5.5.34

該文章已經上了首頁 爲什麼沒有推薦的薦字,請工作人員給予回覆

wKioL1PPRIrQEXirAAF51vljs7Q216.jpg

CENTOS6.2 安裝 mysql5.5以及5.6



1.Mysql5.6.10安裝


一.必要軟件:

yum -y install gcc gcc-c++  autoconf automake  bison  ncurses-devel libtool-ltdl-devel* 
cmake
 make


二.編譯安裝

[root@localhost src]#groupadd mysql
[root@localhost src]# useradd  mysql -g mysql
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]#mkdir /data/mysql/data -p
[root@localhost src]# mkdir /usr/local/mysql
[root@localhost src]# ls
mysql-5.6.10.tar.gz
Cm/pwd[root@localhost src]# tar -zvxf mysql-5.6.10.tar.gz


Cmake軟件可以編譯安裝也可以不編譯安裝目前未發現不編譯安裝有什麼問題

Rpmcmakecentos中版本是 2.6.4-5.el6至於爲什麼編譯安裝cmake我個人認爲是由於在rhel5中沒有或者版本過低有些mysql的安裝還是進行在rhel5之上在cmake的官網上也正是這兩種版本2.6.4是始終有下載的

下載cmake11.2.1版本

[root@localhost src]# wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.1.tar.gz
[root@localhost src]# tar -zvxf cmake-2.8.12.1.tar.gz
[root@localhost src]# cd  cmake-2.8.12.1
[root@localhost cmake-2.8.12.1]# ./bootstrap
[root@localhost cmake-2.8.12.1]#make&&make install
[root@localhost cmake-2.8.12.1]# cmake --help |head -n1
cmake version 2.8.12.1
[root@localhost cmake-2.8.12.1]# cd /usr/local/src/mysql-5.6.10/storage


有哪些存儲引擎的支持可以看一個目錄

[root@localhost storage]# ls
archive    csv      federated  innobase  myisammrg  perfschema
blackhole  example  heap       myisam    ndb
[root@localhost storage]# pwd
/usr/local/src/mysql-5.6.10/storage
[root@localhost storage]# cd /usr/local/src/mysql-5.6.10
[root@localhost mysql-5.6.10]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/data/ \
-DSYSCONFDIR=/etc \
-DWITH_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1




參數配置詳細解釋:

其實5.6版本可以所有的關於引擎的參數不填寫因爲默認是全部給安裝的

5.5則不同關於-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \ 這三個是必須要自己填寫的否則的話只能編譯出6個引擎;

# /* -DWITH_READLINE=1                        # 快捷鍵功能

# /* -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock # 連接數據庫socket路徑

# /* -DMYSQL_TCP_PORT=3306                    # 端口

# /* -DENABLED_LOCAL_INFILE=1                 # 允許從本地導入數據



[root@localhost src]#make && make install
[root@localhost src]#cd /usr/local/mysql/scripts/
[root@localhostsrc]#./mysql_install_db--user=mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql
[root@localhost src]#cd /usr/local/mysql/support-files/
[root@localhost src]#cp mysql.server /etc/init.d/mysqld
[root@localhost src]#chmod 755 /etc/init.d/mysqld
[root@localhost src]#cat >>/etc/profile <<EOF
export PATH=$PATH:/usr/local/mysql/bin
EOF
[root@localhost src]#source /etc/profile
[root@localhost src]#cd /usr/local/mysql/support-files/
[root@localhost support-files]#cp -f my-default.cnf /etc/my.cnf
[root@localhost support-files]#cat >> /etc/my.cnf <<EOF
log-bin=mysql-bin
expire_logs_days=10
binlog_format=mixed
table_definition_cache=10000
max_connections=1000
key_buffer_size=256M
tmp_table_size=64M
read_buffer_size=4M
read_rnd_buffer_size=16M
sort_buffer_size=64M
thread_cache_size=80
wait_timeout=7200
thread_concurrency = 8
innodb_buffer_pool_size=1024M
innodb_sort_buffer_size=4M
innodb_thread_concurrency=4
innodb_flush_logs_at_trx_commit = 2
EOF



[root@client100 support-files]#chown mysql.mysql /etc/my.cnf


# 將安裝目錄屬主改爲mysql[上面更改,到這裏又變成root屬主了,所以可以選擇更改爲mysql]  

[root@client100 support-files]#chkconfig --add mysqld
[root@client100 support-files]#chkconfig mysqld on
[root@localhost support-files]# chkconfig --list |grep mysql --234必須爲on
[root@client100 support-files]#service mysqld start
[root@client100 support-files]#echo "drop user 'root'@'::1';drop user ''@'localhost';drop user 'root'@'localhost.localdomain';"|mysql
[root@client100 support-files]#mysqladmin -u root password '123456'



---------------------------------------------------------------------


如果起數據庫報錯多半不外乎兩種可能

第一種是你

[
root@localhostsrc]#
./
mysql_install_db
--user=
mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql


路徑不對那麼重新執行這句

第二種則是你有老的數據庫沒有關閉或者你多次service mysqld start導致的。解決辦法如下

[root@localhost support-files]# service mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/data/mysql/data/localhost.localdomain.pid).
[root@localhost support-files]# ps -ef |grep mysql
root     47388     1  0 17:03 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/localhost.localdomain.pid
mysql    47503 47388  0 17:03 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/data/localhost.localdomain.err --pid-file=/data/mysql/data/localhost.localdomain.pid
root     62679 11100  0 22:06 pts/0    00:00:00 grep mysql
[root@localhost support-files]# kill -9 47503
[root@localhost support-files]# service mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL.. SUCCESS!


------------------------------------------------------------------------------------------------------------------

MYSQL5.5.34編譯安裝


Mysql5.5.34的安裝步驟與上面基本一致編譯的地方需要編譯完全點另外模板複製方面也有些許不同

[root@localhost mysql-5.6.10]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/data/ \
-DSYSCONFDIR=/etc \
-DWITH_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1




[root@localhost support-files]# cp  my-medium.cnf /etc/my.cnf
vim  /etc/my.cnf


將上面的參數加到mysqld中存在的改變參數



ARCHIVE    ARCHIVE存儲引擎被用來無索引地,非常小地覆蓋存儲的大量數據

BLACKHOLE存儲引擎接受但不存儲數據,並且檢索總是返回一個空集但是會記錄到日誌裏。

FEDERATED儲引擎把數據存在遠程數據庫中

InnoDB and BDB     InnoDBBDB存儲引擎提供事務安全表

MEMORY    MEMORY存儲引擎提供“內存中”表MEMORY存儲引擎正式地被確定爲HEAP引擎。

MyISAM     MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。

EXAMPLE   EXAMPLE存儲引擎是一個“存根”引擎,它不做什麼。

NDB Cluster  是被MySQL Cluster用來實現分割到多臺計算機上的表的存儲引擎。它在MySQL-Max 5.1二進制分發版裏提供。這個存儲引擎當前只被Linux, Solaris, Mac OS X 支持。

CSV        存儲引擎把數據以逗號分隔的格式存儲在文本文件中。

MERGE     存儲引擎允許集合將被處理同樣的MyISAM表作爲一個單獨的表。就像MyISAM一樣,MEMORYMERGE存儲引擎處理非事務表,這兩個引擎也都被默認包含在MySQL中。5.6中等同於MRG_MYISAM


最後如果你的存儲引擎少安裝了或者多安裝了都沒有關係你可以安裝也可以卸載

1,查看一下,mysql配置是不是支持動態添加插件

mysql> show variables like "have_%";
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| have_compress        | YES   |
| have_crypt           | YES   |
| have_csv             | YES   |
| have_dynamic_loading | YES   |

   //在這裏是YES表示是支持的


如果是no呢,就不太好辦,因爲have_dynamic_loading是隻讀變量,

mysql> set have_dynamic_loading=1;
mysql> install plugin INNODB soname "ha_innodb.so";
mysql> install plugin INNODB_TRX soname "ha_innodb.so";
mysql> install plugin INNODB_LOCKS soname "ha_innodb.so";
mysql> install plugin INNODB_LOCK_WAITS soname "ha_innodb.so";
mysql> install plugin INNODB_CMP soname "ha_innodb.so";
mysql> install plugin INNODB_CMP_RESET soname "ha_innodb.so";
mysql> install plugin INNODB_CMPMEM soname "ha_innodb.so";
mysql> install plugin INNODB_CMPMEM_RESET soname "ha_innodb.so"
mysql> install plugin ARCHIVE soname "ha_archive.so";


安裝好後,在用 show engines;或者show plugins;來查看


)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章