诊断流程
首先确定samba服务是否运行,smb和nmb两个进程。
看一下服务器samba配置文件/etc/samba/smb.conf的workgroup,它必须与Win的工作组一致,一般Win的工作组是WORKGROUP。
看配置文件里的interfaces是否正确,hosts allow的ip段是否覆盖Win的ip地址。
服务器上启用user安全级别时,是否添加了共享用户,是否允许共享用户浏览。
防火墙的规则设置是否正确。
SELinux是否阻止你访问samba共享的目录。
首先确定samba服务是否运行,smb和nmb两个进程。
看一下服务器samba配置文件/etc/samba/smb.conf的workgroup,它必须与Win的工作组一致,一般Win的工作组是WORKGROUP。
看配置文件里的interfaces是否正确,hosts allow的ip段是否覆盖Win的ip地址。
服务器上启用user安全级别时,是否添加了共享用户,是否允许共享用户浏览。
防火墙的规则设置是否正确。
SELinux是否阻止你访问samba共享的目录。
SQL通过连接将多个表关联起来,是实现数据组合最重要的一环!
所以连接的本质是通过一些生成手段来获取目标集合,再通过对连接生成的集合(临时表)加以筛选,得到目标数据
只返回两个表中连接条件成立的行
外连接并不要求连接的两表的每一条记录在对方表中都一条匹配的记录.
保留2边都不匹配的数据
LEFT JOIN
)保留左边不匹配的数据
保留右边不匹配的数据
示例:
1 | SELECT a.*, b.* FROM A, B WHERE A.id = b.id |
执行过程:
将A与B做笛卡尔积运算,得到临时表C
再通过过滤条件A.id = b.id
,得到结果集
一种交叉连接的特例,和自身交叉
使用账号,密码
wget --user admin --password monit http://localhost:2812
centos-7.0.1-64-server
5.5.41-MariaDB MariaDB Server
安装
yum -y install mariadb-server mariadb
启动
systemctl start mariadb
systemctl enable mariadb
配置向导
mysql_secure_installation
ubuntu-14.04
mysql-5.5
修改主数据库配置
vi /etc/my.cnf.d/server.cnf
[mysqld]
server-id=1
binlog-do-db=<database-name>
relay-log=/var/lib/mysql/mysql-relay-bin
relay-log-index=/var/lib/mysql/mysql-relay-bin.index
log-error=/var/lib/mysql/mysql.err
master-info-file=/var/lib/mysql/mysql-master.info
relay-log-info-file=/var/lib/mysql/mysql-relay-log.info
log-bin=/var/lib/mysql/mysql-bin
重启mysql
systemctl restart mariadb
给从库复制权限
grant replication slave on *.* to 'slave'@'%' identified by 'slave';
锁表,以便备份
FLUSH TABLES WITH READ LOCK;
记录下当前主库日志状态,以便从库同步
SHOW MASTER STATUS;
导出要同步的数据库
mysqldump -uroot -p --master-data <database-name>;
解锁表
UNLOCK TABLES;
修改配置
vi /etc/my.cnf.d/server.cnf
[mysqld]
server-id=2
replicate-do-db=test2
relay-log=/var/lib/mysql/mysql-relay-bin
relay-log-index=/var/lib/mysql/mysql-relay-bin.index
log-error=/var/lib/mysql/mysql.err
master-info-file=/var/lib/mysql/mysql-master.info
relay-log-info-file=/var/lib/mysql/mysql-relay-log.info
log-bin=/var/lib/mysql/mysql-bin
修改权限控制
vi /etc/apparmor.d/usr.sbin.mysqld
连接master
mysql -uroot -p
stop slave;
CHANGE MASTER TO MASTER_HOST='172.18.1.192', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=822;
start slave;
show slave status\G
mysql Last_IO_Errno: 1045
账号密码认证方面错误。
可以现在master上尝试登陆,看是否成功。
重新设置slave
RESET SLAVE;
查看进程状态
SHOW PROCESSLIST \G;
追加模式,标准输出和标准出错
>> filename 2>&1
标准输出,和出错全丢弃
>/dev/null 2>&1
用户配置文件
/var/spool/cron/root
系统全局配置
/etc/crontab
/etc/cron.*
先卸载postfix
apt-get purge postfix
apt-get purge mailutils
apt-get auto-remove
安装msmtp
apt-get install msmtp
apt-get install msmtp-mta
编辑配置文件
defaults
logfile /var/log/msmtp.log
syslog on
aliases /etc/aliases
account default
host smtp.exmail.qq.com
from qiancl@gupiaoxianji.com
user qiancl@gupiaoxianji.com
password ******
auth on
tls on
tls_certcheck off
测试是否成功
echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug -t qiancl@gupiaoxianji.com
让cron使用smtp发送
crontab -e
MAILTO=qiancl@gupiaoxianji.com
每分钟执行,查看执行是否成功
* * * * * CMD
授权memcached访问权限
grant select on stock_app.* to memcache@"%" identified by "12345";
注释采用//
风格
变量声明,尽量一次一个
函数参数大于3个时,逗号号换行
类初始化列表,一行一个
禁用strcpy
类似不带指定缓冲区大小的,使用strncpy
这类!
若在构造函数中抛出异常,则析构函数不被执行,因为该对象没有完全构建,会导致delete无效指针
构造函数抛出异常时,本应该在析构函数中被delete的对象没有被delete,会导致内存泄露
1 | T(); // 没有参数 |
无需参数的构造函数,提供一种无需参数就可初始化的能力
1 | T(...) |
除默认构造函数外,没有explicit
修饰的构造函数
提供其他数据类型向该类型隐式转换(implicit conversion)的能力
此类构造函数,在复制初始化(copy initialization)中会被编译器考虑选用
1 | T(const T &t); |
从一个本类型值构造出新对象,提供pass by value能力
1 | T([const|volatile]T &&t); |
从一个本类型值快速构造出新对象,提供了move语义
1 | explicit T(...) |
除默认构造函数外,explicit
修饰的构造函数
提供其他数据类型向该类型显式转换(explicit conversion)的能力
此类构造数据,在直接初始化(direct initialization)或显式转换(static_cast
等)中会被编译器考虑选用,复制初始化不能使用此类函数