mysql二进制安装,升级,多实例部署
目标
- 理解线上部署考虑的因素
- 学会编译安装以及二进制安装mysql
- 学会升级mysql
- 学会多实例部署mysql数据库
- 学会合理部署mysql线上库
考虑因素:
- 版本选择,5.1,5.5还是5.6?
- 分支选择,官方社区版?percona server?mariadb?
-
- 推荐官方版,简单易上手
- 安装方式,包安装?二进制包安装?源码安装?
-
- 线上推荐二进制包安装
- 路径配置,参数配置(尽量模板化,标准化)
- 一个实例多个库,or多个实例单个库?
二进制安装mysql
- 下载软件安装包
- 解压放到指定目录(比如/usr/local)并将mysql目录放到PATH中
- 初始化实例,编辑配置文件 并启动
- 账号安全设置
1)下载
2)解压到指定目录,并将mysql目录放到PATH中
#tar -zxf mysql-5.5.50-linux2.6-i686.tar.gz #mv mysql-5.5.50-linux2.6-i686 /usr/local/ #cd /usr/local #mv mysql-5.5.50-linux2.6-i686 mysql55 #cd mysql55/bin #export PATH=/usr/local/mysql55/bin:$PATH
3)初始化实例 使用脚本mysql_install_db
#mkdir -p /tmp/mysqldata/node1 #/usr/local/mysql55/script/mysql_install_db --user=mysql --basedir=/usr/local/mysql55 --datadir=/tmp/mysqldata/node1 #cd /tmp/mysqldata/node1
出现问题1 没有libaio.so.1库
/tmp/mysql55/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:查询libaio库并按照libaio.so.1
查询
aiapple@aiapple:/tmp$ sudo apt-cache search libaio libaio-dev - Linux kernel AIO access library - development files libaio1 - Linux kernel AIO access library - shared library libaio1-dbg - Linux kernel AIO access library - debugging symbols
安装
aiapple@aiapple:/tmp$ sudo apt-get install libaio1
初始化成功:
aiapple@aiapple:/usr/local/mysql/data$ ls -l /tmp/mysqldata/node1/ total 12 drwx------ 2 aiapple aiapple 4096 7月 27 21:27 mysql drwx------ 2 aiapple aiapple 4096 7月 27 21:27 performance_schema drwx------ 2 aiapple aiapple 4096 7月 27 21:25 test
拷贝配置文件:support-files中拷贝my-medium.cnf
cp /usr/local/mysql56/support-files/my-medium.cnf /tmp/mysqldata
3)使用mysqld_safe脚本,启动
/usr/local/mysql55/bin/mysqld_safe --defaults-file=/tmp/mysqldata/my.cnf &
问题2:没有/usr/local/mysql/data 目录
aiapple@aiapple:/usr/local/mysql55/support-files$ /usr/local/mysql55/bin/mysqld_safe --defaults-file=/tmp/mysqldata/my.cnf & [1] 3349 aiapple@aiapple:/usr/local/mysql55/support-files$ 160727 21:33:26 mysqld_safe Logging to '/usr/local/mysql/data/aiapple.err'. touch: cannot touch ‘/usr/local/mysql/data/aiapple.err’: No such file or directory chmod: cannot access ‘/usr/local/mysql/data/aiapple.err’: No such file or directory 160727 21:33:26 mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable. Please cd to the mysql installation directory and restart this script from there as follows: ./bin/mysqld_safe& See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information /usr/local/mysql55/bin/mysqld_safe: 128: /usr/local/mysql55/bin/mysqld_safe: cannot create /usr/local/mysql/data/aiapple.err: Directory nonexistent ^C [1]+ Exit 1 /usr/local/mysql55/bin/mysqld_safe --defaults-file=/tmp/mysqldata/my.cnf
解决:创建目录并赋权
aiapple@aiapple:/usr/local$ sudo mkdir -p mysql/data aiapple@aiapple:/usr/local/mysql$ sudo chown -R aiapple . aiapple@aiapple:/usr/local/mysql$ sudo chgrp -R aiapple .
问题3:不存/usr/local/mysql/bin/mysqld 文件
aiapple@aiapple:/usr/local/mysql$ /usr/local/mysql55/bin/mysqld_safe --defaults-file=/tmp/mysqldata/my.cnf & [1] 3773 aiapple@aiapple:/usr/local/mysql$ 160727 21:37:32 mysqld_safe Logging to '/usr/local/mysql/data/aiapple.err'. 160727 21:37:32 mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable. Please cd to the mysql installation directory and restart this script from there as follows: ./bin/mysqld_safe& See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information ^C [1]+ Exit 1 /usr/local/mysql55/bin/mysqld_safe --defaults-file=/tmp/mysqldata/my.cnf