Ubuntu安装MariaDB教程

一、环境

  • 服务器:Ubuntu 16.04.1 LTS(GUN/Linux 4.4.0-91-generic x86_64)
  • 数据库版本:MariaDB 10.3

正文汇报了ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的艺术。分享给大家供大家参照他事他说加以考察,具体如下:

二、安装流程

ubuntu apt-get情势安装nginx

2.1 进入MariaDB 网站

在该地址中,能够搜寻对应系统的设置命令配置。
图片 1
图片 2

参考:

2.2 设置MariaDB 仓库

暗许上MariaDB的包并未在Ubuntu旅社中。要安装MariaDB,大家要设置MariaDB仓库。

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.neusoft.edu.cn/mariadb/repo/10.3/ubuntu xenial main'

2.3 安装MariaDB

sudo apt update
sudo apt install mariadb-server

在安装中,你会被须要安装MariaDB的root密码。
图片 3

首先

三、运行

in order to authenticate the nginx repository signature and to eliminate
warnings about missing PGP key during installation of the nginx package,
it is necessary to add the key used to sign the nginx packages and
repository to the apt program keyring.

3.1 通过命令行连接玛丽亚DB

mysql -u root -p

图片 4

下载密钥

3.2 MariaDB 服务运行与结束

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

图片 5

wget http://nginx.org/keys/nginx_signing.key

四、配置

然后增添

4.1 允许远程访谈

  • 假诺Ubuntu有设置防火墙也许iptables法规的话,请允许内定端口号访谈
  • 剖断3306端口是或不是张开
sudo apt-key add nginx_signing.key

4.1.1 使用 netstat命令查看3306端口状态

netstat -an | grep 3306

图片 6

从地方结果能够见见3306端口只在IP 127.0.0.1
上监听,所以拒绝了别的IP的拜见。

解决方案:
修改/etc/mysql/my.cnf文件。找到上面内容:

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1

图片 7
将方面这一行注释掉只怕把127.0.0.1换来合适的IP,提议注释掉。
再也启航后,重新使用netstat检测。
图片 8

应用命令测量试验

mysql -h 192.168.0.xxx -u root -p
Enter password:
ERROR 1130 (HY000): Host '192.168.0.xxx' is not allowed to connect to this MariaDB server

缓和方案:必要将客户权限分配给种种远程顾客
签到mysql服务器,使用grant命令分配权限

grant all on *.* to '用户名'@'%' identified by '密码';
例子:grant all on *.* 'root'@'%' identified by '123456';

图片 9
如此这般就可以远程访谈了。

加入nginx的repository

五、处理工科具

建议使用官方网址自带的就能够。

cd /etc/apt/sources.list.d/
sudo vim nginx.list

若安装稳固版本,则输入以下内容

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

若最新版本,则输入以下内容:

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

接下来安装

apt-get update
apt-get install nginx

安装完结

nginx -v
nginx version: nginx/1.8.0

MariaDB数据库安装

MariaDB是三个开源数据库且百分百与MySQL兼容,目的是顶替MySQL数据库。

MariaDB的背景 :

贰零零玖年,MySQL被新兴被Oracle在二零零六年收购的Sun 索泰收购了。
最先被Sun公司的收买由于符合项指标急需而境遇MySQL社区的喝彩,不过这种心情并从未相连太久,接下去被Oracle的收购,不幸期望远远小于预
期。多数MySql的开拓者离开了Sun和Oracle企业开头新的品类。在他们个中就有MySQL的奠基人以及项目长时间技艺首领之一的Michael’Monty’
Widenius。Monty和她的团组织创立了MySQL的一个fork版本况且命名它为MariaDB。

私下认可上MariaDB的包并未在Ubuntu仓库中。要设置MariaDB,我们先是要安装MariaDB仓库。

设置 MariaDB 仓库

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.3GolFM9PZ5 --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <package-signing-key@mariadb.org>" imported
gpg: Total number processed: 1
gpg:        imported: 1
sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

安装 MariaDB :

sudo apt-get update
sudo apt-get install mariadb-server

在设置中,你会被供给安装MariaDB的root密码。

从命令行连接到MariaDB :

keyun@ubuntu-server:~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.0.23-MariaDB-1~trusty-log mariadb.org binary distribution
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

MariaDB 服务

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

上述只是在Ubuntu上装完MariaDB,上边要安装玛丽亚DB允许远程访谈

1、尽管Ubuntu有设置防火墙或许iptables法规的话,请自行张开

2、3306端口是或不是绝非张开?

应用nestat命令查看3306端口状态:

~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

从结果可以见见3306端口只是在IP 127.0.0.1上监听,所以拒绝了另外IP的拜会。

杀鸡取卵办法:修改/etc/mysql/my.cnf文件。张开文件,找到上边内容:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

把地方这一行注释掉或许把127.0.0.1换来适合的IP,建议注释掉。

重复开动后,重新利用netstat检验:

~# netstat -an | grep 3306
tcp    0   0 0.0.0.0:3306      0.0.0.0:*        LISTEN
  1. 把客商权限分配各远程客户。

登陆到mysql服务器,使用grant命令分配权限

复制代码 代码如下:

mysql> grant all on . to 你的客户名如root@’%’ identified by
‘你的密码’;

成就后使用mysql命令连接,提醒成功,为了确定保证正确可以再远程登入测量检验一下。

安装PHP7

因为是最小化安装的ubuntu,先安装make

sudo apt-get install make

下载源码

sudo wget https://downloads.php.net/~ab/php-7.0.2RC1.tar.gz
sudo tar -zvxf php-7.0.2RC1.tar.gz
cd php-7.0.2RC1

