搭建LNMP(一)MySQL/MariaDB

LNMP 架構介紹

  • LNMP==Linux+Nginx+Mysql+PHP
  • 和LAMP不一樣的是,提供web服務的是Nginx 而且php是做爲一個獨立服務存在的,這個服務叫作php-fpm Nginx直接處理靜態請求,動態請求會轉發給php-fpm

MySQL & MariaDB

甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,所以社區採用分支的方式來避開這個風險。 過去一年中,大型互聯網用戶以及Linux發行商紛紛拋棄MySQL,轉投MariaDB陣營。MariaDB是目前最受關注的MySQL數據庫衍生版,也被視爲開源數據庫MySQL的替代品。php

安裝MariaDB

  • 在服務器上進入/usr/local/src目錄下,使用wget命令來下載MariaDB的二進制包。咱們會將全部的須要手動下載的軟件包都放在/usr/local/src目錄下。
[root@test01 ~]# cd /usr/local/src
[root@test01 src]# wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.3.12/bintar-linux-x86_64/mariadb-10.3.12-linux-x86_64.tar.gz
  • 將壓縮包解壓縮,將解壓縮的目錄移動到/usr/local/下更名mysql。
[root@test01 src]# tar -zxvf mariadb-10.3.12-linux-x86_64.tar.gz
[root@test01 src]# ls
mariadb-10.3.12-linux-x86_64  mariadb-10.3.12-linux-x86_64.tar.gz
[root@test01 src]# mv mariadb-10.3.12-linux-x86_64 /usr/local/mysql
[root@test01 src]# ls /usr/local/mysql/
bin  COPYING  COPYING.thirdparty  CREDITS  data  docs  EXCEPTIONS-CLIENT  include  INSTALL-BINARY  lib  man  mysql-test  README.md  README-wsrep  scripts  share  sql-bench  support-files
  • 須要爲MariaDB建立一個數據庫的目錄,還須要爲MariaDB建立一個用戶,該用戶能夠不給登陸的權限。
[root@test01 src]# mkdir -p /data/mysql                       #爲MariaDB建立目錄
[root@test01 src]# useradd -M -s /sbin/nologin mysql          #爲MariaDB建立用戶

上面所示的useradd -M 表示不爲該用戶建立家目錄,-s是指定shell的,後面的nologin表示是系統用戶,不能進行登陸操做。mysql

  • 進入/usr/local/mysql目錄執行初始化命令
[root@test01 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysql/' ...
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
  • 出現上面這個報錯時,能夠安裝libaio和libaio-devel兩個包來解決。而後再初始化,初始化完成後不知道初始化的過程有沒有問題,初始化是否成功,可使用echo $? 來驗證,若是輸出結果是0,則表示沒問題,若是是非0的則須要查看是出現了什麼問題。
[root@test01 mysql]# yum install libaio libaio-devel -y
[root@test01 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
[root@test01 mysql]# echo $?
0
  • 複製啓動文件模板,並按實際狀況編輯啓動文件
[root@test01 support-files]# cp mysql.server /etc/init.d/mysqld
[root@test01 support-files]# vim /etc/init.d/mysqld
  • 將啓動文件中的下面兩行按本身的實際狀況修改。
basedir=/usr/local/mysql
datadir=/data/mysql
  • 將mysqld服務添加到chkconfig(服務管理)中
[root@test01 ~]# chkconfig --add mysqld
[root@test01 ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

agentwatch     	0:off	1:off	2:on	3:on	4:on	5:on	6:off
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
  • 編輯配置文件
[mysqld]
datadir=/data/mysql                                須要修改的地方
socket=/tmp/mysql.sock					   須要修改的地方
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/data/mysql/mariadb.log					須要修改的地方
pid-file=/data/mysql/mariadb.pid					須要修改的地方

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  • 啓動mysqld服務。
[root@test01 ~]# ps aux | grep mysql
root      2433  0.0  0.1 112708   980 pts/0    S+   13:23   0:00 grep --color=auto mysql               這個狀態是沒啓動的
[root@test01 ~]# service mysql start
Starting MariaDB.190209 13:28:36 mysqld_safe Logging to '/data/mysql/mariadb.log'.
190209 13:28:36 mysqld_safe Starting mysqld daemon with databases from /data/mysql
                                                           [  OK  ]
[root@test01 ~]# ps aux | grep mysql
root      2782  0.0  0.3  11816  1640 pts/0    S    13:28   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/test01.pid
mysql     2870  1.3 14.7 1255904 73784 pts/0   Sl   13:28   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mariadb.log --pid-file=/data/mysql/test01.pid --socket=/tmp/mysql.sock
root      2911  0.0  0.1 112708   980 pts/0    R+   13:28   0:00 grep --color=auto mysql                                  這個狀態是啓動的狀態
  • 還能夠經過查看監聽的端口來肯定服務是否啓動
[root@test01 ~]# netstat -lntp
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      3067/sshd           
tcp6       0      0 :::3306                 :::*                    LISTEN      2870/mysqld
  • MariaDB的鏈接
[root@test01 ~]# /usr/local/mysql/bin/mysql -uroot                    使用root來鏈接
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.12-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  • 上面命令中的/usr/local/mysql/bin/mysql命令必須使用絕對路徑,比較長,爲了方便使用,咱們能夠經過作軟連接、alias或更改PATH來將這個命令簡化。
[root@test01 bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin/     軟連接的作式
[root@test01 bin]# alias mysql='/usr/local/mysql/bin/mysql'       作別名的方式、
[root@test01 ~]# PATH=$PATH:/usr/local/mysql/bin/                 更改環境變量(臨時生效,換終端不生效)
更改/etc/profile 文件,在最後添加一行export PATH=$PATH:/usr/local/mysql/bin 永久生效。
  • 設定鏈接mysql 的密碼,並使用密碼鏈接
[root@test01 ~]# mysqladmin -uroot password "mysqlpasscode"           設定密碼
[root@test01 ~]# mysql -uroot -pmysqlpasscode                         使用密碼鏈接。
相關文章
相關標籤/搜索