1.安裝MySQL需要的依賴的包和編譯軟件
(1)安裝MySQL需要的依賴包
安裝MySQL之前,最好先安裝
MySQL需要的依賴包,不然后面會出現報錯,還得回來安裝
MySQL的依賴包。
[root@Mysql-server tools]# yum install -y ncurses-devel libaio-devel[root@Mysql-server tools]# rpm -qa ncurses-devel libaio-develncurses-devel-5.7-4.20090207.el6.x86_64libaio-devel-0.3.107-10.el6.x86_64
(2)安裝編譯
MySQL需要的軟件
要安裝cmake編譯軟件:
[root@Mysql-server tools]# tar xf cmake-2.8.8.tar.gz[root@Mysql-server tools]# cd cmake-2.8.8[root@Mysql-server cmake-2.8.8]#./configure[root@mysql cmake-2.8.8]# gmake[root@mysql cmake-2.8.8]# gmake install
2.開始安裝MySQL
2.1 創建用戶mysql
[root@mysql tools]# useradd mysql -s /sbin/nologin -M[root@mysql tools]# id mysql uid=501(mysql) gid=501(mysql) 組=501(mysql) [root@mysql tools]#
2.2 解壓編譯MySQL
tar zxf mysql-5.5.32.tar.gz cd mysql-5.5.32cmake .-DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \-DMYSQL_DATADIR=/application/mysql-5.5.32/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \-DWITH_FAST_MUTEXES=1 \-DWITH_ZLIB=bundled \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1 \-DWITH_EMBEDDED_SERVER=1 \-DWITH_DEBUG=0#-- Build files have been written to: /home/oldboy/tools/mysql-5.5.32提示,編譯時可配置的選項很多,具體可參考結尾附錄或官方文檔:make#[100%] Built target my_safe_processmake installln -s /application/mysql-5.5.32//application/mysql如果上述操作未出現錯誤,則MySQL5.5.32軟件cmake方式的安裝就算成功了。
編譯過程中出現如下報錯,解決方法為:
[root@mysql mysql-5.5.32]# rm CMakeCache.txt ###刪除這個文件,重新cmake
[root@mysql mysql-5.5.32]# mkdir -p /data/{3306,3307}/data[root@mysql mysql-5.5.32]# tree /data//data/├──3306│??└── data ##實例3306的數據文件├──3307│??└── data ##實例3307的數據文件└── test
2.3 接着創建配置文件,將data.zip文件上傳到/(根)下,並且使用unzip命令解壓
[root@mysql /]# unzip data.zip ##上傳到根下,加壓會替換上面創建的/data目錄Archive: data.zipinflating: data/3306/my.cnfinflating: data/3306/mysqlinflating: data/3307/my.cnfinflating: data/3307/mysql[root@mysql /]# tree /datadata/ data.zip[root@mysql /]# tree datadata/ data.zip[root@mysql /]# tree data/data/├──3306│??├── data│??├── my.cnf ##實例的配置文件│??└── mysql ##實例的啟動文件├──3307│??├── data│??├── my.cnf ##實例的配置文件│??└── mysql ##實例的啟動文件└── test
/data/3306/my.cnf配置文件信息
[root@mysql /]# cat /data/3306/my.cnf[client]port =3306socket =/data/3306/mysql.sock[mysql]no-auto-rehash[mysqld]user = mysqlport =3306socket =/data/3306/mysql.sockbasedir =/application/mysqldatadir =/data/3306/dataopen_files_limit =1024back_log =600max_connections =800max_connect_errors =3000table_cache =614external-locking = FALSEmax_allowed_packet =8Msort_buffer_size =1Mjoin_buffer_size =1Mthread_cache_size =100thread_concurrency =2query_cache_size =2Mquery_cache_limit =1Mquery_cache_min_res_unit =2k#default_table_type = InnoDBthread_stack =192K#transaction_isolation = READ-COMMITTEDtmp_table_size =2Mmax_heap_table_size =2Mlong_query_time =1#log_long_format#log-error = /data/3306/error.log#log-slow-queries = /data/3306/slow.logpid-file =/data/3306/mysql.pidlog-bin =/data/3306/mysql-binrelay-log =/data/3306/relay-binrelay-log-info-file =/data/3306/relay-log.infobinlog_cache_size =1Mmax_binlog_cache_size =1Mmax_binlog_size =2Mexpire_logs_days =7key_buffer_size =16Mread_buffer_size =1Mread_rnd_buffer_size =1Mbulk_insert_buffer_size =1M#myisam_sort_buffer_size = 1M#myisam_max_sort_file_size = 10G#myisam_max_extra_sort_file_size = 10G#myisam_repair_threads = 1#myisam_recoverlower_case_table_names =1skip-name-resolveslave-skip-errors =1032,1062replicate-ignore-db=mysqlserver-id =1innodb_additional_mem_pool_size =4Minnodb_buffer_pool_size =32Minnodb_data_file_path = ibdata1:128M:autoextendinnodb_file_io_threads =4innodb_thread_concurrency =8innodb_flush_log_at_trx_commit =2innodb_log_buffer_size =2Minnodb_log_file_size =4Minnodb_log_files_in_group =3innodb_max_dirty_pages_pct =90innodb_lock_wait_timeout =120innodb_file_per_table =0[mysqldump]quickmax_allowed_packet =2M[mysqld_safe]log-error=/data/3306/mysql_oldboy3306.errpid-file=/data/3306/mysqld.pid
/data/3307/my.cnf配置文件參數
[root@mysql /]# cat /data/3307/my.cnf[client]port =3307socket =/data/3307/mysql.sock[mysql]no-auto-rehash[mysqld]user = mysqlport =3307socket =/data/3307/mysql.sockbasedir =/application/mysqldatadir =/data/3307/dataopen_files_limit =1024back_log =600max_connections =800max_connect_errors =3000table_cache =614external-locking = FALSEmax_allowed_packet =8Msort_buffer_size =1Mjoin_buffer_size =1Mthread_cache_size =100thread_concurrency =2query_cache_size =2Mquery_cache_limit =1Mquery_cache_min_res_unit =2k#default_table_type = InnoDBthread_stack =192K#transaction_isolation = READ-COMMITTEDtmp_table_size =2Mmax_heap_table_size =2M#long_query_time = 1#log_long_format#log-error = /data/3307/error.log#log-slow-queries = /data/3307/slow.logpid-file =/data/3307/mysql.pid#log-bin = /data/3307/mysql-binrelay-log =/data/3307/relay-binrelay-log-info-file =/data/3307/relay-log.infobinlog_cache_size =1Mmax_binlog_cache_size =1Mmax_binlog_size =2Mexpire_logs_days =7key_buffer_size =16Mread_buffer_size =1Mread_rnd_buffer_size =1Mbulk_insert_buffer_size =1M#myisam_sort_buffer_size = 1M#myisam_max_sort_file_size = 10G#myisam_max_extra_sort_file_size = 10G#myisam_repair_threads = 1#myisam_recoverlower_case_table_names =1skip-name-resolveslave-skip-errors =1032,1062replicate-ignore-db=mysqlserver-id =3innodb_additional_mem_pool_size =4Minnodb_buffer_pool_size =32Minnodb_data_file_path = ibdata1:128M:autoextendinnodb_file_io_threads =4innodb_thread_concurrency =8innodb_flush_log_at_trx_commit =2innodb_log_buffer_size =2Minnodb_log_file_size =4Minnodb_log_files_in_group =3innodb_max_dirty_pages_pct =90innodb_lock_wait_timeout =120innodb_file_per_table =0[mysqldump]quickmax_allowed_packet =2M[mysqld_safe]log-error=/data/3307/mysql_oldboy3307.errpid-file=/data/3307/mysqld.pid
特別說明:
本文多實例啟動文件的啟動mysql服務實質命令:
mysqld_safe --defaults-file=/data
/3306/my.cnf 2>&1 /dev/null &
mysqld_safe --defaults-file=/data
/3307/my.cnf 2>&1 /dev/null &
本文多實例啟動文件的停止mysql服務實質命令:
mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p123456 -S /data/3307/mysql.sock shutdown
2.4 修改數據文件/data 權限
[root@mysql /]# chown -R mysql.mysql /data[root@mysql /]# find /data -type f -name "my.cnf"|xargs ls -l ##將my.cnf文件權限設置成644-rw-r--r--.1 mysql mysql 189910月292013/data/3306/my.cnf-rw-r--r--.1 mysql mysql 190110月292013/data/3307/my.cnf[root@mysql /]# find /data -type f -name "mysql"|xargs ls -l ##由於mysql腳本中保存了登錄數據庫的密碼,需要將文件權限設置成700,只允許root,mysql訪問-rw-r--r--.1 mysql mysql 13077月152013/data/3306/mysql-rw-r--r--.1 mysql mysql 13077月212013/data/3307/mysql[root@mysql /]# find /data -type f -name "mysql"|xargs chmod 700[root@mysql /]# find /data -type f -name "mysql"|xargs ls -l-rwx------.1 mysql mysql 13077月152013/data/3306/mysql-rwx------.1 mysql mysql 13077月212013/data/3307/mysql
2.5 配置MySQL命令全局使用路徑
如果不為MySQL的命令配置全局路徑,就無法直接在命令行輸入mysql,這樣只能用全路徑/application/msyq/bin/mysql 這樣帶着路徑輸出會比較麻煩
2.5.1 配置
MySQL全局路徑方法
1.確認mysql命令所在路徑
[root@mysql /]# ll /application/mysql/bin/mysql-rwxr-xr-x.1 root root 53453564月816:05/application/mysql/bin/mysql
2. 修改PATH路徑
[root@mysql /]# tail -1/etc/profileexport PATH=/application/mysql/bin:$PATH ##添加如下行[root@mysql /]# source /etc/profile ##讓其生效
3. 最后檢查PATH
[root@mysql /]# echo $PATH/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2.6 初始化數據庫
cd /application/mysql/scripts/##注意和MySQL 5.1的路徑不同,MySQL 5.1 不在mysql/bin下./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data/--user=mysql./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data/--user=mysql
注意:
當初始化的過程中出現兩個OK時,表示初始化成功
3. 最后啟動mysql
[root@mysql scripts]#/data/3306/mysql startStartingMySQL...[root@mysql scripts]#/data/3307/mysql startStartingMySQL...查看是否啟動成功[root@mysql scripts]# netstat -lntup|grep mysqltcp 000.0.0.0:33060.0.0.0:* LISTEN 4614/mysqldtcp 000.0.0.0:33070.0.0.0:* LISTEN 5412/mysqld
4. 登錄mysql
mysql -uroot -p123456 -S /data/3306/mysql.sock
5. 多實例修改mysql 密碼
[root@mysql scripts]# mysqladmin -uroot password 123456 -S /data/3306/mysql.sock[root@mysql scripts]# mysqladmin -uroot password 123456 -S /data/3307/mysql.sock
6. 修改配置文件中的mysql連接密碼,如果不修改否則在停庫的時候會報錯
[root@mysql scripts]# sed -i '13 s#oldboy#123456#g'/data/3306/mysql[root@mysql scripts]# sed -n '13p'/data/3306/mysqlmysql_pwd="123456"[root@mysql scripts]# sed -i '13 s#oldboy#123456#g' /data/3307/mysql [root@mysql scripts]# sed -n '13p' /data/3307/mysql mysql_pwd="123456" [root@mysql scripts]#
7.停止mysql數據庫
[root@mysql scripts]#/data/3306/mysql stopStopingMySQL...[root@mysql scripts]#/data/3307/mysql stopStopingMySQL...[root@mysql scripts]#
新增一個多實例庫3308,操作命令如下
附件列表
