LAMP——安裝mysql
初識LAMP
LAMP是工作中常用的web部署架構之一。它由linux、apache(httpd)、mysql和php組成。其各個部件之間運作的關系如下圖所示:
用戶通過遊覽器訪問服務端的apache(httpd)服務,如果訪問的是靜態數據,就直接提取。如果訪問的數據來自mysql,那麽就需要調用php模塊與mysql建立關系讀取數據。
Mysql與Mariadb
Mysql是一個關系型數據庫,由mysql ab公司開發,在2008年被sun公司收購,2009年被oracle公司收購。mysql最新版本是5.7GA/8.0DMR。mysql 5.6版本變化比較大,5.7版本性能上有很大提升。
Mariadb是mysql的一個分支,最新版本是10.2版本。它是由Mysql原作者帶領大部分原班人馬創立的SkySQL公司維護。
Mariadb5.5版本對應MySQL的5.5版本,10.0版本對應MySQL的5.6版本。
Tips: Community 社區版本,Enterprise 企業版, GA(Generally Available)指通用版本,在生產環境中用的, DMR(Development Milestone Release)開發裏程碑發布版, RC(Release Candidate)發行候選版本,Beta開放測試版本,Alpha內部測試版本。
安裝Mysql
Mysql的安裝方式主要有3種,分別為rpm、源碼和二進制免編。譯一般我們平時安裝MySQL都是源碼包安裝的,但是由於它的編譯需要很長的時間,建議安裝二進制免編譯包。可以到MySQL官方網站去下載,也可以其他鏡像網站下載。
1、下載安裝文件
[[email protected] ~]# cd /usr/local/src [[email protected] src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz --2017-07-21 06:40:22-- http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 正在解析主機 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140 正在連接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:314581668 (300M) [application/octet-stream] 正在保存至: “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz” 100%[======================================>] 314,581,668 555KB/s 用時 9m 36s 2017-07-21 06:49:59 (533 KB/s) - 已保存 “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz” [314581668/314581668])
2、解壓並移動
[[email protected] src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64/README mysql-5.6.35-linux-glibc2.5-x86_64/data/test/db.opt mysql-5.6.35-linux-glibc2.5-x86_64/lib/libmysqlclient.a ...... [[email protected] src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
3、創建用戶與文件夾
[[email protected] local]# cd mysql/ [[email protected] mysql]# ls bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench [[email protected] mysql]# useradd mysql [[email protected] mysql]# mkdir /data/
4、初始化數據庫
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
運行出錯,需要安裝perl和perl-Data-Dumper,使用yum安裝上,重新初始化。
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/my sql Installing MySQL system tables..../bin/mysqld: error while loading shared librar ies: libaio.so.1: cannot open shared object file: No such file or directory
運行出錯,安裝libaio和libaio-dev相關的包,重新初始化。
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql Installing MySQL system tables...2017-07-21 07:17:04 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-07-21 07:17:04 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2017-07-21 07:17:04 0 [Note] ./bin/mysqld (mysqld 5.6.35) starting as process 9822 ... 2017-07-21 07:17:04 9822 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-07-21 07:17:04 9822 [Note] InnoDB: The InnoDB memory heap is disabled 2017-07-21 07:17:04 9822 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-07-21 07:17:04 9822 [Note] InnoDB: Memory barrier is not used ...... [[email protected] mysql]# echo $? 0
通過查看運行過程中如果有2個“OK”,或者結束後使用“echo $?”命令查看為0,均表示運行正常。
5、拷貝配置文件
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf cp:是否覆蓋"/etc/my.cnf"? y [[email protected] mysql]# vi /etc/my.cnf ...... datadir =/data/mysql socket =/tmp/mysql.sock ......
6、拷貝啟動腳本文件
[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld [[email protected] mysql]# vi /etc/init.d/mysqld ...... basedir=/usr/local/mysql datadir=/data/mysql ......
7、啟動Mysql
[[email protected] mysql]# chkconfig --add mysqld [[email protected] mysql]# chkconfig --list | grep mysqld 註意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。 如果您想列出 systemd 服務,請執行 ‘systemctl list-unit-files‘。 欲查看對特定 target 啟用的服務請執行 ‘systemctl list-dependencies [target]‘。 mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關 [[email protected] mysql]# service mysqld start Starting MySQL.Logging to ‘/data/mysql/juispan.err‘. .. SUCCESS! [[email protected] mysql]# netstat -lnpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1096/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1753/master tcp6 0 0 :::3306 :::* LISTEN 10111/mysqld tcp6 0 0 :::22 :::* LISTEN 1096/sshd tcp6 0 0 ::1:25 :::* LISTEN 1753/master
如果要關閉mysqld服務,可以采用killall mysqld或kill <pid>命令。
如果mysql進程殺不死,說明正在處理的數據量大,如果強行kill會丟數據或損壞表。只能慢慢等待。
本文出自 “A man & A computer” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1950956
LAMP——安裝mysql