实验环境
ip | 服务 | 备注 |
---|---|---|
192.168.1.11 | Docker swarm service(nginx+php) | swarm-manager |
192.168.1.12 | Docker swarm service(nginx+php) | node1 |
192.168.1.13 | Docker swarm service(nginx+php) | node2 |
192.168.1.14 | mysql+haproxy | mysql-haproxy |
需要单独在主控端,写一个nginx启动脚本和php测试页面,用来传文件,nginx用copy,php用模板,用copy也行
[root@localhost ~]# vim nginx.yml
- hosts: dbserver
remote_user: root
tasks:
- name: install nginx
unarchive: src=/root/nginx-1.11.1.tar.gz dest=/usr/src
- name: yum install pcre* openssl*
yum: name=pcre-devel,openssl-devel,gcc,gcc-c++,zlib-devel
- name: make install nginx
# 以下表示进行shell操作时,先进入/usr/src/nginx-1.11.1目录
shell: ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-pcre && make && make install
args:
chdir: /usr/src/nginx-1.11.1
- name: lnfile
file: src=/usr/local/nginx/sbin/nginx dest=/usr/local/sbin/nginx state=link
- name: create nginx user
user: name=nginx create_home=no shell=/sbin/nologin state=present
- name: nginx start script
copy: src=/root/nginx dest=/etc/init.d/nginx
- name: xp
file: path=/etc/init.d/nginx mode=0755
- name: add system service
shell: chkconfig --add nginx
- name: open system auto started
shell: systemctl enable nginx
- name: start nginx
service: name=nginx state=started
[root@localhost ~]# ansible-playbook nginx.yml
备份是将一台服务器的数据,进行复制到另外一台或者多台服务器上的过程,虽然可以通过强化硬件来保证数据安全,但是如果因为宕机出现的数据丢失问题,在没有备份的情况下,无法恢复数据,所以备份可以有效避免数据丢失问题
备份库中多表 mysqldump -u user -p密码 要备份的库 要备份的表 表1 表2 > /path
备份多个库 mysqldump -u user -p密码 -B 要备份的库 库1 库2 > /path
option选项: -R:只导出存储过程和函数 -d:只备份表结构,不备份表数据 -t:只备份表数据,不备份表结构 -A:备份所有库 -B:备份多个库
Mysql日志记录mysql的日常操作,以及发生的错误信息,不同的日志拥有不同的功能,从日志中可以解决很多问题,比如mysql瓶颈,用户操作信息,修改数据库的信息等等
mysql> show variables like 'log_%';
+----------------------------------------+---------------------+
| Variable_name | Value |
+----------------------------------------+---------------------+
| log_bin | OFF | 是否开启二进制文件
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| log_error | /var/log/mysqld.log |错误日志的路径
| log_output | FILE |日志输出形式
| log_queries_not_using_indexes | OFF |日志是否保存没有使用索引的查询语句
| log_slave_updates | OFF |是否记录从库更新
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| log_throttle_queries_not_using_indexes | 0 |
| log_warnings | 1 |是否记录警告记录
+----------------------------------------+---------------------+
记录mysql运行时,停止时,所发生的问题
开启错误日志:在/etc/my.cnf中的添加或者查看log-error配置项,如果指定路径会和初始化路径冲突,不写路径默认存放在初始化指定的路径下
在mysql中维护了一个存放用户信息的表,user,该表位于mysql数据库中,用户之所以能登录mysql是因为匹配了该表中的用户信息,才能登录成功,否则登录失败
SELECT * FROM mysql.user\G
用来查看用户权限的表
一旦删除此表,数据库将会瘫痪
包含user,host,password,使用用户,用户有权限的主机名,和密码(5.7.20之后使用authentication_string保存密码),当用户登录mysql时,之后匹配用户列的内容才能成功登录mysql,user和host列属于联合主键,用来确定用户身份的唯一性
规定了用户只能在给定权限的范围内进行活动,如果该用户没有权限,将不能执行指定的命令,在user表中,如果用户拥有该权限则该权限为Y,如果没有则为N,在priv权限列中,所有的字段使用ENUM枚举进行控制,只有Y和N两个选项,不存在空值
ABS(x):用于给x求绝对值,一个负数的绝对值等于它的相反数,一个正数的绝对值等于它本身
例:
mysql> SELECT ABS(10.5);
+-----------+
| ABS(10.5) |
+-----------+
| 10.5 |
+-----------+
1 row in set (0.00 sec)
mysql> SELECT ABS(-10.5);
+------------+
| ABS(-10.5) |
+------------+
| 10.5 |
+------------+
1 row in set (0.00 sec)
PI():周长和直径的比值
1 / 2