1. 程式人生 > >LAMP——安裝mysql

LAMP——安裝mysql

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