基于鸟哥提示,安装gcc4.8

应用新一点的编写翻译器, 推荐GCC 4.8以上, 因为独有GCC
4.8以上PHP才会敞开Global Register for opline and execute_data支持,
那个会带来5%左右的属性提高(Wordpres的QPS角度度量) 其实GCC
4.8之前的版本也支撑, 不过大家开采它补助的有Bug,
所以必需是4.8以上的版本才会敞开那么些本性.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade

查看版本

gcc --version
gcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

先安装信赖

sudo apt-get install libxml2 
sudo apt-get install libxml2-dev 
sudo apt-get install openssl 
sudo apt-get install libssl-dev 
sudo apt-get install curl 
sudo apt-get install libcurl4-openssl-dev 
sudo apt-get install libgd-dev 
sudo apt-get install libxslt-dev

因本机lib目录在/usr/lib/x86_64-linux-gnu

./configure –prefix=/usr/local/php –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib/x86_64-linux-gnu –with-libxml-dir –with-mysqli –with-openssl –with-pcre-regex –with-pdo-mysql –with-pdo-sqlite –with-pear –with-png-dir –with-xmlrpc –with-xsl –with-zlib –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-xml –enable-zip
sudo make
sudo make install
sudo cp php.ini-development /usr/local/php/lib/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
sudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

最终一条命令,成效是php-fpm随系统自运营。

选择php自带的php-fpm管理工科具,可以非常的低价的start,stop,restart
把管理工科具从源码包里停放php/sbin文件夹里,方便使用

sudo cp ./sapi/fpm/init.d.php-fpm /usr/local/php/sbin/
sudo cd /usr/local/php/sbin/
sudo chmod 755 init.d.php-fpm

配置nginx与php-fpm后,通过phpinfo(),看到如下

 图片 10

从那之后,php7安装成功。

安装apache ab压测工具

sudo apt-get install apache2-utils

压测一下

echo "hello world"


ab -n 1000 -c 20 http://10.81.36.158:9528/

QPS 7000左右

接下去开启opcache

sudo vi /usr/local/php/lib/php.ini

找到opcache设置

增加以下内容

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

重启php-fpm

sudo kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid

或者

sudo /usr/local/php/sbin/init.d.php-fpm restart

重新测验,QPS上升到九千以上

开启HugePages

参考://www.jb51.net/article/85491.htm

再也测量检验,QPS不常能彪上一千0

安装YAF

sudo wget http://pecl.php.net/get/yaf-3.0.2.tgz
sudo tar -zvxf yaf-3.0.2.tgz

解压缩未来, 步入Yaf的源码目录, 依次实行(个中PHP_BIN是PHP的bin目录):

sudo /usr/local/php/bin/phpize

报错:

Cannot find autoconf. Please check your
autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

解决办法:

sudo apt-get install m4
sudo apt-get install autoconf
sudo apt-get install libpcre3 libpcre3-dev 

phpize执行后:

sudo ./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install
Installing shared extensions:   /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

安装成功,修改php.ini,参预yaf扩张

extension=yaf.so

重启php-fpm,查看phpinfo()

 图片 11

安装yaf成功

PS:使用PDO过程中,出现 SQLSTATE[HY000] [2002] No such file or
directory 错误

经查,是mysql.sock找不到

在phpinfo()中,看到pdo_mysql.default_socket的值是/tmp/mysql.sock

 图片 12

唯独在服务器上并未这么些文件

通过sudo service mysql status 命令

* /usr/bin/mysqladmin Ver 9.1 Distrib 10.0.23-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Server version     10.0.23-MariaDB-1~trusty-log
Protocol version    10
Connection       Localhost via UNIX socket
UNIX socket       /var/run/mysqld/mysqld.sock
Uptime:         3 min 28 sec

找到sock文件的职责在/var/run/mysqld/mysqld.sock

于是乎在/tmp下 做个软链接

sudo ln -s /var/run/mysqld/mysqld.sock mysql.sock

主题材料化解

经过localhost无法访谈到数据库,不过透过IP能够

深入分析:那是一级的socket没有正确安装的气象。

连接MySQL数据库有二种方式:TCP/IP(一般明白的端口的这种)和Unix套接字(一般叫socket大概sock)。超过四分之二情况下,能够用localhost代表本机127.0.0.1,不过在MySQL连接时,二者不可混用,并且MySQL中权限设置中localhost与127.0.0.1也是分手设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统经过socket格局连接数据库。

根据地方的sudo service mysql status命令

获得sock文件的任务在/var/run/mysqld/mysqld.sock

于是,修改php.ini

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

重启php-fpm

难题消除

瞩望本文所述对咱们ubuntu服务器配置有所支持。

您或然感兴趣的篇章:

  • centos 7安装mysql5.5和安装
    mariadb使用的通令
  • CentOS
    7中中标安装玛丽亚DB的办法教程
  • 在Ubuntu系统中设置MariaDB数据库的科目
  • Linux下安装MariaDB数据库难点及化解方法(二进制版本的安装)
  • mariadb的主从复制、主主复制、半合伙复制配置详解
  • 玛丽亚DB配置双主复制方案
  • MariaDB(Mysql分支)my.cnf配置文件中文注释版
  • Windows Server 2014 服务器配置指南 之
    MariaDB数据库情状搭建方法
  • CentOS
    7.0服务器安装配置LAMP服务器(Apache+PHP+MariaDB)
  • Window7安装MariaDB数据库及系统起初化操作深入分析

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注