您好,登錄后才能下訂單哦!
部署之前我們說說,MySQL的幾種安裝方式:
編譯安裝:優點是可以定制,按照公司要求個性化設置;缺點:編譯復雜,解決依賴問題
二進制安裝:優點無需編譯,解壓即可;缺點 軟件包較大
yum安裝:結合了上面2個的優點,但需要自己定制rpm包,放到yum倉庫中,
然后只需執行一個命令yuminstall mysql-server -y 即可完成。
若是對數據庫要求不太高的場景,可以采用yum/rpm方式安裝MySQL,例如并發不大,只是在公司內部、企業內部的應用(Zabbix監控系統,OpenStack后臺管理)等需要數據庫的一些應用場景; 當然,生產場景下也是可以選擇yum或rpm方式進行安裝的。
但是,有很多大型網站或門戶網站,往往在安裝MySQL時,會有各種定制化、初始化的需求,這時,要根據企業的需求先把源碼包制作成rpm包,然后搭建自己的yum倉庫,最終采用yum install mysql-server -y的方式安裝,這樣做的優點是即兼顧了yum/rpm安裝方式簡單的優點,又用到了源碼包安裝方式的可定制性
今天就說說,編譯安裝
一、系統環境與軟件版本
[root@db02 scripts]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@db02 scripts]# uname -a Linux db02 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
軟件版本
Mysql:mysql-5.5.32 后續更新 5.6.36版本 Cmake:cmake.x86_64 2.8.12.2-4.el6 #編譯工具
二、安裝部署MySQL
1,安裝依賴包
yum install ncurses-devel libaio-devel rpm -qa ncurses-devel libaio-devel
2,安裝cmake,之后需要用它來編譯mysql
yum install cmake -y
3,創建MySQL用戶,下載軟件包
useradd mysql -s /sbin/nologin -M -u 503 id mysql mkdir -p /home/oldboy/tools cd /home/oldboy/tools/ #rz 上傳源碼包,包可以用過mirror開源社區獲取或下面我的百度云有共享## 鏈接:http://pan.baidu.com/s/1qYhRwvi 密碼:19dn tar xf mysql-5.5.32.tar.gz cd mysql-5.5.32
4,cmake 編譯安裝及參數
#Cmake參數說明 http://qiuyt.blog.51cto.com/1229789/1923189
cmake . -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=1 \ -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 make -j 2 && make install&& cd .. #-j 編譯時可以指定多個cpu,加速編譯 ################################ # 5.6.36 采用下面 # ################################ cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \ #安裝目錄 -DMYSQL_DATADIR=/application/mysql-5.6.36/data \ ##數據存放目錄 -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \ #sock的文件路徑 -DDEFAULT_CHARSET=utf8 \ #默認字符集,不加默認為拉丁文 -DDEFAULT_COLLATION=utf8_general_ci \ #新建數據庫默認字符集,不加默認為拉丁文 -DWITH_EXTRA_CHARSETS=all \ ##安裝所有擴展字符集 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ ##安裝 innodb 存儲引擎 -DWITH_FEDERATED_STORAGE_ENGINE=1 \ ##安裝 FEDERATED 存儲引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝 blackhole 存儲引擎 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ #安裝 EXAMPLE 存儲引擎 -DWITH_ZLIB=bundled \ #服務器可支持壓縮zlib庫 -DWITH_SSL=bundled \ #支持 SSL -DENABLED_LOCAL_INFILE=1 \ #是否允許本地文件導入 -DWITH_EMBEDDED_SERVER=1 \ #是否建立了嵌入式服務器 -DENABLE_DOWNLOADS=1 \ #是否下載任意文件 -DWITH_DEBUG=0 #是否包括調試支持
#補充:如果系統里有曾經安裝的數據庫文件和啟動程序最好停掉或刪除,以免沖突。
ln -s /application/mysql-5.5.32/ /application/mysql
#-- Build files have been written to: /home/oldboy/tools/mysql-5.5.32
提示,編譯時可配置的選項很多,具體可參考結尾附錄或官方文檔:
##官方5.6的cmake編譯參數
#http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
三、MySQL 5.6.36 單實例配置
3.1 配置
cd /application/mysql/ cp support-files/my*.cnf /etc/my.cnf #cp: overwrite `/etc/my.cnf'? y /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql chown -R mysql.mysql /application/mysql/ cp support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld chkconfig mysqld on chkconfig --list mysqld mkdir /application/mysql/tmp -p chown -R mysql.mysql /application/mysql/ /etc/init.d/mysqld start #設置環境變量 echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile tail -1 /etc/profile source /etc/profile echo $PATH mysql
3.2 測試MySQL
[root@db02 mysql]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.36 Source distribution ...省略若干行 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.14 sec)
3.3 單實例錯誤總結
################
問題1:
[root@db02 mysql-5.6.36]# /etc/init.d/mysqld start Starting MySQL.Logging to '/application/mysql-5.6.36/data/db02.err'. 170507 11:36:28 mysqld_safe Directory '/application/mysql-5.6.36/tmp' for UNIX socket file don't exists. ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db02.pid). ##排錯 [root@db02 mysql-5.6.36]# mkdir /application/mysql/tmp -p [root@db02 mysql-5.6.36]# chown -R mysql.mysql /application/mysql/ [root@db02 mysql-5.6.36]# /etc/init.d/mysqld start Starting MySQL.Logging to '/application/mysql-5.6.36/data/db02.err'. .. SUCCESS!
問題2:
[root@db02 mysql]# /etc/init.d/mysqld start Starting MySQL... ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db02.pid).
可能原因:
1、授權問題
2、磁盤空間
3、看日志排查。
3.4 簡單安全優化MySQL
mysqladmin -u root password 'oldboy123' ##設置mysql密碼## select user,host from mysql.user; drop user ''@'db02'; drop user ''@'localhost'; drop user 'root'@'db02'; drop user 'root'@'::1'; select user,host from mysql.user; drop database test; show databases;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。