[DB] Install Percona Server for Mysql on Debian Stretch

New photo by WuNan Lin / Google Photos

Debian 9 都出來了

來試試怎麼佈署資料庫在新的系統上

我們先找到原廠的 Percona apt repository,確認支援版本

Ref: https://www.percona.com/doc/percona-server/LATEST/installation/apt_repo.html

root@percona-server-stretch:~# wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
--2017-11-18 11:57:35--  https://repo.percona.com/apt/percona-release_0.1-4.stretch_all.deb
Resolving repo.percona.com (repo.percona.com)... 74.121.199.234
Connecting to repo.percona.com (repo.percona.com)|74.121.199.234|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6368 (6.2K) [application/octet-stream]
Saving to: ‘percona-release_0.1-4.stretch_all.deb’
percona-release_0.1-4.stretch_all.deb           100%[====================================================================================================>]   6.22K  --.-KB/s    in 0s
2017-11-18 11:57:36 (86.3 MB/s) - ‘percona-release_0.1-4.stretch_all.deb’ saved [6368/6368]

安裝 deb

root@percona-server-stretch:~# dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
Selecting previously unselected package percona-release.
(Reading database ... 31154 files and directories currently installed.)
Preparing to unpack percona-release_0.1-4.stretch_all.deb ...
Unpacking percona-release (0.1-4.stretch) ...
Setting up percona-release (0.1-4.stretch) ...

更新一下 apt repository list,可以看到 repo.percona.com 來的更新

root@percona-server-stretch:~# apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Hit:2 http://deb.debian.org/debian stretch-updates InRelease
Hit:3 http://deb.debian.org/debian stretch-backports InRelease
Hit:4 http://deb.debian.org/debian stretch Release
Hit:5 http://packages.cloud.google.com/apt cloud-sdk-stretch InRelease
Get:6 http://repo.percona.com/apt stretch InRelease [15.8 kB]
Hit:7 http://packages.cloud.google.com/apt google-compute-engine-stretch-stable InRelease
Hit:9 http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-stretch InRelease
Get:10 http://security.debian.org stretch/updates InRelease [63.0 kB]
Get:11 http://repo.percona.com/apt stretch/main Sources [5,001 B]
Get:12 http://repo.percona.com/apt stretch/main amd64 Packages [19.0 kB]
Fetched 103 kB in 1s (75.8 kB/s)
Reading package lists... Done

或是手動更新 sources.list 把 testing repo list 加入

root@percona-server-stretch:~# cat  /etc/apt/sources.list | grep percona
deb http://repo.percona.com/apt stretch testing
deb-src http://repo.percona.com/apt stretch testing

檢查 Percona 相關套件已經在清單內,就可以裝了

root@percona-server-stretch:~# apt-cache search percona | grep percona-server-server-5.7
percona-server-server-5.7 - Percona Server database server binaries

直接安裝套件不複雜

root@percona-server-stretch:~# apt-get install percona-server-server-5.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  bzip2 debsums libaio1 libatomic1 libdpkg-perl libfile-fcntllock-perl libfile-fnmatch-perl libmecab2 libnuma1 libperl5.24 mysql-common percona-server-client-5.7 percona-server-common-5.7
  perl perl-modules-5.24 psmisc rename
Suggested packages:
  bzip2-doc debian-keyring gcc | c-compiler binutils patch perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
The following NEW packages will be installed:
  bzip2 debsums libaio1 libatomic1 libdpkg-perl libfile-fcntllock-perl libfile-fnmatch-perl libmecab2 libnuma1 libperl5.24 mysql-common percona-server-client-5.7 percona-server-common-5.7
  percona-server-server-5.7 perl perl-modules-5.24 psmisc rename
