环境:
centos:5.7
mysql:percona-server-5.6.23-72.1.tar
编译安装步骤:
简介
Percona server 是 MySQL 的衍生版,专注于 Linux/BSD 下 MySQL 数据库服务器的改进, 在功能和性能上较 MySQL 有着显著的提升。
Percona Server 的 编译、配置和使用 与 MySQL 完全一致,你完全可以把它当成是 MySQL 来使用。下载percona:
wget http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.23-72.1/source/tarball/percona-server-5.6.23-72.1.tar.gz
安装依赖
yum install gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel perl
对于 Fedora 20 和 CentOS 7 需要另外安装一个
perl-Data-Dumper
包:
yum install perl-Data-Dumper
创建 MySQL 用户
useradd mysql #添加mysql
passwd mysql #修改mysql用户密码
编译安装
tar zxf percona-server-5.6.23-72.1.tar.gz -C /usr/local/src/
cd /usr/local/src/percona-server-5.6.23-72.1/
创建目录:
mkdir /usr/local/mysql1811
mkdir /usr/local/mysql1811/etc
mkdir /home/mysql1811
mkdir /home/mysql1811/data
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql1811 \-DSYSCONFDIR=/usr/local/mysql1811/etc \-DMYSQL_DATADIR=/home/mysql1811/data \-DMYSQL_UNIX_ADDR=/home/mysql1811/mysql.sock \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1
DENABLED_LOCAL_INFILE
:允许导入文件到数据库,以加快数据导入速度, 使用 SQL 语句:LOAD DATA LOCAL INFILE 数据文件 INTO TABLE 表名
。
DWITH_READLINE
:绑定 readline 的终端快捷键及历史记录功能。但是安装完后是不是仍然找不着 readline 的感觉, 因为 DWITH_READLINE 在 MySQL 5.6.5 版本就被移除了,同样 DWITH_LIBEDIT 在 MySQL 5.6.12 版本也被移除了。
点击查看 更多编译参数。
如果编译失败,清理源码目录下的 CMakeCache.txt
文件,重新编译即可。
make -j8
make install
chmod 777 /etc/init.d
chmod 777 /usr/local/mysql1811/
初始化数据库
mkdir /home/mysql1811
chmod 777 /home/mysql1811
cd /usr/local/mysql1811
su mysql
./scripts/mysql_install_db --user=mysql --datadir=/home/mysql1811/data
拷贝服务文件到
/etc/init.d/mysql1811
,mysql56 这个文件名也是服务名,可以任意更改, 为了统一我们使用 mysql56 作为文件名:
cp support-files/mysql.server /etc/init.d/mysql1811
配置 my.cnf
mysql读取my.cnf配置文件位置的优先级:MySQL读取各个my.cnf配置文件的先后顺序是:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf
mkdir /home/mysql1811/logs
mkdir /usr/local/mysql1811/etc
touch /usr/local/mysql1811/etc/my.cnf
my.cnf:
[client]
default-character-set = utf8mb4
#port=3307
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
max_connections =500
datadir=/home/mysql1811/data
socket=/home/mysql1811/mysql.sock
user=mysql
pid-file=/home/mysql1811/mysql.pid
port=3307
server-id=1811 #从库服务器 ID,注意服务器 ID 不能重复
replicate-do-db=shantoo #需要做复制的数据库名,如果复制多个数据库,重复设置这个选项即可
replicate-do-db=boluofan
replicate-do-db=blf_bops
slave-skip-errors=1032,1062,126,1114,1146,1048,1396 #自动跳过的错误code
read-only # slave can only read.
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
slow-query-log-file = /home/mysql1811/logs/slow_query.log
slow-query-log = 1
long_query_time =1
[mysqld_safe]
log-error=/home/mysql1811/logs/error.log
启动 MySQL 服务
service mysql1811 start
更改 root 用户密码
打开数据库
/usr/local/mysql1811/bin/mysql -uroot
use mysql;
update user set password=password('admin') where user='root';
FLUSH PRIVILEGES;
delete from mysql.user where password = '';