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;