0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded.
Need to get 37.5 MB of archives.
After this operation, 267 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
略
Setting up percona-server-server-5.7 (5.7.19-17-1.stretch) ...
 * Percona Server is distributed with several useful UDF (User Defined Function) from Percona Toolkit.
 * Run the following commands to create these functions:
        mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
        mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
        mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
 * See http://www.percona.com/doc/percona-server/5.7/management/udf_percona_toolkit.html for more details
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Processing triggers for systemd (232-25+deb9u1) ...

確認安裝完畢

root@percona-server-stretch:~# dpkg -l | grep percona
ii  percona-release                       0.1-4.stretch                  all          Package to install Percona gpg key and APT repo
ii  percona-server-client-5.7             5.7.19-17-1.stretch            amd64        Percona Server database client binaries
ii  percona-server-common-5.7             5.7.19-17-1.stretch            amd64        Percona Server database common files (e.g. /etc/mysql/my.cnf)
ii  percona-server-server-5.7             5.7.19-17-1.stretch            amd64        Percona Server database server binaries

確認正常啟動

root@percona-server-stretch:~# /etc/init.d/mysql status
● mysql.service - Percona Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-11-18 12:35:57 UTC; 1min 20s ago
 Main PID: 15588 (mysqld)
   CGroup: /system.slice/mysql.service
           └─15588 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Nov 18 12:35:57 percona-server-stretch systemd[1]: Starting Percona Server...
Nov 18 12:35:57 percona-server-stretch systemd[1]: Started Percona Server.

啟動參數沒很複雜,所以檢查一下設定與相關目錄是不是照以前預設方式設定

root@percona-server-stretch:~# ps auxw | grep mysql
mysql    15588  1.0  3.8 1118320 145316 ?      Sl   12:35   0:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root     15658  0.0  0.0  12784   952 pts/0    S+   12:38   0:00 grep mysql
root@percona-server-stretch:~# netstat -an | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN

設定部分還是放在 /etc/mysql 內,可以照參數屬性放不同設定檔案,但習慣還是 my.cnf 全包

root@percona-server-stretch:/etc/mysql# ls -la
total 32
drwxr-xr-x  4 root root 4096 Nov 18 12:35 .
drwxr-xr-x 72 root root 4096 Nov 18 12:35 ..
drwxr-xr-x  2 root root 4096 Nov 18 12:35 conf.d
-rw-r--r--  1 root root  364 Nov 18 12:35 my.cnf
-rw-r--r--  1 root root  839 Jul  9  2016 my.cnf.fallback
-rw-r--r--  1 root root  364 Nov 18 12:35 my.cnf.old
-rw-r--r--  1 root root  364 Aug 30 12:45 percona-server.cnf
drwxr-xr-x  2 root root 4096 Nov 18 12:35 percona-server.conf.d

預設的 datadir 也在 /etc/lib/mysql,承襲 Mysql 5.7 的特性,相關 SSL 檔案會一起產生

root@percona-server-stretch:/var/lib/mysql# ls -al | grep pem
-rw-------  1 mysql mysql     1680 Nov 18 12:35 ca-key.pem
-rw-r--r--  1 mysql mysql     1083 Nov 18 12:35 ca.pem
-rw-r--r--  1 mysql mysql     1087 Nov 18 12:35 client-cert.pem
-rw-------  1 mysql mysql     1680 Nov 18 12:35 client-key.pem
-rw-------  1 mysql mysql     1680 Nov 18 12:35 private_key.pem
-rw-r--r--  1 mysql mysql      452 Nov 18 12:35 public_key.pem
-rw-r--r--  1 mysql mysql     1087 Nov 18 12:35 server-cert.pem
-rw-------  1 mysql mysql     1680 Nov 18 12:35 server-key.pem

確認 mysql console 可以正常使用,也順便用凡人的方式確認資料庫版本

root@percona-server-stretch:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19-17 Percona Server (GPL), Release '17', Revision 'e19a6b7b73f'
Copyright (c) 2009-2017 Percona LLC and/or its affiliates
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

接下來就是參數研究了

mysql> SHOW GLOBAL STATUS;

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *